新人对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 指标上,主图表上的箭头并没有显示出来这可能是原因吗?

我拆下并重新装上指示器,箭头出现了,EA仍然没有看到箭头。

 
Sergey Voytsekhovsky:

把它拿下来,再把指标放上去,箭头出现了,EA还是没有看到最后的箭头

我编译了专家顾问--主图上平行运行指标的箭头消失了。某种霍比特人已经开始了还是什么?

原因: