Kod: Zaznacz cały
if((b==0&&s==0 && BUY==true )||(Ask<opB-dis-spred&&b>=1&&s==0)) { OrderSend(Symbol(),OP_BUY ,LotB,Ask,Slip,0,0,"o/k",Magic,0,Green); }
if((s==0&&b==0 && SELL==true )||(Bid>opS+dis-spred&&s>=1&&b==0)) { OrderSend(Symbol(),OP_SELL,LotS,Bid,Slip,0,0,"o/k",Magic,0,Red); }
Faktycznie nie mam otwierania do skutku ale nie pomyślałem o tym bo wcześniejsza wersja działa bez problemów.
ADX obliczam standardowo:
Kod: Zaznacz cały
double adx_m5 = iADX(Symbol(),TF1,14,PRICE_CLOSE,0,0);
double di_p_m5 = iADX(Symbol(),TF1,14,PRICE_CLOSE,1,0);
double di_m_m5 = iADX(Symbol(),TF1,14,PRICE_CLOSE,2,0);
double adx_m15 = iADX(Symbol(),TF2,14,PRICE_CLOSE,0,0);
double di_p_m15 = iADX(Symbol(),TF2,14,PRICE_CLOSE,1,0);
double di_m_m15 = iADX(Symbol(),TF2,14,PRICE_CLOSE,2,0);
if ((adx_m5>ADXTrend)&&(di_p_m5>di_m_m5)) { a5m_t = 1; }
else if ((adx_m5>ADXTrend)&&(di_p_m5<di_m_m5)) { a5m_t = -1; }
else { a5m_t = 0; }
if ((adx_m15>ADXTrend)&&(di_p_m15>di_m_m15)) { a15m_t = 1; }
else if ((adx_m15>ADXTrend)&&(di_p_m15<di_m_m15)) { a15m_t = -1; }
else { a15m_t = 0; }
bool BUY=false; bool SELL=false;
if(a5m_t==1 && a15m_t==1){ BUY=true;}
if(a5m_t== -1 && a15m_t== -1){ SELL=true;}