Idea di: Gatis.
Codice MQL5 di: Vladimir Karputov.
Il nostro EA analizza quattro parametri chiave:
- Valore della linea principale del MACD al bar #1 (macd_main_1)
- Valore della linea di segnale del MACD al bar #1 (macd_signal_1)
- Valore dell'indicatore SAR al bar #1 (sar_1) rispetto al prezzo Bid (m_symbol.Bid())
Questi parametri vengono combinati nella formula di base per generare segnali di acquisto e vendita:
bool open_buy = (macd_main_1>macd_signal_1 && macd_signal_1<0 && sar_1<m_symbol.Bid()); bool open_sell = (macd_main_1<macd_signal_1 && macd_signal_1>0 && sar_1>m_symbol.Bid());
Tuttavia, puoi ottimizzare i valori dei segni < e > in qualsiasi parte della formula. Per fare ciò, per ciascun segno < e >, sono state introdotte delle variabili (InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, e InpMoreLessSell_3). Con queste variabili, la formula di base viene modificata come segue:
bool open_buy= (InpMoreLessBuy_1 ? macd_main_1>macd_signal_1 : macd_main_1<macd_signal_1) && (!InpMoreLessBuy_2 ? macd_signal_1 < 0 : macd_signal_1 > 0 ) && (!InpMoreLessBuy_3 ? sar_1 < m_symbol.Bid() : sar_1 > m_symbol.Bid() ); bool open_sell=(!InpMoreLessSell_1 ? macd_main_1<macd_signal_1 : macd_main_1>macd_signal_1) && (InpMoreLessSell_2 ? macd_signal_1 > 0 : macd_signal_1 < 0 ) && (InpMoreLessSell_3 ? sar_1 > m_symbol.Bid() : sar_1 < m_symbol.Bid() );
Il nostro EA opera esclusivamente quando appare un nuovo bar. Quando riceve un segnale, le posizioni opposte al segnale ricevuto vengono chiuse.
Quando ottimizzi la formula, potrebbe essere utile anche ottimizzare il numero di posizioni:

Commento 0