Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 849

 
Sergey Voytsekhovsky:

если на картинке журнал не видно, вот несколько крайних записей

Пардон, в Print() для стрелки вниз была ошибка, подставлялось время стрелки Вверх, исправил, но сейчас это не важно.

 
Sergey Voytsekhovsky:

если на картинке журнал не видно, вот несколько крайних записей

А разве время крайней правой свечи 10:00 на часовом графике???

 
Alexey Viktorov:

А разве время крайней правой свечи 10:00 на часовом графике???

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

https://www.mql5.com/ru/forum/160683/page848#comment_11761231

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.20
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 

Вот здесь картинка с исправленным Print() для стрелки Вниз


 
void OnTick()
  {
   if (CopyBuffer(CrossAD, 1, 0, period_find, Buf_Arrow_Buy) != period_find)
      {  
         Print("НЕ удалось правильно скопировать данные из 1-го буфера индикатора iCrossAD, error code %d",GetLastError());
         return;
      }
         for(int n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Buy[n]!=EMPTY_VALUE)
               {
                  Last_Arrow_Buy_volume = iOpen(_Symbol,_Period,n);
                  Last_Arrow_Buy_time   = iTime(_Symbol,0,n);
                  Last_Arrow_Buy_index  = n;
                  Print("Last_Arrow_Buy_volume = ",Last_Arrow_Buy_volume,", Last_Arrow_Buy_index = ",Last_Arrow_Buy_index,", Last_Arrow_Buy_time = ",Last_Arrow_Buy_time);
                  break;
               }   
            }
         
   if (CopyBuffer(CrossAD, 2, 0, period_find, Buf_Arrow_Sell) != period_find)
      {  
         Print("НЕ удалось правильно скопировать данные из 2-го буфера индикатора iCrossAD, error code %d",GetLastError());
         return;
      }
         for(int n=0; n<(int)period_find; n++)
            {
               if(Buf_Arrow_Sell[n]!=EMPTY_VALUE)
               {
                  Last_Arrow_Sell_volume = iOpen(_Symbol,_Period,n);
                  Last_Arrow_Sell_time   = iTime(_Symbol,0,n);
                  Last_Arrow_Sell_index  = n;
                  Print("Last_Arrow_Sell_volume = ",Last_Arrow_Sell_volume,", Last_Arrow_Sell_index = ",Last_Arrow_Sell_index,", Last_Arrow_Sell_time = ",Last_Arrow_Sell_time);
                  break;
               }
            }
      
Comment("-------------------------", 
         "\n Last_Arrow_Buy_volume     = ",Last_Arrow_Buy_volume,
         "\n Last_Arrow_Buy_index        = ",Last_Arrow_Buy_index,
         "\n Last_Arrow_Buy_time         = ",Last_Arrow_Buy_time,
         "\n ---------------------- ",
         "\n Last_Arrow_Sell_volume     = ",Last_Arrow_Sell_volume,
         "\n Last_Arrow_Sell_index        = ",Last_Arrow_Sell_index,
         "\n Last_Arrow_Sell_time         = ",Last_Arrow_Sell_time
         ); 
  }
Файлы:
 
Sergey Voytsekhovsky:

Обоим массивам делали ArraySetAsSeries() ?

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Artyom Trishkin:

Обоим массивам делали ArraySetAsSeries() ?

Да, обоим.

int OnInit()
  {
   ArraySetAsSeries(Buf_Arrow_Buy, true);
   ArraySetAsSeries(Buf_Arrow_Sell, true);
//---
   CrossAD = iCustom(asymbol.Name(), _Period, "iCrossAD");
   if (CrossAD == INVALID_HANDLE)
   {
      Print("Не удалось создать описатель индикатора iCrossAD!");
      return(INIT_FAILED);
   }
      else Print("Хендл iCrossAD = ",CrossAD);
//---
   return(INIT_SUCCEEDED);
  }

Я обратил внимание на то что на паралельно активированном на графике индикаторе iCustom, не выставляются стрелки на основном графике. Это может быть причиной,,,???

 
Sergey Voytsekhovsky:

Да, обоим.

Я обратил внимание на то что на паралельно активированном на графике индикаторе iCustom, не выставляются стрелки на основном графике. Это может быть причиной,,,???

В цикле, когда n==0 выведите время бара n - сразу поймёте откуда цикл начинается.

 
Sergey Voytsekhovsky:

Да, обоим.

Я обратил внимание на то что на паралельно активированном на графике индикаторе iCustom, не выставляются стрелки на основном графике. Это может быть причиной,,,???

Снес и снова поставил индикатор, стрелки появились, советник по прежнему не видит крайней стрелки

 
Sergey Voytsekhovsky:

Снес и снова поставил индикатор, стрелки появились, советник по прежнему не видит крайней стрелки

Компилировал советник - пропали стрелки параллельно запущенного на графике индикатора, на главном графике. Барабашка какой-то завелся что-ли???

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