Индикаторы: Two iMA Crossing Arrow

 

Two iMA Crossing Arrow:

Индикатор на базе стиля DRAW_COLOR_ARROW - отображает значок при пересечении двух iMA (Moving Average) на заданном баре

Two iMA Crossing Arrow

Автор: Vladimir Karputov

 

   
EA Search trading signals

if(!iGetArray(handle_iCustom,0,start_pos,count,buy) ||
      !iGetArray(handle_iCustom,1,start_pos,count,sell))


Возможная интерпретация индикатора

 
Kuang Kai Teng:

   
EA Search trading signals


Возможная интерпретация индикатора

Это не правильно. Правильная функция получения сигнала:

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double crossing_buffer[],crossing_colors[];
   ArraySetAsSeries(crossing_buffer,true);
   ArraySetAsSeries(crossing_colors,true);
   int start_pos=0,count=InpBar+1;
   if(!iGetArray(handle_iCustom,0,start_pos,count,crossing_buffer) ||
      !iGetArray(handle_iCustom,1,start_pos,count,crossing_colors))
     {
      return(false);
     }
   int size_need_position=ArraySize(SPosition);
   if(crossing_buffer[InpBar]>0.0)
     {
      if(crossing_colors[InpBar]==0.0)
        {
         if(!InpReverse)
           {
            if(m_prev_bars==m_last_deal_in) // on one bar - only one deal
               return(true);
            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);
           }
         else
            if(m_prev_bars==m_last_deal_in) // on one bar - only one deal
               return(true);
         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);
        }
      if(crossing_colors[InpBar]==1.0)
        {
         if(!InpReverse)
           {
            if(m_prev_bars==m_last_deal_in) // on one bar - only one deal
               return(true);
            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);
           }
         else
            if(m_prev_bars==m_last_deal_in) // on one bar - only one deal
               return(true);
         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);
        }
     }
//---
   return(true);
  }
 

Добавлено

Пример эксперта на основе данного индикатора индикатора: Two iMA Crossing Arrow EA

Two iMA Crossing Arrow EA
Two iMA Crossing Arrow EA
  • www.mql5.com
Пример создания советника по пользовательскому индикатору Two iMA Crossing Arrow EA. На баре может быть только одна сделка 'вход в рынок' (это внутренний параметр, он не вынесен во входные параметры и это не имеет отношения к параметру '   Only one positions') Индикатор на базе стиля рисования DRAW_COLOR_ARROW. Содержит два индикаторных буфера...
Причина обращения: