[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 612

 
Fox_RM:

Оказалось не все так просто. Добавил в имя номер, создаются по 3 (к примеру) линии, но они ни куда не переезжают:( Получается, что нужно делать замкнутый цикл и каждый раз новый номер присваивать, но здесь уже ситуация идентичная с присвоением

имени линии времени. Просто ужас какой-то...


Посмотри этот индикатор
Файлы:
_linestat.mq4  6 kb
 
alsu:
указать в начале программы
Спасибо очень помогло.
 
void flatline(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W)
  {
     ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR, colir);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_WIDTH,W);   
   ObjectSet(labebe, OBJPROP_BACK, true);
   }
Код функции для отрисовки линий. Всем, кто откликнулся, СПАСИБО огромное.
 

Парни помогите,

вопрос в следующем, есть самопальный графический индикатор, но проблема в следующем, когда наступает определенный момент, допустим текущее время

if ((k>=15 && k<16) || (Hour()>=15)) // где k- по прошлым дням (для рисования не только в одном дне, но и по всей истоии)

он должен нарисовать экстремум по старойторговой сессии (удобно для определения где сейчас идет торговля), но загвоздка в том, что индюк не рисует графику, только если переключить тайм фрейм туда/обратно...

Вот кусочек кода рисования

if (Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)]> Open[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)])
{

max_eu=Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)];
Name="max2";
ObjectCreate(Name,OBJ_TREND,0,Time[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)],max_eu,Time[i]+l,max_eu);
ObjectSet(Name, OBJPROP_COLOR, Navy);
ObjectSet(Name,OBJPROP_RAY,false);
ObjectSet(Name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);
ObjectSet(Name, OBJPROP_WIDTH, 1);

Label="надпись2";
ObjectCreate(Label,OBJ_TEXT,0,Time[i]+l,max_eu);
ObjectSetText(Label,"Max Европа ", 8, "Arial", Navy);
ObjectSet(Label, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);

WindowRedraw();
}

Я запутался...

 

DOCTORS:

самопальный

это правильно


Я запутался...

Чтобы распутать, можно после if(...) поставить Print() и посмотреть, вообще входит ли в условие
 
alsu:
это правильно


Чтобы распутать, можно после if(...) поставить Print() и посмотреть, вообще входит ли в условие
Там несколько условий... это один из вариантов. Поставлю принт...
 

Скажите есть примерно такие же программы для сбора статистики?

}
 
Fox_RM:
Код функции для отрисовки линий. Всем, кто откликнулся, СПАСИБО огромное.
void flatline(string nm,datetime t1,double p1,datetime t2,double p2,color clr, int W){
   ObjectDelete(nm);// это не обязательно.
   ObjectCreate(nm, OBJ_TREND, 0,0,0,0,0);
   ObjectSet(nm, OBJPROP_PRICE1,p1);
   ObjectSet(nm, OBJPROP_TIME1,t1);
   ObjectSet(nm, OBJPROP_PRICE2,p2);
   ObjectSet(nm, OBJPROP_TIME2,t2);
   ObjectSet(nm, OBJPROP_COLOR, clr);
   ObjectSet(nm, OBJPROP_STYLE,0);
   ObjectSet(nm, OBJPROP_RAY,false);
   ObjectSet(nm, OBJPROP_WIDTH,W);   
   ObjectSet(nm, OBJPROP_BACK, true);
   WindowRedraw();// если обновлять на каждом тике, лучше поставить в самом конце старта
   return;   
}
 

Alert ("количество бычьих баров = ", vverh, " - ", vverh/(Konec/100), " % " );


Подскажите почему выражение vverh/(Konec/100) у меня получается целое без запятой? После запятой еще цифры должны быть до 4ого знака но у меня выводит целое число. =(

Alert ("количество нулевых баров = ", nul, " - ", DoubleToStr(nul/(Konec/100),2), " % " ); такое выражение тоже не помогает.

 
ChAnton:

Alert ("количество бычьих баров = ", vverh, " - ", vverh/(Konec/100), " % " );


Подскажите почему выражение vverh/(Konec/100) у меня получается целое без запятой? После запятой еще цифры должны быть до 4ого знака но у меня выводит целое число. =(

где-то int спряталась
Причина обращения: