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

 
fxsaber:

出现了不加修改地通过参照物转移的需要--无论是速度,还是对象。

如果没有必要通过它进行修改,那么你就可以忽略我写的一切)。

在MQL5中,你是否有一个发生这种问题的真实例子?

一个真正的便利的例子是缺失的。

我已经详细描述了一切,包括文字和代码。 如果你因为某些原因看起来无法理解,那么你显然没有面临所描述的问题,对此我向你表示祝贺。晚安,亲爱的朋友)。

我的帖子可能更多的是针对铁杆模板师和类型控制爱好者的。

 
阿列克谢-纳沃伊科夫

经常需要通过引用传递一个变量作为模板参数来修改它。 然而,不幸的是,现有的C++模板规范不允许你明确指定参数的 恒定性,就像在普通函数中发生的那样。

首先,C++有更丰富的模板功能,其次,C++有SFINAE,它允许你把事情搞得一团糟,以至于让你的头发竖起来。

这就是它可能的样子。

template<class T>
    static void const_check(T & t){
        BOOST_STATIC_ASSERT(! boost::is_const<T>::value);
    }
这和指针是一样的,你不能直接指定你想要的类型 应该是指针,但是你可以通过非编译的特殊化来做到这一点。
 
TheXpert:

这可能看起来像这样

据我所知,这将导致函数主体的编译错误(反正可以调用),但并不影响模板的选择过程。 你必须对函数的返回值的类型进行操作。 但不要紧。但所有这些不仅通过模板而且通过decltype 指定器来实现,这在MQL中是没有的,但仍然需要。

 
阿列克谢-纳沃伊科夫

我的帖子可能更多的是针对铁杆模板师和书呆子式的控制爱好者。

我认为在我写了TypeToBytes之后,我在模板方面变得更有能力。

 
fxsaber:

我认为在写完TypeToBytes后,我在模板方面变得更有能力。

我现在意识到,与MQL有关的 "铁杆模式制造者 "这个短语听起来很讽刺。这就像一个 "经过认证的MQL程序员"。))

问题是,在模板中没有什么可做的,不仅是因为缺乏语言的 额外功能,而且还因为现有的功能的不正确操作。不断地遇到bug。

 

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

虫子,虫子,问题

斯拉瓦, 2018.09.19 06:37

要将一个对象置于所有其他对象之上,无论订单如何,你必须首先使其在所有时间框架上不可见,然后再使其可见。
 

下午好!

文档明确指出,当 OnTick处理程序运行 https://www.mql5.com/ru/docs/runtime/event_fire#newtick

处理程序是不活跃的,并且没有处理任何新的ticks。 OnBookEventOnTimerOnChartEvent处理程序 是否 也是如此

这个问题是由以下事实引起的:在上述所有的处理程序中,我使用了我自己的tick处理。

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
安德烈-科特林

下午好!

文档明确指出,当 OnTick处理程序运行 https://www.mql5.com/ru/docs/runtime/event_fire#newtick

OnBookEvent、OnTimer、OnChartEvent 处理程序是否 也是如此。

这个问题是由上述所有的处理程序都使用自己的tick处理的事实引起的。

不正确。

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

图书馆:HistoryTicks

fxsaber, 2018.04.10 17:53

在一个高频符号(每分钟200-350点)上的战斗EA,交易订单 频繁(每分钟数次),标准模式下的ping值为100ms,会损失~5%的点。

在HistoryTicks模式下没有损失。


请随意在MT5中使用多币种OnTick。

 
fxsaber:

绝对不正确。


ZZY 你可以在MT5Z下安全地使用多币种OnTick。

谢谢你的链接!实际上,问题并不在于损失的时间,而是在处理当前信息时可能出现的部分信息更新。我试图解决一个类似的问题,在机器人之间同时进行交易的时候,要进行沟通

由于机器人是面向使用外部 dlls 托管 服务,因此 不可能有mutex,我使用了GlobalVariableSetOnCondition模拟

 
安德烈-科特林

谢谢你的链接!实际上,问题并不在于损失的时间,而是在处理当前的信息时可能出现的部分更新。在组织机器人同时交易的通信方面,我也遇到了类似的问题

由于我的机器人是在 一个使用第三方 dlls 托管 服务,因此 不可能有mutex,我使用了GlobalVariableSetOnCondition模拟

也许你可以利用资源 来传输数据。