MT5 - Real Tick Data

La nuova Metatrader 5 ha un’altra interessante caratteristica che riguarda il tester della strategia, ovvero la possibilità di poter effettuare test con i prezzi reali, tick dopo tick forniti dal broker. Utilizzando i tick reali si avranno test più affidabili proprio perché si avrà uno spread variabile istante dopo istante proprio come avviene nella realtà.

L’utilizzo di uno spread fisso è infatti una semplificazione che allontana i risultati dalla realtà.

Creazione dei Dati delle candele:

Il tester della strategia genera i movimenti dei prezzi basandosi sulle candele M1 memorizzate. Esso preleva le informazioni sulle candele M1 e successivamente crea i dati intermedi in base al volume e seguendo diversi schemi di generazione.

Quando effettuiamo il test, dal menu a tendina possiamo scegliere diverse opzioni

Creazione Dati Candele (Tester della Strategia)

Every Tick based on real ticks

Questo ovviamente è il caso migliore perchè utilizzerà I dati reali istante dopo istante forniti dal broker. Il problema è invece avere a disposizione questi dati e non sempre i broker hanno dati storici a sufficienze e completi.

Every Tick

Per ogni candela M1 vengono generati sia i dati OHLC sia i dati intermedi. Per generare questi dati ci saranno schemi diversi in base anche al numero di tick della candela. Per ogni candela M1 si genereranno un max di 12 dati. Quando non si hanno i tick reali, questo resta il metodo più accurato per effettuare i test, anche se richiede il tempo più lungo

1 Minute OHLC

In questo caso vengono generate solo I dati OHLC delle candele M1. Questo è possibile solo se il numero di tick della candela è maggiore o uguale a 4 altrimenti si deve passare a delle semplificazioni e creare per la candela in esame un numero di tick pari a 1, a 2, o a 3

Questa modalità si può selezionare anche per timeframe diversi da M1. Se scegliamo questa modalità di generazione dati e come timeframe prendiamo H1, semplicemente avremo che la candela H1 verrà creata mettendo assieme i 4 tick di tutte le candele M1 appartenenti a quella candela H1. Il metodo OnTick() verrà eseguito quindi 4 volte al minuto, all’apertura, chiusura, high e low di ogni candela M1 appertenete a quella candela H1

Open Prices Only

In questo caso vengono generate le candele del timeframe selezionato, ma la funzione OnTick() viene eseguita solo all’apertura della candela. A causa di questa modalità gli StopLoss e gli ordini pendenti possono essere eseguiti a prezzi differenti da quello specificato (soprattutto per timeframe grandi). I test sono quindi meno precisi però si riesce a testare velocemente ed avere una valutazione di massima di un Expert Advisor. Con questa modalità abbiamo alcune limitazioni:

  • Si hanno eccezioni nel funzionamento per i timeframe W1 e MN1
  • Non può essere usato il Random Delay;
  • L’Expert Advisor non può accedere alle candele di timeframe più piccolo rispetto al timeframe in uso. Se stiamo testando od ottimizzando su H1 non possiamo accedere alle candele M30, M20, M10, …. Per quanto riguarda le candele di timeframe più grandi invece, possiamo accedere se il timeframe è un multiplo del timeframe in uso. Per esempio se testiamo su M20, non possiamo acceder a M30 anche se è più grande di M20 perché 30 non è un multiplo di 20, mentre possiamo accedere ad H1.
  • Si hanno le stesse limitazioni anche sui timeframe relative ad altri simboli usati dall’Expert Advisor. In questo caso però il timeframe di riferimento dell’altro simbolo è il primo utilizzato dall’EA. Supponiamo che durante un test su EURUSD H1, un Expert Advisor accede ai dati GBPUSD M20, allora per GBPUSD avremo come riferimento M20, per cui non possiamo usare timeframe inferiori a M20 e possiamo usare solo i timeframe superiori ma multipli di 20

Mathematical Calculations

Quest’ultima modalità viene usata per usare il tester della strategia per scope diversi dai test. Infatti non vengono generate dati e non vengono letti datti storici sulle candele, ma semplicemente vengono eseguiti in successione i metodi OnInit(), OnTester(), e OnDeinit(). Questa modalità può essere utilizzata ad esempio per effettuare dei calcoli in OnTester(), come trovare l’estremo di una funzione. E’ possibile solamente scegliere un criterio di ottimizzazione

Vai all'inizio della pagina