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

 
Реter Konow:

另一个严肃的问题。

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

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

驱动器不是要过载吗?

你正陷入 "过早优化的罪恶"。:-)

做一个数据交换的 类(或一组函数,如果GSE对你没有吸引力的话)--如果在真正的项目中会滞后,那么你会仔细考虑这些选项。而在此期间,你将再忙于毫无意义的测试半年之久。

PS顺便说一下,你有没有做任何事情来向公众介绍这个项目? 还是你只是在论坛上传统地抓挠你的自我:-)

 
Artyom Trishkin:

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

我认为有一些限制。我自己只通过字符串将MqlTick-ticks 传递给EventChartCustom,因为event-queue保存了ticks的序列。这真是太方便了。

 
Реter Konow:

也就是说,你可以通过union把一个字符串数组翻译成uint?

我不记得它是如何实现的,但我不仅可以将字符串数组,而且可以将其他数据类型翻译成任何类型(甚至在MqlTick)。代码将是相同的。

而且它比使用StringToChar() 更快

我不知道。尝试用你的方法将MqlTick转换成字符串,然后通过StringToChar转换成uint。当然,反之亦然。测量和比较。

如果可以,请举一个简单的小例子。我无法理解你的代码。

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart()
{    
  string Str[] = {"123", "Hello World!", "Peter Konow"};

  CONTAINER<uint> Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)    
  Container[0] = Str;        // Записали в контейнер строковый массив
  
  CONTAINER<uint> Container2;                 // Создаем контейнер-получатель  
  ArrayCopy(Container2.Data, Container.Data); // Скопировали в него ТОЛЬКО содержимое uint массива

  string Str2[];
  Container2[0].Get(Str2); // Получили данные в исходном виде
  ArrayPrint(Str2);
}
 
fxsaber:

我认为有一些限制。我自己只通过字符串将MqlTick-ticks 传递给EventChartCustom,因为event-queue保存了ticks的序列。这真的很方便。

如果问题是关于小的信息(最多64个字符)和不断快速来回传递,有几个方便的选择。

而EventChartCustom不是最好的,因为它可以进入OnChartEvent()事件队列。

但当涉及到超过1000个符号的快速来回传输时,EventChartCustom和事件队列会导致延迟(例如,在重新加载表格和使用动画时)。

快速通过资源是值得怀疑的。

告诉我,它不能加载磁盘?

 

从沉默中判断--它可能会。

你去看看吧)。

 
Реter Konow:

通过资源快速转移--有问题。

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

新版MetaTrader 5 build 1930:MQL5中的浮动图表窗口和.Net库

fxsaber, 2018.12.09 00:18

这个例子 现在运行速度提高了15倍

1000000
Time[TestResource()] = 286646


粗略地说,通过资源的一个完整的写/读刻度周期以每秒400万个刻度运行


这里有一个词,它不会给驱动器带来负担吗?

在资源操作中不使用该磁盘。一切都在记忆中。

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

虫子,虫子,问题

fxsaber, 2018.12.11 09:19

经检查,60Mb被安全地(MT4/5)写入资源。因此,如果有一个限制,那就是更高。

 
fxsaber:


在处理资源时不使用该驱动器。一切都在记忆中。

谢谢你。所以这个选项仍然存在。

 
fxsaber:


在处理资源问题时,不使用该驱动器。一切都在记忆中。

测试员呢?在测试器中创建的资源在测试器之外是否可以看到?那么它们到底是在测试器中创建的吗?

ZS.这里的一位同志说,这些资源--不知道它们是否在测试器中工作。)
 
Реter Konow:

测试员呢?在测试器中创建的资源在测试器之外是否可以看到?

那么它们到底是在测试器中创建的吗?

我没有检查这些资源是否在策略测试器中起作用。如果他们在那里工作,他们将在MT4中可见,因为测试仪在终端内,但在MT5中不可见,因为测试仪没有与终端连接。你只能通过通用文件在那里交换文件。


当我看了上述信息后,我得到了一个方法,我问了自己一个问题,并通过检查代码来回答它。我推荐它。

 
fxsaber:

我没有检查这些资源是否在策略测试器中起作用。如果他们在那里工作,他们将在MT4中可见,因为测试器在终端内部,但在MT5中不可见,因为测试器没有以任何方式连接到终端。在那里,只有通过共同文件才能进行交流。

我明白了,我需要检查一下。我今天会检查的。