Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Привык пользоваться стандартной библиотекой? В MQL5 она тоже есть!
Boris
3883
Boris 2014.08.20 10:09 

Благодарю откликнувшихся! Модераторов прошу удалить этот неразрешимый вопрос!

Надеюсь, что сегодня в полночь всё получится! Как я не мог догадаться сразу! Действительно, "мысля приходит опосля"! ;))

Vitalie Postolache
11064
Vitalie Postolache 2014.08.20 10:14  
код где? отсюда не видно...
Dmitry Fedoseev
41198
Dmitry Fedoseev 2014.08.20 10:48  

В чем вопрос? Узнать что начались новые сутки, или пересчитать все заново? 

В любом случае лучше написать индикатр так, чтобы эти выкрутасы не требовались. 

Boris
3883
Boris 2014.08.29 16:54  

Нашёл ошибку в стандартном индикаторе DailyPivotPoints, почему не соединялись линии при смене суток! 

    for(cnt=begin_bar; cnt>=0; cnt--)
    {
      yesterday_close=iClose(NULL,PERIOD_D1,cnt+1);
      today_open=iOpen(NULL,PERIOD_D1,cnt);
      yesterday_high=iHigh(NULL,PERIOD_D1,cnt+1);
      yesterday_low=iLow(NULL,PERIOD_D1,cnt+1);
      P = (yesterday_high+yesterday_low+yesterday_close+today_open)/4;//
      switch(ExtFormula)
      {
        case 1 :
          R = P + P - yesterday_low;
          S = P + P - yesterday_high;
          break;
        case 2 :
          R = P + yesterday_high - yesterday_low;
          S = P - yesterday_high + yesterday_low;
          break;
        case 3 :
          R = P + P - yesterday_low - yesterday_low + yesterday_high;
          S = P + P - yesterday_high - yesterday_high + yesterday_low;        
      }
      if(ExtDraw==true)
      {
        first_bar=iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt)); //-1;            // эти минусы 1 не дают соединиться линиям-
        if(cnt>0) last_bar=iBarShift(NULL,0,iTime(NULL,PERIOD_D1,cnt-1)); //-1; // уровням, т.к. в 0:00:00 никогда нет тика!
        else last_bar=0;
        while(first_bar>=last_bar)
        {
          if(first_bar==last_bar && last_bar>0) break;
          if(ExtFormula==0) ExtMapBuffer1[first_bar]=P;
          else
          {
            ExtMapBuffer1[first_bar]=R;
            ExtMapBuffer2[first_bar]=S;
          }
          first_bar--;
    } } }
    P = NormalizeDouble((yesterday_high + yesterday_low + yesterday_close)/3,Digits);
 

 

Учимся на своих ошибках и на чужих!

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий