Помогите доработать эксперт

 

Из двух советников пытаюсь создать один.

Основной советник работает при выставлении тренда вручную dir 1 или -1.

добавил блок индикаторов и условий для входа на основе asctrend и nonlagma из другого кода.

Помогите дальше:

вместо dir учитывать условия индюков. и не менее главное условие: останавливать торговлю при появлении бара нейтрального цвета.



Спасибо

#property copyright ""
#property link      ""

//---- input parameters
extern int       TP=100;
extern double    Lot=0.1;
extern int       freq=15;
extern int       work=15;
extern int       DIR=-1;
extern int       maxord=5;

extern int           ASCT_RISK=3;
extern int           NonLagMA_Price          = 0;
extern int           NonLagMA_Length         = 21;
extern int           NonLagMA_Displace       = 0;
extern int           NonLagMA_Filter         = 0;
extern int           NonLagMA_Color          = 1;
extern int           NonLagMA_ColorBarBack   = 0;
extern double        NonLagMA_Deviation      = 0; 
int Magic=9876;
int t;
int                  MAGIC,BS,STP,SPR,tick,ticknum,DigLots,STF;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  t=0; 
  
  switch(Period())
   {
      case 1: STF=5; break;
      case 5: STF=15; break;
      case 15: STF=30; break;
      case 30: STF=60; break;
      case 60: STF=240; break;
      case 240: STF=1440; break;
      case 1440: STF=10080; break;
      case 10080: STF=43200; break;
      case 43200: STF=43200; break;
   }
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {

 double   asctb,asctr,asctbp,asctrp,asctb1,asctr1,nlc1,nlc,nlp;
 
 // Правила входа по индюкам
   asctb=iCustom(NULL,0,"ASCTrend1",ASCT_RISK,100,1,1);
   asctr=iCustom(NULL,0,"ASCTrend1",ASCT_RISK,100,0,1);
   asctbp=iCustom(NULL,0,"ASCTrend1",ASCT_RISK,100,1,2);
   asctrp=iCustom(NULL,0,"ASCTrend1",ASCT_RISK,100,0,2);
   nlc=iCustom(NULL,0,"nonlagma_v4",NonLagMA_Price,NonLagMA_Length,NonLagMA_Displace,NonLagMA_Filter,0,0,NonLagMA_Deviation,0,0);
   nlp=iCustom(NULL,0,"nonlagma_v4",NonLagMA_Price,NonLagMA_Length,NonLagMA_Displace,NonLagMA_Filter,0,0,NonLagMA_Deviation,0,1);
   
   if(asctb>asctr && asctbp<=asctrp && nlc-nlp>NonLagMA_Filter*Point
   && Open[0]>nlc!=EMPTY_VALUE) BS=OP_BUY; else
   if(asctb<asctr && asctbp>=asctrp && nlp-nlc>NonLagMA_Filter*Point
   && Open[0]<nlc!=EMPTY_VALUE) BS=OP_SELL; else BS=-1;
   
   {
      asctb1=iCustom(NULL,STF,"ASCTrend1",ASCT_RISK,100,1,1);
      asctr1=iCustom(NULL,STF,"ASCTrend1",ASCT_RISK,100,0,1);
      nlc1=iCustom(NULL,STF,"nonlagma_v4",NonLagMA_Price,NonLagMA_Length,NonLagMA_Displace,NonLagMA_Filter,0,0,NonLagMA_Deviation,0,0);
      if((BS==OP_BUY && (asctb1<asctr1 || iOpen(NULL,STF,0)<nlc1)) ||
      (BS==OP_SELL && (asctb1>asctr1 || iOpen(NULL,STF,0)>nlc1))) BS=-1;
   }
   // Основной эксперт 
   if (CurTime()-t-work*60<10) return(0);
   t=CurTime();
   int total=OrdersTotal();
   int i,b=0,s=0,s_time=0,b_time=0;
    for(i=0; i<=total;i++) {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && OrderType()==OP_BUY) {
        b++;
        if (OrderTakeProfit()-Ask>TP*Point) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Ask+TP*Point,0);
        if (OrderOpenTime()>b_time) b_time=OrderOpenTime();
      }
      if (OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL) {
        s++;
        if (Bid-OrderTakeProfit()>TP*Point) OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Bid-TP*Point,0);
        if (OrderOpenTime()>s_time) s_time=OrderOpenTime();
      }  
    }
   if (DIR==1 && CurTime()-b_time>=freq*60 && b<maxord) OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,Ask+TP*Point,"",Magic,0);
   if (DIR==-1 && CurTime()-s_time>=freq*60 && s<maxord) OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,Bid-TP*Point,"",Magic,0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
Причина обращения: