error code 4806 - page 3

 

An example of an Expert Advisor ( MA on DeMarker Simple EA ) based on the indicator ( MA on DeMarker )

Block responsible for trading signals:

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   if(iTime(m_symbol.Name(),InpWorkingPeriod,0)==m_last_deal_in) // on one bar - only one deal
      return(true);
   double dem[],ma_on_dem[];
   ArraySetAsSeries(dem,true);
   ArraySetAsSeries(ma_on_dem,true);
   int start_pos=0,count=6;
   if(!iGetArray(handle_iCustom,0,start_pos,count,dem) || !iGetArray(handle_iCustom,1,start_pos,count,ma_on_dem))
      return(false);
   int size_need_position=ArraySize(SPosition);
   if(size_need_position>0)
      return(true);
   int m_bar_current=0;
//--- BUY Signal
   if(dem[m_bar_current+1]<ma_on_dem[m_bar_current+1] && dem[m_bar_current]>ma_on_dem[m_bar_current])
      if(dem[m_bar_current+1]<Inp_DeM_LevelDOWN)
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal BUY");
         return(true);
        }
//--- SELL Signal
   if(dem[m_bar_current+1]>ma_on_dem[m_bar_current+1] && dem[m_bar_current]<ma_on_dem[m_bar_current])
      if(dem[m_bar_current+1]>Inp_DeM_LevelUP)
        {
         ArrayResize(SPosition,size_need_position+1);
         SPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         if(InpPrintLog)
            Print(__FILE__," ",__FUNCTION__,", OK: ","Signal SELL");
         return(true);
        }
//---
   return(true);
  }
MA on DeMarker Simple EA
MA on DeMarker Simple EA
  • www.mql5.com
Советник по сигналам пользовательского индикатора 'MA on DeMarker'
 
Thanks ... I will try several variants of this mini strategy....
Reason: