Пролема с ZZ - страница 2

 
RomanS писал(а) >>

Всем привет.

Второй день голову ломаю почему эксперт открывает позиции не по алгоритму. Анализируя сделки на истории вообще не понятно почему там где надо не открывает и наоборот (правда не всегда). А вот почему...

Причем этот скрин сделан при визуализации в тестере. А если просто смотреть на истории то такого бага не будет.

Знаю, что эта тема уже обсуждалась на форуме, но по поиску что-то не накопал. Посоветуйте кто что может.

Прежде всего, следует переписать ZZ в виде функции для вызова из эксперта и не вызывать через iCustom. В любом случае, не принимать сигналы ZZ о сформировавшейся локальном максимуме/минимуме для открытия позиций. ZZ полезен для определения уровней поддержки\сопротивления.

 

У меня вопрос, как из точек сделать отрезки? Есть 4 буфера - на каждую точку буфер с датой и ценой. Нужно что б в другие 4 буфера легли координаты отрезков, коих будут примерно в два раза больше точек. И вот я впал в ступор как эти точки преобразовать в отрезки? График в виде ZZ.

К примеру H - вершины L - впадины

Цикл A B
0 H[0] L[0]
1 L[1] H[0]
2 H[1] L[1]
3 L[2] H[1]
4 H[2] L[2]
5 L[3] H[2]

Видно, что вершины и впадины можно чередовать через проверку цикла на четное/ не четное число. Но, как индекс массива организовать - я затрудняюсь.

 
Aleksey Vyazmikin:

У меня вопрос, как из точек сделать отрезки? Есть 4 буфера - на каждую точку буфер с датой и ценой. Нужно что б в другие 4 буфера легли координаты отрезков, коих будут примерно в два раза больше точек. И вот я впал в ступор как эти точки преобразовать в отрезки? График в виде ZZ.

К примеру H - вершины L - впадины

Цикл A B
0 H[0] L[0]
1 L[1] H[0]
2 H[1] L[1]
3 L[2] H[1]
4 H[2] L[2]
5 L[3] H[2]

Видно, что вершины и впадины можно чередовать через проверку цикла на четное/ не четное число. Но, как индекс массива организовать - я затрудняюсь.


Готово - теперь можно идти спать

   bool Chetniy=false;
   double ChetniyN=0;

   for(int i=0; i<arrSizeOtrezok-1; i++)
     {
      Chetniy=true;
      ChetniyN=i;
      if(i>0 && NormalizeDouble(ChetniyN/2,0)-ChetniyN/2>0)Chetniy=false;
      if(VektorLast==1)
      {
      if(Chetniy==false)//2
           {
            int N=(i-1)/2;
            ZZ_Start_Price[i-1]=ZZ_Low_Price[N];
            ZZ_Start_Time[i-1]=ZZ_Low_Time[N];
            ZZ_Stop_Price[i-1]=ZZ_High_Price[N];
            ZZ_Stop_Time[i-1]=ZZ_High_Time[N];
     
            ZZ_Start_Price[i]=ZZ_High_Price[N+1];
            ZZ_Start_Time[i]=ZZ_High_Time[N+1];
            ZZ_Stop_Price[i]=ZZ_Low_Price[N];
            ZZ_Stop_Time[i]=ZZ_Low_Time[N];
            }
       }     
      if(VektorLast==-1)
      {
      if(Chetniy==false)//2
           {
            int N=(i-1)/2;
            ZZ_Start_Price[i-1]=ZZ_High_Price[N];
            ZZ_Start_Time[i-1]=ZZ_High_Time[N];
            ZZ_Stop_Price[i-1]=ZZ_Low_Price[N];
            ZZ_Stop_Time[i-1]=ZZ_Low_Time[N];
     
            ZZ_Start_Price[i]=ZZ_Low_Price[N+1];
            ZZ_Start_Time[i]=ZZ_Low_Time[N+1];
            ZZ_Stop_Price[i]=ZZ_High_Price[N];
            ZZ_Stop_Time[i]=ZZ_High_Time[N];
            }
       }        
     }
 
Alexander Mostovnek:

Извините что влажу в вашу тему, просто, я тоже мучаюсь с ZZ и мне стало интересно, а почему у Вас в iCustom столько параметров???

В моем iCustom по зтгзагу 6 параметров,


а у Вас аж 8!)

И еще, что за параметр ExtDepth? И зачем вообще в Айкастоме нужен неопределенный параметр, куда его девать то? А ведь без него не работает нифига....


Потому что у вас Мт5,  а у него МТ4