错误、漏洞、问题 - 页 1339

 
A100:
为什么?
要看到这个逻辑。
 
Karputov Vladimir:
为了看到这个逻辑。
把它打印出来--我在上面描述了结果
 
A100:
把它打印出来--结果如上所述
你在哪里打印出来的?结果在哪里呢?我没有看到--你忘了附上打印前和打印后的资料。
 
Karputov Vladimir:
打印出来的文件在哪里?结果在哪里呢?我没有看到--你忘了附上打印前和打印后的资料。

复位前 之前

复位后 之后

 

在论坛中添加图片时没有显示标题

我正在填写 "标题 "一栏。图片显示出来了,但标题没有显示出来

 
A100:

图形在简介中的不同顺序

如果你在一个简介中的多个图形中添加一个新的图形,并把它移到中间,例如

然后在随后列出的图表中,使用了脚本的

它将被移到最后一个,尽管它是在中间。

而如果你重新加载MT,它就会像图中那样,在新的枚举过程中处于中间位置

结果是重装前和重装后的行为不同。逻辑在哪里?

我们已经添加了 "EURAUD"、"EURCAD"、"EURUSD "和 "NZDUSD",并激活了第一个图表 - "EURAUD"

步骤1

"NZDUSD "被放在 "EURAUD "之后,我们激活第一个图表--"EURAUD"

第2步

重新加载后(第一个图表仍然有效 - "EURAUD")。

第3步

一切都很有意义。只有在脚本被调用之前。

//+------------------------------------------------------------------+
//|                                                    ChartNext.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- переменные для идентификаторов графиков
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);
   while(i<limit)// у нас наверняка не больше 100 открытых графиков
     {
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график
      if(currChart<0) break;          // достигли конца списка графиков
      Print(i,ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+

你必须仔细选择活动图表。下一个图形 是从活动的图形 开始计算的。
 
Karputov Vladimir:

一切都很有意义。

这其中的逻辑是什么?如果重启前有一个序列2-3-4-5,重启后又有一个2-5-3-4?
 
A100:
而这背后的逻辑是什么?如果重启前有一个序列2-3-4-5,重启后又有一个2-5-3-4?

在重新加载之前,图形会按照创建的顺序 写入配置文件中,即1-2-3-4。在重新加载之前,配置文件被重写(图形运动的最后修订被写入其中,即1-4-2-3-3)。重启后,图形按照图形运动的最后修订版重新绘制(创建),即1-4-2-3-3。

因此在重启后,由于图表是按照1-4-2-3的顺序创建的,这意味着ChartNext() 将准确返回这个顺序。

 
Karputov Vladimir:

在重新加载之前,图形会按照创建的顺序 写入配置文件中,即1-2-3-4。在重新加载之前,配置文件被重写(图形运动的最后修订被写入其中,即1-4-2-3-3)。重新加载后,根据图形运动的最后一次修订,即1-4-2-3-3,重新绘制(创建) 图形。

问题不在于它目前是如何实现的(可以用不同的方式实现),而在于重载之前和重载之后(其他条件相同)的结果是不同的,因此逻辑被破坏了。
 
A100:
问题不在于它目前是如何实现的(可以用不同的方式实现),而在于重载前和重载后(其他条件都相同)的结果是不同的,这意味着逻辑被打破了。
我相信这个逻辑没有被违反,因为在终端重新加载后,图表被重新创建,因此ChartNext()工作正常。但你可以向serviced 创建一个请求--事后请分享答案。