来自一个 "傻瓜 "的问题 - 页 28

 

目前,模板(.tpl)不能在测试器的可视化模式下设置。是否可以通过引用ChartSetInteger(),ChartSetDouble(),ChartsetString() 函数以编程方式完成?

当试图在可视化模式下设置图表外观 时,日志中出现了一个错误。

这是一个限制还是我做错了什么?如果我在实时模式下检查图表上的操作,没有错误。

 
tol64:

当试图在可视化模式下调整图形的外观 时,在日志中出现了一个错误。

这是一个限制还是我做错了什么?如果我在实时模式下检查图形上的操作,没有错误。

你得到的是一个特定代码中的特定错误,甚至是一个特定的行,寻找它。
 
tol64:
如果你不介意的话,你能举个简单的例子吗?因为我不太清楚 "这批货可以按现有数量执行"......

例如,你想购买1000股Cheburashka & Co公司的股票,比如说,每股6英镑。

你在这个价格下了一个1000股的挂单,然后等待(在订单中使用ENUM_ORDER_TYPE_FILLING,你指定你想要的政策)。

我们假设在执行订单时,只有600股可用,那么根据订单的设置,可以有以下选择。

1) 该订单将从市场上获取可用的600股,而交易服务器将自动填补所缺的数量(所缺的400股可以用ORDER_VOLUME_CURRENT 来定义)的订单。

2.该订单将从市场上取走可用的600股,而服务器将直截了当地报告说无法取走400股(在这种情况下,交易员/MTS将决定剩余数量的命运)。

3 该订单要么被取消,要么服务器等待,直到有1000股的交易量(我假设是第二个选项,但需要澄清)。

 
Interesting:

...

谢谢你,非常清楚。这是理解所需的情况/行动。

sergeev:

你在特定的代码中得到了一个特定的错误,甚至在特定的行中。

这就是当初的做法,这也是我解决这个问题的原因。我说得很清楚,在实时模式下不存在错误。在可视化模式下,没有检测到图形的 像素宽度,这就是为什么在日志中出现除以零的错误。那么我将尝试以不同的方式提问......

为什么在实时模式下没有错误,而在可视化模式下的测试器却有错误?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 

tol64:

为什么在实时状态下没有错误,而在可视化模式下的测试器中却出现了错误?

而且没有人保证可视化的效果,这是电池版本(正在积极定稿中).....。

如果你愿意,当然可以写到SD上,但如果真的是视频展示台的电流故障,不一定能很快修好(那里可能还有其他问题)。

 
Interesting:

而且没有人保证可视化的效果,这是电池版本(正在积极定稿中).....。

如果你愿意,你当然可以写到CD上,但如果这真的是视频展示台目前的一个缺陷,不确定它是否会很快被修复(那里可能也有其他问题)。

我认为在这个问题上,还不值得写给SD,因为开发者很可能会实现这个功能。他们按任务优先级做所有事情。是的,我知道,测试版不仅是可视化软件,而且是平台本身。只是出于没有经验的考虑,决定问问社区里更有经验的人。
 
可视化器和整个平台一样,已经发布了很长时间了。不要把不断发布新版本的过程与测试状态混淆。

我们的工作方式是通过频繁的建设不断改进。
 
Renat:
我们的工作方式是通过频繁的建设来持续改进。
下一次是什么时候?
 
Renat:
Visualisotor和整个平台一样,已经发布了很长时间。不要把不断发布新版本的过程与测试状态混淆。我们的工作方式是不断改进,频繁构建。

哦,我错了。很多人已经可以选择通过MT5在真实账户 中交易。不是所有的(这就是为什么我错了),但已经有了可以选择的方案。))因此,你可以就上述错误写信给服务台。但我不确定这不是我的错误。你应该给SD写信,我想是的,当你确定问题是在全局层面(终端方面)。

例子。

void Set_Shift_Chart()
{
   handle = ChartID();
   width  = (ENUM_CHART_PROPERTY_INTEGER)ChartGetInteger(handle,CHART_WIDTH_IN_PIXELS);

   dbl_x = x;
   dbl_width = width;

   shift = ((dbl_x/dbl_width)*100)+3;     // Вот в этой строке возникает ошибка во время тестирования ТОЛЬКО в режиме визуализации
   
   switch(Color_Scheme)
     {
      case gray:
         Set_Template(handle,true,true,shift,CHART_CANDLES,false,true,true,
                      clrBlack,clrSilver,clrRed,clrWhiteSmoke,C'34,41,45',clrChartreuse,clrGray,clrGreenYellow,clrWhiteSmoke,clrDarkSlateGray); break;
      case red:
         Set_Template(handle,true,true,shift,CHART_CANDLES,false,false,true,
                      clrBlack,clrSilver,clrRed,clrWhiteSmoke,C'37,37,37',clrLemonChiffon,clrOrangeRed,clrGreenYellow,clrKhaki,C'132,0,3'); break;
     }
}

我在犯什么错?

 
tol64:

哦,我错了。很多人已经可以选择通过MT5在真实账户中交易。不是所有的(这就是为什么我错了),但已经有了可以选择的方案。))因此,你可以就上述错误写信给服务台。但我不确定这不是我的错误。你应该给SD写信,我想是的,当你确定问题是在全局层面(终端方面)。

例子。

我在犯什么错?

假设返回的是0而不是像素数,这是符合逻辑的 :)

idth  = (ENUM_CHART_PROPERTY_INTEGER)ChartGetInteger(handle,CHART_WIDTH_IN_PIXELS);

对这一行的结果进行检查,并处理除以0的问题。

至于返回0而不是像素,那是直接指向SD...