Проблема со свечными конфигурациями - страница 3

 
VOLDEMAR:


Бычье поглощение 

 

первая свеча в фигуре закрывается ниже своего открытия  

вторая свеча закрывается выше своего открытия и выше открытия первой свечи , при этом тело свечи 2 должно быть  больше тела 1 свечи ...

Вот и весь сигнал  


//+------------------------------------------------------------------+
//|                                              Voldemar_Candle.mq4 |
//|                                            Copyright 2012, Vinin |
//|                                                    vinin@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Vinin"
#property link      "vinin@mail.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW); 
   SetIndexArrow(0,174);
   SetIndexBuffer(0,ExtMapBuffer1); 
   SetIndexEmptyValue(0,EMPTY);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars;
   if (limit>1) {
      limit=Bars-2;
   }
   

   for (int i=limit; i>=0; i--)
   {
    ExtMapBuffer1[i]=EMPTY;
    if (Open[i+1]>Close[i+1])
      if (Close[i]>Open[i+1])
         if ((Close[i]-Open[i])-(Open[+i]-Close[i+1])>0) 
         ExtMapBuffer1[i]=High[i];
   }

   return(0);
  }
 

В знак благодарности я расскажу зачем мне это было нужно 

Вот код всего индикатора

#property indicator_chart_window
int start()
  {
   int n = 0 ;
   int g = 0 ;   

   for (int i=1; i<=Bars; i++)
   {
    if ( Close[i+1]<Open[i+1] && Close[i]>Open[i] && Close[i]>Open[i+1] && Open[i+1]-Close[i+1]<Close[i]-Open[i] )
     {
      
      ObjectCreate("t"+i,OBJ_ARROW, 0, 0, 0    );
      ObjectSet   ("t"+i,OBJPROP_PRICE1,High[i]);      
      ObjectSet   ("t"+i,OBJPROP_TIME1 ,Time[i]);      
      ObjectSet   ("t"+i,OBJPROP_ARROWCODE, 174);
      ObjectSet   ("t"+i,OBJPROP_COLOR,Red     );      
     }
    if ( Close[i+2]<Open[i+2] && Close[i+1]>Open[i+1] && Close[i+1]>Open[i+2] && Open[i+2]-Close[i+2]<Close[i+1]-Open[i+1] 
    &&  Close[i] > Open[i] &&  (Close[i] - Open[i])>NormalizeDouble(200*Point,Digits)/*минимальный размер следующей свечи*/
     )
     {
      n++;
     }   
    if ( Close[i+2]<Open[i+2] && Close[i+1]>Open[i+1] && Close[i+1]>Open[i+2] && Open[i+2]-Close[i+2]<Close[i+1]-Open[i+1] 
    &&  Close[i] > Open[i] &&  (Close[i] - Open[i])<NormalizeDouble(200*Point,Digits)
     )
     {
      g++;
     }       
   }
Comment("Удачных входов = ",n,"    Неудачных входов = ",g);
   return(0);
  }

 Код показывает сколько было правильных сигналов, и следующая свеча была больше заданного минимума .

Данный индикатор говорит нам ещё раз что Свечной анализ пригоден только для дневного таймфрема .....

Спасибо еще раз за помощь ! 

 
VOLDEMAR:

В знак благодарности я расскажу зачем мне это было нужно 

Вот код всего индикатора

 Код показывает сколько было правильных сигналов, и следующая свеча была больше заданного минимума .

Данный индикатор говорит нам ещё раз что Свечной анализ пригоден только для дневного таймфрема .....

Спасибо еще раз за помощь ! 


Это не совсем точный сигнал 

    ExtMapBuffer1[i]=EMPTY;
    if (Open[i+1]>Close[i+1])
      if (Close[i]>Open[i+1])
         if ((Close[i]-Open[i])-(Open[+i]-Close[i+1])>0) 

 На 100 % прав iteger 

Close[i+1]<Open[i+1] && Close[i]>Open[i] && Close[i]>Open[i+1] && Open[i+1]-Close[i+1]<Close[i]-Open[i]
 
VOLDEMAR:


Это не совсем точный сигнал 

 На 100 % прав iteger 

 


Извините, а какая между  этими конструкциями разница. Приведите ее
 
VOLDEMAR:


Это не совсем точный сигнал 

 На 100 % прав iteger  

Коды (проверки условия "бычьего поглощения") в обоих случаях одинаковые, НО в первом случае код оптимизирован, а во втором нет, просто Виктор допустил описочку:
   for (int i=limit; i>=0; i--)
   {
    ExtMapBuffer1[i]=EMPTY;
    if (Open[i+1]>Close[i+1])
      if (Close[i]>Open[i/*+1*/])
         if ((Close[i]-Open[i])-(Open[+i]-Close[i+1])>0) 
         ExtMapBuffer1[i]=High[i];
   }

и делов то...
 

Код integer 

 Close[i+1]<Open[i+1] && Close[i]>Open[i] && Close[i]>Open[i+1] && Open[i+1]-Close[i+1]<Close[i]-Open[i]

 берем первую свечу  закрылась в низ,  вторая закрылась в верх , проверяем закрылась ли вторая свеча выше открытия первой , проверяем больше ли тело второй свечи чем у первой .

В коде  Vinin 

нет проверки на размер второй свечи , и в случае если данная комбинация будет с пятницы на понедельник то вероятность не правильного сигнала больше чем в коде integer , в вашем коде понедельник может закрыться с разницей в 1 пункт и будет сигнал в коде integer сигнала не будет .....

 
TarasBY:
Коды (проверки условия "бычьего поглощения") в обоих случаях одинаковые, НО в первом случае код оптимизирован, а во втором нет, просто Виктор допустил описочку:

и делов то...

Вы ошибаетесь TarasBY код у Vinin правильно сделан , код сравнивает закрытие второй свечи с открытием первой , код правильный, но в таком варианте может быть не верный сигнал с гепом см. выше
 
TarasBY:
Коды (проверки условия "бычьего поглощения") в обоих случаях одинаковые, НО в первом случае код оптимизирован, а во втором нет, просто Виктор допустил описочку:

и делов то...

Описочки как раз не было. Иначе будет то, о чем говорит Волдемар
 

Вообще если доскональна разобрать коды то и в коде integera может быть не верный сигнал , так же с пятницу на понедельник может быть геп  который сделает вторую свечу выше первой и при этом её размер может быть больше первой , но такое мало вероятно и главное что бы вторая свеча имело визуально тело , знак силы движения в верх.

Обидно будет в начале недели получить ложный сигнал . 

 
VOLDEMAR:

Вообще если доскональна разобрать коды то и в коде integera может быть не верный сигнал , так же с пятницу на понедельник может быть геп  который сделает вторую свечу выше первой и при этом её размер может быть больше первой , но такое мало вероятно и главное что бы вторая свеча имело визуально тело , знак силы движения в верх.

Обидно будет в начале недели получить ложный сигнал . 

Добавьте условие, что цена открытия бара должна быть в пределах предыдущего Хай\Лоу.
Причина обращения: