La Fractal Interpolation nella Piattaforma MT4

Prima di definire e descrivere la Fractal Interpolation, è bene precisare che nella MetaTrader 4 il volume di una candela M1 non è il volume dei lotti scambiati dai vari operatori al suo interno, ma soltanto il numero dei tick reali forniti dal broker all'interno di essa.
Quando viene effettuato un backtest con la MetaTrader 4 in modalità Ogni Tick, il motore della piattaforma (chiamato Tester o Collaudatore) non usa i dati a tick reali del broker, perché non è previsto che la piattaforma li memorizzi.
La MetaTrader 4 memorizza ed usa soltanto i 4 valori OHLC della candela M1 (Open, High,  Low, Close) e, quando viene realizzato un backtest/ottimizzazione in modalità Ogni Tick, la piattaforma crea un file temporaneo di dati storici (con estensione .FXT) contenente un numero di tick, all'interno di ciascuna candela M1, uguale al valore del suo volume.
Questi tick sono generati algoritmicamente (cioè seguendo una certa logica di tipo matematico) e la MetaTrader 4 utilizzerà questo file .FXT per effettuare una simulazione di come verosimilmente si sarebbe comportato l'EA lavorando sui dati storici in modalità Ogni Tick.

Fractal Interpolation è il nome del metodo utilizzato dal Tester della MetaTrader 4 per generare algoritmicamente i tick all'interno delle barre ad 1 minuto, conoscendo soltanto i 4 valori OHLC.
In pratica, in base ai calcoli effettuati dall'algoritmo, la MetaTrader 4 "si inventa" i tick che possono essersi verificati dentro ogni barra ad 1 minuto. Nel backtest possono quindi verificarsi situazioni ben diverse da quelle realmente accadute: ad esempio, con i tick reali il massimo è stato raggiunto prima del minimo, mentre nei tick generati dalla MetaTrader  4 il minimo viene colpito prima del massimo.

Quindi, il Tester della MetaTrader 4 utilizzerà il volume delle barre M1 per elaborare i tick generati algoritmicamente all'interno di quella barra:
> se le barre M1 hanno tutte volume uguale ad 1, ogni barra avrà soltanto 1 tick e il backtest passerà dalla Close di quella barra alla Close della barra successiva senza passare per il minimo ed il massimo di barra, che non verranno quindi mai elaborati nel backtest;
> se ogni barra M1 ha volume uguale a 2, la barra avrà soltanto 2 tick e passerà dalla Open di quella barra alla Close della stessa barra, senza passare per il minimo ed il massimo di barra;
> affinché il Tester della MetaTrader 4 tocchi con la successione di tick almeno una volta i livelli di Open, Close, High e Low della barra, è necessario che essa abbia un volume minimo di 4 tick.

OSSERVAZIONE: anche se le barre M1 vengono disegnate correttamente sul grafico con l'informazione dei valori Open High Low Close, il Tester della MetaTrader 4 in modalità Ogni Tick utilizza sempre il volume delle candele M1 per elaborare una nuova versione di dati storici su cui effettuare il test.
Inoltre, se si usa un volume di M1 uguale ad 1 o a 2, l'informazione dell'High e del Low della candela non verrà mai presa in considerazione dal Tester.

La sequenza dei tick della candela M1, con i tick generati algoritmicamente dalla MetaTrader 4, dipende dalla tipologia della candela, rialzista o ribassista, seguendo il suo movimento "ideale".
Il Tester della MetaTrader, nei 4 tick,
per una barra rialzista segue sempre la sequenza Open -> Low -> High -> Close,
per una barra ribassista segue sempre la sequenza Open -> High -> Low -> Close.

Poiché ogni timeframe superiore utilizza le candele M1 per generare i propri valori, il volume delle candele di questi timeframe è uguale alla somma del volume delle candele M1 che le formano.
Se ad esempio abbiamo 5 candele M1 con volume rispettivamente di 15, 12, 20, 18 ed 11, la candela M5 che le comprende avrà un volume uguale alla somma: 15 + 12 + 20 + 18 + 11 = 76.
Per ogni barra di un timeframe superiore ad M1, l'evoluzione dei tick generati algoritmicamente segue la sequenza dell'evoluzione dei tick nelle singole barre M1.
Ad esempio, una barra M15 ha una evoluzione in tick, nella sua formazione, che segue la sequenza di formazione delle 15 barre M1 che la costituiscono.

Quando viene eseguito un backtest/ottimizzazione, il Tester della MetaTrader 4
- prima genera un file .FXT contenente i dati storici su cui lavorare
- e poi su questo file effettua il backtest/ottimizzazione.

I files .FXT vengono creati al momento dell'avvio del backtest/ottimizzazione dentro la cartella C:\Program Files\Metatrader4\tester\history\ e contengono i dati storici su cui effettuare il backtest, per la coppia di valute ed il timeframe considerati, per il modello di esecuzione desiderato (Every Tick, Control Points o Open Price Only) e per l'intervallo di tempo scelto.
Ad esempio, per un backtest su EURUSD al timeframe H1,
EURUSD60_0.fxt contiene i dati storici formattati per la modalità Every Tick (Ogni Tick),
EURUSD60_1.fxt contiene i dati storici formattati per la modalità Control Points (Punti di Controllo),
EURUSD60_2.fxt contiene i dati storici formattati per la modalità Open Prices Only (Solo Prezzi di Apertura).

IMPORTANTE: quando il Tester della MetaTrader 4 deve realizzare un backtest/ottimizzazione in modalità EveryTick, effettua i calcoli relativi al trading system su ciascun tick generato algoritmicamente, per cui all'aumentare del numero di candele aumenta esponenzialmente il numero di tick su cui il Tester deve andare a lavorare, con un aumento
- delle dimensioni del file .FXT
- del tempo tecnico di elaborazione del singolo backtest.

Inoltre, la MetaTrader 4 è in grado di leggere un file .FXT fino a 4 GB, dopodiché simula di continuare a fare il backtest, ma in realtà non effettua nessuna elaborazione.
Ecco perché se il Tester genera un file .FXT di dati storici di 6 GB, ad esempio, il backtest dell'EA effettuerà i trades soltanto fino ad una certa data e poi non più. 
In altre parole, il Tester smette di elaborare i dati storici, sui cui dovrebbe andare a lavorare il trading system, quando raggiunge la data corrispondente a 4 GB di dati storici dentro il file .FXT.

A parità di intervallo di tempo di un backtest, le dimensioni del file .FXT per un backtest EveryTick dipendono dal valore del VOLUME che hanno le candele M1, per cui può accadere che con soli 2 anni di dati storici si ottiene un file .FXT di 4 GB, quando il volume delle candele M1 è mediamente di 20.
Se invece il volume delle candele M1 è piccolo, il minor numero di tick dentro di esse permette di poter fare un backtest anche di 4 o più anni, perché il file .FXT si manterrà al di sotto dei 4 GB.