mql4语言的特点、微妙之处以及技巧 - 页 18

 
Dmitry Rannev:

该问题已由fxsaber在上面描述。我们正在努力寻找原因。

这就是它的正确工作方式

NormalizeDouble(Price1 - Price2, _Digits) != 0.0;
 
Alexey Viktorov:

这就是它的正确工作方式

这并不是要解决比较双打的问题。任务是不同的。

 
Dmitry Rannev:

该问题已由fxsaber在上面描述。我们正在努力寻找原因。

那么 fxsaber 回答正确 - 我想补充的是不要使用 Printf,使用printf 并指定所需的数字输出精度 { printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

 
Ilya Malev:

那么fxsaber的回答是正确的--我想补充的是不要使用printf,使用printf并指定所需的数字精度输出{ printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

如果你想了解问题到底出在哪里,请问fxsaber是什么原因使他不能正常编写EA。我们正在从经纪人软件开发商方面努力使它不成为一个问题。我们不是在寻找编写EA 的问题,我们是在寻找在服务器的跟踪记录中存储数据的问题,这使得fxsaber无法编写EA。

 
我没有听说fxsaber被阻止正常编写EA,但不要紧,不要紧 :)如果我的评论偏离主题,请原谅。
 
Dmitry Rannev:

...但在将数据保存在交易员的服务器记录中,这使fxsaber无法编写EA。

啊,就是这样......而且我们也搞不清楚是什么阻止了他。
 
Alexey Navoykov:
啊,这就是......而且我们也搞不清楚是什么东西在阻止他。

这就是 它的开始。并演变成这样

关于交易、自动交易系统和策略测试的论坛

MT4中的非正常化价格

fxsaber, 2019.02.20 23:03

但情况要糟糕得多,同时在MQ-Demo上
// 15326434
// wmefo5sa
// MetaQuotes-Demo
void OnStart()
{
  const double Price1 = HistoryOrderSelect(356138100) ? HistoryOrderGetDouble(HistoryOrderGetTicket(0), ORDER_PRICE_CURRENT) : 0;
  const double Price2 = PositionSelectByTicket(356138100) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0;  
  
  Print(Price1 - Price2); // -2.220446049250313e-16
}


当前仓位 的开盘价不等于其订单/交易的价格。

 
fxsaber:
用于多维数 组的ArrayResize的特点

因为用ArrayRange()你需要得到所需维度的元素数,而且你只能调整第一维度的大小,这就是为什么用mql5更合理的原因。

 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

Andrey Khatimlianskii, 2019.03.12 22:57

我想知道TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)(自动交易按钮)是否会影响已测试的 EA(MT4)?

在1170它的影响,你可以在测试器中直接用按钮控制交易。我很震惊。

关于交易、自动交易系统和策略测试的论坛

虫子,虫子,问题

斯拉瓦, 2019.03.13 06:05

它看起来像是从新的MQL4开始的。

关于交易、自动交易系统和策略测试的论坛

虫子,虫子,问题

Vladimir Pastushak, 2019.03.13 19:12

如果你的代码中包含类似

if(!TerminalInfoInteger (TERMINAL_TRADE_ALLOWED))
return;

这个按钮是有效的。

如果没有这样的命令,那么这个按钮就不起作用。

关于交易、自动交易系统和策略测试的论坛

虫子,虫子,问题

Vladislav Andruschenko, 2019.03.13 19:14


我大约在两年前写过这个问题。


这正是它的本质。这就是为什么我在策略测试器中 禁用了按钮检查。





 

事实证明,可以获得图表上运行的指标的缓冲值(一次性使用WinAPI)。

如果没有DLL - 几乎处于自动模式。