Учусь писать индикатор... - страница 3

 

Хочу логику понять....

Цикл работает 5 раз... рисует 5 линий, после отрисовки 5-й линии останавливается, линии на месте.

Вроде всё нормально, но потом все линии исчезают.. похоже с новым тиком.. 

Как мне грамотно сделать этот цикл.

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

 
Ответил в предыдущем посте.
 

Т.е. мне сами условия

int tD=0;
int D=1;
просто занести в цикл? Я правильно понял..

Условие то одно, а в цикле оно меняется, поэтому и линий несколько! Если просто условие загоняю в цикл, то рисуется линия по условию только одна!

 

Люди! Ну кто-нить хоть что-то посаветуте новичку!!!

Код выше... Как реализовать прорисовку линий правильно?

 

Я счастлив как ребенок!!!)))

Когда увеличил ТФ, то увидел странную вещь... что линии как и нужно было не исчезают, просто после нового тика отрисовываются дальше по графику, всё дальше и дальше..)

После этого до меня дошло, что переменные начальные

int tD=0;
int D=1;
просто набирают каждым тиком новый ++ )))

Нужно было в итоге поставить ограничение на эти переменные условием внутри цикла:

int цикл=5;
datetime TimeBegin;
datetime TimeEnd;
int tD=0;
int D=1;



int start()
{

     for (int d=0; d<цикл; d++)
         {
            if (tD==цикл) continue; //если отрисовали все линии выход из цикла
            else                   //если не отрисовали продолжаем
               {
                  TimeBegin = iTime(NULL,PERIOD_D1,tD);
                  TimeEnd = (TimeBegin + 86400);
         
                  double DHigh  =iHigh(NULL,PERIOD_D1,D);

                  ObjectCreate (DH+d, OBJ_TREND, 0, 0,0, 0,0,0,0); //все ObjectSet описывать не буду их много...
                  ObjectSet (DH+d, OBJPROP_TIME1, TimeBegin);
                  ObjectSet (DH+d, OBJPROP_PRICE1, DHigh);
                  ObjectSet (DH+d, OBJPROP_TIME2, TimeEnd);
                  ObjectSet (DH+d, OBJPROP_PRICE2, DHigh);

                  tD++;
                  D++; 
               }
        
         }

   return(0);
}
 

Теперь хочу подсчитать статистику отработки линий 

Например цена косается цены-лини и заходя за неё на установленную дистанцию -10 пп, отбивается от неё уходит обратно на 20пп

Т.е. грубо хочу проверить сопротивление линий при разных значениях их пробоя.. Заход 5пп, 10пп, 20пп... и т.д.

Как можно это реализовать?

Причина обращения: