我的方法。核心是引擎。 - 页 90

 
fxsaber:

亲爱的fxsaber。

我知道,任何 数据都可以通过资源进行交换。

但首先,它们必须被转换为字符串, 然后使用StringToChar()转换为uint,并保存为一个资源。而这个的代码就简单多了。

但是,我证明了 这种方法 比通过对象描述 来传输相同的字符串要慢


我的对手鄙视字符串类型,并说要使用神话般的方法,通过union将所有数据一次性转移到uint

此外,字符串也必须通过union转换为uint。


而且,既然有StringToChar(),为什么还要通过union将字符串转换为uint呢?

 
Maxim Kuznetsov:

在内部,只有且仅有GlobalVariables和文件用于EA、指标和脚本之间的数据交换。

以上4项都是当地的 "黑科技",因为缺鱼。这4点都是在使用并非为交换任意数据而设计的机制,更不用说数据阵列了。

п1.100%会导致接口线程的临时锁定(是的,对象和它们的 "描述 "也住在那里),并且在优化器中不起作用。对象描述是用于对对象进行人可读的描述。

p2.n2.在测试器和优化器中不起作用,用于通知事件。

P3.P4.资源(即使是命名的)是为了长期储存,而不是为了快速交换。对于测试器/优化器的可用性,我不能说什么 :-)我使用只读的资源

谈论曲线解的速度是没有意义的。

ps/顺便说一下,你可以使用文件,更准确地说是管道

你把一切都写对了。

但 "黑客 "是我们的一切)。

在测试器中,在优化模式 下,专家顾问和引擎之间的连接将不工作。没有必要这样做。


为了在事件中进行有意义的参数值交换,EA和引擎必须向对方发送大小不超过2000个字符的数据。这不多。但这并不是那么回事。


最有用的黑客是第1号。

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow:

我的对手不屑于使用字符串类型,并谈论使用神话般的方法,通过union将所有数据一次性传输到uint

此外,字符串也必须通过union转换为uint。

上面的代码,一次将几种类型(不仅包括字符串,还包括字符串的数组)转换为uint,然后再转换回来。

但我认为这在这次讨论中是没有用的。


SZY 如果你真的想使用字符串。

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

图书馆:HistoryTicks

fxsaber, 2018.12.04 09:11

// Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart()
{
  int ArrayIn[] = {0, 1, 2, 3, 4, 5};  
  ChartSetString(0, CHART_COMMENT, DATA_STRING::ToString(ArrayIn));    // Записали данные в комментарий чарта

  int ArrayOut[];    
  DATA_STRING::FromString(ChartGetString(0, CHART_COMMENT), ArrayOut); // Прочли данные из комментария чарта
  
  ArrayPrint(ArrayOut);
}
 
fxsaber:

以上是 将几种类型(不仅包括字符串,还包括一个字符串数组)一次性翻译成uint,然后再翻译回来的代码

但我认为这在这次讨论中是没有用的。

那么,你可以通过union把一个字符串数组翻译成uint?

是否比通过StringToChar()更快呢?

如果可以,请举一个简单的小例子。我看不出来你的代码。

 
Реter Konow:

所以你可以通过union将字符串数组转换为uint?

那么它是否比StringToChar()更快

如果可能的话,请举一个简单的小例子。我看不出来你的代码。

这个例子是在这里 的这个主题中。

要重现它,你需要链接到示例代码中引用的库。

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber:

...

ZS 如果你真的想通过线

评论的最大尺寸是多少?

 
Реter Konow:

你写得很好。

但 "黑客 "是我们的一切))。

在测试器中,在优化模式 下,专家顾问和引擎之间的链接将不工作。你不需要它。


为了在事件中进行有意义的参数值交换,EA和引擎必须相互发送大小不超过2000个字符的数据。这并不过分。但它也不是一个小。


最方便的黑客是第1号。

有了这个 "最方便用户的黑客",就有可能踩到 "孩子的耙子",即深受用户喜爱并在重新加载时使用的模板。
 
fxsaber:
...


ZS 如果你真的想通过线

图表评论的尺寸有限。或者说是吗?我是偶然发现的。

 

另一个严肃的问题。

我自己没有试过,但对通过资源快速交换的有效性存在疑问。

快速交换,--16毫秒不断地来回交换。

磁盘不会过载吗?

 
Maxim Kuznetsov:
有了这个 "最方便的黑客",你可以踩到一个 "幼稚的耙子",即模板,非常受用户喜爱,在重新加载时使用。

请解释。

ZS.具有特殊名称的对象将被用于通信。为了避免与用户对象发生重合。