I Real Tick Data di MT5

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à.

Generazione dei Dati delle Candele

Il tester della strategia genera i movimenti dei prezzi basandosi sulle candele M1 memorizzate. Esso preleva le informazioni dalle 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.

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 di cui è costituita la 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 è quello che richiede il tempo più lungo.

Every Tick based on real ticks

Questo ovviamente è il caso migliore perché utilizza I dati reali forniti, istante dopo istante, dal broker. Il problema è quello di avere a disposizione questi dati, poiché non sempre i broker hanno dati storici a sufficienza e completi.

1 Minute OHLC

In questo caso vengono generati solo i dati OHLC delle candele M1. Questo è possibile solo se il numero di tick della candela considerata è 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 ad esempio scegliamo questa modalità di generazione dei 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 appartenente 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 di ogni candela. A causa di questa modalità, gli stop loss e gli ordini pendenti possono essere eseguiti a prezzi differenti da quello specificato (soprattutto per timeframe molto grandi). I test sono quindi meno precisi, ma si riesce a testare velocemente e ad avere una valutazione di massima di un Expert Advisor. Con questa modalità abbiamo le seguenti limitazioni:

  • Si possono avere alcuni problemi nel funzionamento per i timeframe W1 e MN1.
  • Non può essere usato il Random Delay.
  • L' Expert Advisor non può accedere alle candele di un timeframe più piccolo del timeframe in uso. Ad esempio, se stiamo testando od ottimizzando su H1, non possiamo accedere alle candele M30, M20, M10, .... Per quanto riguarda le candele di un timeframe più grande, invece, possiamo accedere se questo è un multiplo del timeframe in uso. Per esempio, se testiamo su M20 non possiamo acceder ad M30 anche se questo è più grande di M20, perché 30 non è un multiplo di 20, mentre possiamo accedere ad H1.
  • Si hanno le stesse limitazioni anche sui timeframe relativi 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 acceda anche ai dati di GBPUSD M20. In questo caso per GBPUSD avremo come riferimento M20, per cui non possiamo usare timeframe inferiori ad M20 e potremo utilizzare solo timeframe superiori ma multipli di M20.

Mathematical Calculations

Quest'ultima modalità viene usata per usare il Tester della Strategia per scopi diversi dai test. Infatti non vengono generati dati e non vengono letti dati 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. In questo caso è possibile solamente scegliere un criterio di ottimizzazione.

"Per il mondo tu puoi essere solo una persona, ma per una persona tu puoi essere tutto il mondo."          Gabriel García Márquez