The author of the idea: Scriptor
MQL5 code author: barabashkakvn
The EA based on iADX (Average Directional Movement Index, ADX) and iAMA (Adaptive Moving Average, AMA) indicators. The EA only operates when a new bar appears. When receiving a trading signal, opposite positions are closed.
The search for the best parameters for the symbol and the timeframe should be carried out in two ways:
manual - editing "<" ">" characters in the signal equations:
if(adx_0<adx_1 && ama_0>ama_1)
{
ClosePositions(POSITION_TYPE_SELL);
double sl=(InpStopLoss==0)?0.0:m_symbol.Ask()-ExtStopLoss;
if(sl>=m_symbol.Bid()) // incident: the position isn't opened yet, and has to be already closed
{
PrevBars=0;
return;
}
double tp=(InpTakeProfit==0)?0.0:m_symbol.Ask()+ExtTakeProfit;
OpenBuy(sl,tp);
return;
}
if(adx_0>adx_1 && ama_0<ama_1)
{
ClosePositions(POSITION_TYPE_BUY);
double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
if(sl<=m_symbol.Ask()) // incident: the position isn't opened yet, and has to be already closed
{
PrevBars=0;
return;
}
double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
OpenSell(sl,tp);
return;
}
automatic - selecting stop loss, take profit and AMA indicator horizontal shift: