Паттерн 1-2-3

 

Добрый день.

помогите запрограммировать паттерн при подходе цены к зоне.

пробую так

   if (Bid<UpLine){BS=OP_SELL; }
   if (High[1]+tr>DnLine && UpPointS==0 && DnPointS==0){UpPointS=High[1];}
   if (High[1]>UpPointS && High[1]<UpLine && UpPointS>0) {UpPointS=High[1];}
   if(UpPointS>0 && DnPointS==0 && UpPointS-High[1]>Point)DnPointS=Low[1];
   if(UpPointS>0 && DnPointS>0 && Low[1]<DnPointS)DnPointS=Low[1];
   if(BS==OP_SELL && BSo<0 && OS1==0) { 
   if (High[1]>((UpPointS-DnPointS)/2+DnPointS) && (Bid-DnPointS-1*Point)/Point>STP){
   urs = NormalizeDouble(DnPointS-1*Point,Digits); sll= NormalizeDouble(UpPrice+(0+SPR)*Point,Digits); BSo=OP_SELL; ltts=Time[0];} }     
   if(BS==OP_SELL && Bid>UpLine){UpPointS=0; DnPointS=0;}

где tr - АТР, по нему строю диапазон, в котором паттерн начинаю искать

 
Stells:

Добрый день.

помогите запрограммировать паттерн при подходе цены к зоне.

пробую так

где tr - АТР, по нему строю диапазон, в котором паттерн начинаю искать

А может экстремумы зигзага? С параметрами 3,1,1
 
artmedia70:
А может экстремумы зигзага? С параметрами 3,1,1

может.

а как это в коде будет выглядеть ?

 
Stells:

может.

а как это в коде будет выглядеть ?

Вы не знаете как зигзаг считать программно? Через iCustom()
 
artmedia70:
Вы не знаете как зигзаг считать программно? Через iCustom()
нет
 
Stells:
нет
Напишите в редакторе iCustom(), поставьте курсор на это слово и нажмите F1 ;)
 
artmedia70:
Напишите в редакторе iCustom(), поставьте курсор на это слово и нажмите F1 ;)

так можно :

//------------------------------------
  double y3=0, y2=0, y1=0, zz;    // экстремумы Зиг-Зага
  int    x3, x2, x1, sh=ShiftBars;// номера баров

  // Берём три экстремума Зиг-Зага
  while (y3==0) {
    zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
    if (zz!=0 && zz!=EMPTY_VALUE) {
      if      (y1==0) { x1=sh; y1=zz; }
      else if (y2==0) { x2=sh; y2=zz; }
      else if (y3==0) { x3=sh; y3=zz; }
    }
    sh++;
  }
//------------------------------------  
   
   if (Bid<UpLine){BS=OP_SELL; }

   if(BS==OP_SELL && BSo<0 && OS1==0) { 
   if (y3+tr>DnPrice && y3>y2  && y3>y1 && y1>y2 &&  y3<UpPrice){
   urs = NormalizeDouble(y2-1*Point,Digits); sll= NormalizeDouble(UpPrice+(0+SPR)*Point,Digits); BSo=OP_SELL; ltts=Time[0];} }   
 
Stells:

так можно :


Так вы ищете на три БАРА назад, включая нулевой, а экстремумы могут быть гораздо дальше, причём на нулевом ни одного. Советую поставить зигзага на график и посчитать сколько баров занимают три сформировавшихся экстремумов.


Да, в вашем коде не предусмотрено определение, пик это или впадина.

 
evillive:

Так вы ищете на три БАРА назад, включая нулевой, а экстремумы могут быть гораздо дальше, причём на нулевом ни одного. Советую поставить зигзага на график и посчитать сколько баров занимают три сформировавшихся экстремумов.


Да, в вашем коде не предусмотрено определение, пик это или впадина.

не знаю, я не профессионал, но в коментах ясно написано: ищет 3 экстремума.

Код Игоря (KimIV),думаю, стоит доверять.

 
Да, был неправ, код ищет экстремумы.
 

нет ли у кого примера реализации данного паттерна без зигзага ?

просто перебор баров и поиск минимумов и максимумов ?