Scopo dell'EA
Questo EA è progettato per lavorare con qualsiasi Custom che disegni frecce di acquisto/vendita, eccetto gli indicatori con parametri di tipo stringa.
Il nome dell'indicatore personalizzato è specificato nei parametri dell'EA, così come l'elenco dei parametri dell'indicatore e i numeri dei buffer per il disegno delle frecce di acquisto/vendita.

Nonostante l'uso di un elenco di parametri di tipo stringa, è possibile ottimizzare fino a cinque parametri dell'indicatore. Invece di una delle variabili della lista di parametri iCustomParam, è possibile utilizzare il valore di una delle variabili Opt_1_Value - Opt_5_Value.

Parametri dell'Expert Advisor
- TimeFrame - timeframe di lavoro dell'EA: 0 - timeframe del grafico su cui l'EA è in esecuzione, o che è stato selezionato nel tester. Oppure un valore specifico 1,5,15,30,60,240,1440...
- iCustomName - nome dell'indicatore Custom.
- iCustomParam - l'elenco dei parametri delimitati da "/". Per le variabili booleane, usa 1 invece di true, 0 invece di false. Se i parametri dell'indicatore contengono variabili stringa, l'EA non funzionerà!
- iBuyBufIndex - indice del buffer con le frecce di acquisto.
- iSellBufIndex - indice del buffer con le frecce di vendita.
- iShift - offset dell'indicatore. 1 - lavora sulle barre formate, 0 - sulla barra in formazione (non raccomandato). È anche possibile inserire un valore 2,3,4...
- Opt_1_Use - abilita l'uso della variabile 1 da ottimizzare. Quando la variabile da ottimizzare è attivata, invece del valore dalla stringa iCustomParam, definito dalla variabile Opt_X_Index, verrà utilizzato il valore della variabile Opt_X_Value.
- Opt_1_Index - indice della variabile 1 da ottimizzare nell'array dei parametri (nella stringa iCustomParam). La numerazione inizia da zero.
- Opt_1_Value - valore della variabile 1 da ottimizzare.
- Opt_2_Use - abilita l'uso della variabile 2 da ottimizzare.
- Opt_2_Index - indice della variabile 2 da ottimizzare nell'array dei parametri (nella stringa iCustomParam). La numerazione inizia da zero.
- Opt_2_Value - valore della variabile 2 da ottimizzare.
- Opt_3_Use - abilita l'uso della variabile 3 da ottimizzare.
- Opt_3_Index - indice della variabile 3 da ottimizzare nell'array dei parametri (nella stringa iCustomParam). La numerazione inizia da zero.
- Opt_3_Value - valore della variabile 3 da ottimizzare.
- Opt_4_Use - abilita l'uso della variabile 4 da ottimizzare.
- Opt_4_Index - indice della variabile 4 da ottimizzare nell'array dei parametri (nella stringa iCustomParam). La numerazione inizia da zero.
- Opt_4_Value - valore della variabile 4 da ottimizzare.
- Opt_5_Use - abilita l'uso della variabile 5 da ottimizzare.
- Opt_5_Index - indice della variabile 5 da ottimizzare nell'array dei parametri (nella stringa iCustomParam). La numerazione inizia da zero.
- Opt_5_Value - valore della variabile 5 da ottimizzare.
- MMMethod - Metodo di MM: 0-Lots, 1-parte (Rischio) del margine libero, 2-parte (Rischio) del margine libero normalizzato dal MeansStep.
- Lots - numero di lotti quando MMMethod=0.
- Risk - rischio. Valore basato sui fondi con FixedLot=false.
- MeansType - tipo di fondi utilizzati nel calcolo dei lotti. 1 - Balance, 2 - Equity, 3 - FreeMargin.
- MeansStep - passo dei fondi. Usato con MMMethod=2.
- LotsDigits - numero di decimali nel valore del lotto.
- Slippage - deviazione consentita dal prezzo richiesto.
- StopLoss - stop loss.
- TakeProfit - take profit.
- Magic_N - numero magico.
- MaxOrdersCount - numero massimo totale di ordini aperti. -1 - non limitato.
- MaxBuyCount - numero massimo di ordini di acquisto aperti. -1 - non limitato.
- MaxSellCount - numero massimo di ordini di vendita aperti. -1 - non limitato.
- SleepBars - timeout dopo l'apertura di un ordine in numero di barre del timeframe di lavoro.
- CancelSleeping - attivazione della cancellazione del timeout quando si apre un ordine nella direzione opposta.
- CloseOnRev - chiudi ordini nella direzione opposta prima di aprire.
- TrailingStop_Use - attivazione della funzione di trailing stop.
- TrailingStopStart - profitto dell'ordine per attivare il trailing stop.
- TrailingStop - il livello di trailing stop.
- BreakEven_Use - attivazione della funzione breakeven.
- BreakEvenStart - profitto dell'ordine per attivare il breakeven.
- BreakEvenLevel - livello per posizionare lo stop loss dal prezzo di attivazione del breakeven.
Nota
L'archivio con l'expert contiene il file test_example.set con un esempio di impostazioni per l'uso dell'indicatore ind_Test (incrocio di due МАs) e le variabili da ottimizzare. L'indicatore ind_Test è allegato.
Versione 2
1. Aggiunta la possibilità di utilizzare indicatori diversi per i segnali di apertura e chiusura. I parametri per l'indicatore di apertura iniziano con il prefisso _O_, per l'indicatore di chiusura - con il prefisso _C_.
Ci sono tre modalità possibili per utilizzare gli indicatori di apertura e chiusura (definiti dalla variabile _OС_Mode):
- Modalità 1 - l'indicatore non viene usato per la chiusura. La chiusura è possibile solo tramite stop loss e take profit.
- Modalità 2 - l'indicatore di chiusura non viene usato. Oltre alla chiusura tramite stop loss e take profit, la chiusura degli ordini opposti viene eseguita tramite i segnali di apertura. Lo stop loss e il take profit possono essere disabilitati - impostare il valore 0 nelle variabili StopLoss e/o TakeProfit (si applica a tutte le modalità).
- Modalità 3 - segnali di chiusura separati basati sull'indicatore di chiusura (_C_) vengono utilizzati. In questa modalità è possibile utilizzare una modalità aggiuntiva per copiare i parametri dell'indicatore di apertura ai parametri dell'indicatore di chiusura (variabile C_UseOpenParam), e contemporaneamente il nome dell'indicatore e i suoi parametri vengono copiati. Questa modalità è stata creata per gli indicatori che generano segnali di apertura e chiusura per aumentare la velocità di ottimizzazione (anche i parametri ottimizzati vengono copiati).
2. È possibile utilizzare non solo indicatori con frecce, ma anche indicatori con linee. È possibile utilizzare due linee (incrocio della linea principale e della linea di segnale) e una linea - il suo incrocio con i livelli. Usa la variabile _O_Mode (e _С_Mode nel blocco di chiusura) per selezionare il tipo di indicatore.
- Modalità 1 - l'indicatore disegna frecce. Le variabili _O_M1_iBuyBufIndex e _O_M1_iSellBufIndex vengono utilizzate per specificare i numeri dei buffer, e nel blocco di chiusura - _C_M1_iCloseBuyBufIndex e _C_M1_iCloseSellBufIndex.
- Modalità 2 - vengono utilizzate la linea principale e la linea di segnale dell'indicatore. Se la linea principale incrocia la linea di segnale dal basso - segnale per aprire Buy o chiudere Sell. Le variabili _O_M2_iMainBufIndex, _O_M2_iSignalBufIndex e _C_M2_iMainBufIndex, _C_M2_iSignalBufIndex vengono utilizzate per specificare i buffer.
- Modalità 3 - viene utilizzata una linea dell'indicatore. Il numero del buffer è specificato nella variabile _O_M3_iBufIndex (o _С_M3_iBufIndex nel blocco di chiusura). Le variabili _O_M3_BuyLevel e _O_M3_SellLevel (_O_M3_CloseBuyLevel e _C_M3_CloseSellLevel nel blocco di chiusura) vengono utilizzate per specificare i valori dei livelli. L'incrocio del livello Buy dal basso - acquisto, incrocio del livello Sell dall'alto - vendita.
Versione 3
Aggiunto un'altra modalità _O_Mode (e _S_Mode)
Modalità 4 - Estremo da tre punti. Utilizza una linea dell'indicatore. Il numero del buffer è specificato nella variabile _O_M4_iBufIndex (o _С_M4_iBufIndex nel blocco di chiusura).

Versione 4
1. Aggiunto il supporto per ordini pendenti.
2. Aggiunta la sezione separatori nella finestra delle proprietà (da variabili stringa).
La selezione del tipo di ordine viene eseguita dalla variabile OrdType: 0 - mercato, 1 - stop, 2 - limite (la variabile è nella sezione "Ordine").
La sezione variabili "Ordini Pendenti" per gestire il funzionamento degli ordini pendenti:
- PendLevel - il livello dal prezzo di mercato attuale per posizionare l'ordine pendente.
- PendPromPrice - il prezzo per posizionare l'ordine pendente calcolato dal prezzo della barra zero, con PendPromPrice=0 - dal prezzo di chiusura (corrisponde al prezzo di mercato attuale), 1 - dal prezzo di apertura della barra.
- PendNewSigMode - metodo di controllo dell'ordine pendente su un nuovo segnale di trading: 0 - se un ordine è già stato posizionato, non vengono effettuate azioni quando appare un nuovo segnale di trading, 1 - sostituisci l'ordine su un nuovo segnale, 2 - su un nuovo segnale l'ordine viene sostituito solo a un "livello migliore" - buy-stop solo in giù, buy-limit solo in alto, sell-stop solo in alto, sell-limit solo in giù.
- PendPriceFollow - modalità di follow price. L'ordine viene modificato ad ogni cambiamento di un certo valore PendPromPrice, l'ordine viene sostituito solo a un "prezzo migliore" (vedi la descrizione della variabile PendNewSigMode).
- PendDelete - elimina l'ordine pendente su un segnale di trading opposto. Se il valore è falso, è possibile avere due ordini pendenti in direzioni diverse contemporaneamente.
- PendExpiration - tempo di scadenza dell'ordine in minuti (il valore minimo è di 11 minuti).
Post correlati
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- Utilizzare MQL5 Wizard per generare segnali di trading: Hammer e Hanging Man con CCI
- MQL5 Wizard: Creare Trade Signals con Hammer/Hanging Man e RSI
- MQL5 Wizard: Crea Signal Trading con Hammer e Hanging Man + Stochastic per MetaTrader 5
- MQL5 Wizard: Strategia di Trading con Dark Cloud Cover/Piercing Line e RSI