MetaTrader4
Sistema di Trading Automatizzato 'Combo': Guida all'Utilizzo su MetaTrader 4
Oggi parliamo di un sistema di trading automatizzato (ATS) davvero interessante chiamato 'Combo'. La questione che ci poniamo è come migliorare un sistema di trading base, il BTS (Basic Trading System), utilizzando una rete neurale. L'obiettivo è creare un sistema di trading composto da due sistemi complementari: il BTS e la NN (rete neurale).
Come si suol dire: non c'è bisogno di riscoprire l'acqua calda! Se abbiamo già una macchina, perché insegnare a qualcuno a correre? E se abbiamo un aereo, perché insegnare a volare? Allo stesso modo, una volta che abbiamo un ATS che segue le tendenze, dobbiamo solo insegnare alla rete neurale a operare in controtendenza. Questo è fondamentale, perché un sistema di trading basato sulle tendenze non riesce a gestire i mercati laterali o a riconoscere i ritracciamenti.
Pensate a utilizzare due ATS: uno per seguire le tendenze e uno per le controtendenze, ma c'è anche la possibilità di insegnare alla rete neurale a integrare il vostro sistema di trading esistente.
Per questo scopo, abbiamo progettato una rete neurale a due strati con due percettroni nel primo strato e uno nel secondo. La rete neurale può generare tre stati:
Entrata sul mercato con una posizione long
Entrata sul mercato con una posizione short
Stato indeterminato
Il terzo stato implica che il controllo passa al BTS, mentre nei primi due stati i segnali di trading provengono dalla rete neurale. L'insegnamento della rete neurale è suddiviso in tre fasi, ciascuna dedicata all'addestramento di un percettrone. In ogni fase, il BTS ottimizzato deve essere presente per permettere ai percettroni di sapere quali azioni possono intraprendere.
La separazione dell'insegnamento dei percettroni attraverso un algoritmo genetico è necessaria a causa di alcune limitazioni. Tuttavia, ogni fase di insegnamento è coerente e la rete neurale non è troppo grande, quindi l'ottimizzazione non richiede troppo tempo.
La prima fase consiste nell'ottimizzazione del BTS. Per non perdere il filo, registreremo il numero della fase nell'input dell'ATS identificato come 'pass'. Gli identificatori degli input corrispondenti al numero della fase concluderanno con questo numero.
Iniziamo quindi i preparativi per l'ottimizzazione e l'insegnamento della rete neurale. Impostiamo un deposito iniziale di 1.000.000 € (per evitare chiamate di margine artificiali durante l'ottimizzazione) e l'input da ottimizzare sarà 'Balance' nelle proprietà dell'Expert Advisor nella scheda 'Testing' del Strategy Tester. Avviamo l'algoritmo genetico.
Andiamo alla scheda 'Inputs' delle proprietà dell'EA e specifichiamo il volume delle posizioni da aprire, assegnando il valore 1 all'identificatore 'lots'.
L'ottimizzazione sarà eseguita secondo il modello: 'Solo prezzi di apertura (metodo più veloce per analizzare la barra appena completata, solo per EA che controllano esplicitamente l'apertura delle barre)', poiché questo metodo è disponibile nell'algoritmo ATS.
Fase 1 dell'ottimizzazione: Ottimizzazione del BTS:
Impostiamo il valore 1 per l'input 'pass'. Ottimizzeremo solo gli input che corrispondono alla prima fase, cioè quelli che terminano con 1. Quindi, controlleremo solo questi input per l'ottimizzazione e deselezioneremo tutti gli altri.
tp1 - TakeProfit del BTS, ottimizzato con valori da 10 a 100, passo 1
sl1 - StopLoss del BTS, ottimizzato con valori da 10 a 100, passo 1
p1 - periodo di CCI utilizzato nel BTS, ottimizzato con valori da 3 a 100, passo 1
Fase 2: Insegnamento del percettrone per le posizioni short:
Impostiamo il valore 2 (secondo il numero di fase) per l'input 'pass'. Deselezioniamo gli input selezionati per l'ottimizzazione nella fase precedente e, per sicurezza, salviamo in un file gli input ottenuti.
Controlliamo gli input per l'ottimizzazione in base alla nostra regola: i loro identificatori devono terminare con 2:
x12, x22, x32, x42 - numeri di peso del percettrone che riconosce le posizioni short, ottimizzato con valori da 0 a 200, passo 1
tp2 - TakeProfit delle posizioni aperte dal percettrone, ottimizzato con valori da 10 a 100, passo 1
sl2 - StopLoss delle posizioni aperte dal percettrone, ottimizzato con valori da 10 a 100, passo 1
p2 - periodo dei valori di differenza di prezzo analizzati dal percettrone, ottimizzato con valori da 3 a 100, passo 1
Iniziamo l'insegnamento utilizzando l'ottimizzazione con un algoritmo genetico.
Fase 3: Insegnamento del percettrone per le posizioni long:
Impostiamo il valore 3 (terzo numero di fase) per l'input 'pass'. Deselezioniamo gli input selezionati per l'ottimizzazione nella fase precedente e, per sicurezza, salviamo in un file gli input ottenuti.
Controlliamo gli input per l'ottimizzazione in base alla nostra regola: i loro identificatori devono terminare con 3:
x13, x23, x33, x43 - numeri di peso del percettrone che riconosce le posizioni long, ottimizzato con valori da 0 a 200, passo 1
tp3 - TakeProfit delle posizioni aperte dal percettrone, ottimizzato con valori da 10 a 100, passo 1
sl3 - StopLoss delle posizioni aperte dal percettrone, ottimizzato con valori da 10 a 100, passo 1
p3 - periodo dei valori di differenza di prezzo analizzati dal percettrone, ottimizzato con valori da 3 a 100, passo 1
Iniziamo l'insegnamento utilizzando l'ottimizzazione con un algoritmo genetico.
Fase 4 (finale): Insegnamento del primo strato, cioè del percettrone nel secondo strato:
Impostiamo il valore 4 (quarto numero di fase) per l'input 'pass'. Deselezioniamo gli input selezionati per l'ottimizzazione nella fase precedente e, per sicurezza, salviamo in un file gli input ottenuti.
Controlliamo gli input per l'ottimizzazione in base alla nostra regola: i loro identificatori devono terminare con 4:
x14, x24, x34, x44 - numeri di peso del percettrone del primo strato, ottimizzato con valori da 0 a 200, passo 1
p4 - periodo dei valori di differenza di prezzo analizzati dal percettrone, ottimizzato con valori da 3 a 100, passo 1
Iniziamo l'insegnamento utilizzando l'ottimizzazione con un algoritmo genetico.
Ed ecco fatto, la rete neurale è stata addestrata!
Ricordate che l'ATS ha un ulteriore input non ottimizzabile, mn - il Magic Number. Questo è l'identificativo delle posizioni affinché il sistema di trading non mescoli i suoi ordini con quelli aperti manualmente o da altri ATS. Il valore del magic number deve essere unico e non deve coincidere con i numeri magici delle posizioni non aperte da questo specifico Expert Advisor.
P.S.
La dimensione del deposito iniziale è calcolata come il doppio dell'assoluto drawdown, in modo da considerare risorse di sicurezza.
L'EA fornito nei codici sorgente non è ottimizzato.
Se desiderate sostituire il BTS con l'algoritmo di un altro sistema di trading, dovete modificare il contenuto della funzione basicTradingSystem().
Per non inserire manualmente i valori iniziali, finali e i passi per l'ottimizzazione, potete utilizzare il file pronto combo.set, posizionarlo nella cartella \tester MT4 e caricarlo nelle proprietà dell'EA nel Tester.
La re-ottimizzazione dell'EA deve essere eseguita nel fine settimana, cioè il sabato o la domenica, solo se i risultati della settimana precedente sono stati non redditizi. La presenza di perdite indica che il mercato è cambiato e che è necessaria una re-ottimizzazione. Se ci sono stati profitti, significa che l'ATS non ha bisogno di re-ottimizzazioni e riconosce bene i pattern di mercato.
2008.03.06