#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280voidOnStart()
{
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);
}
另一个严肃的问题。
我自己没有试过,但对通过资源快速交换的有效性存在疑问。
快速交换,--16毫秒内不断地来回交换。
驱动器不是要过载吗?
你正陷入 "过早优化的罪恶"。:-)
做一个数据交换的 类(或一组函数,如果GSE对你没有吸引力的话)--如果在真正的项目中会滞后,那么你会仔细考虑这些选项。而在此期间,你将再忙于毫无意义的测试半年之久。
PS顺便说一下,你有没有做任何事情来向公众介绍这个项目? 还是你只是在论坛上传统地抓挠你的自我:-)
图表评论的尺寸有限。或者说不是吗?我是偶然发现的。
我认为有一些限制。我自己只通过字符串将MqlTick-ticks 传递给EventChartCustom,因为event-queue保存了ticks的序列。这真是太方便了。
也就是说,你可以通过union把一个字符串数组翻译成uint?
我不记得它是如何实现的,但我不仅可以将字符串数组,而且可以将其他数据类型翻译成任何类型(甚至在MqlTick)。代码将是相同的。
而且它比使用StringToChar() 更快?
我不知道。尝试用你的方法将MqlTick转换成字符串,然后通过StringToChar转换成uint。当然,反之亦然。测量和比较。
如果可以,请举一个简单的小例子。我无法理解你的代码。
我认为有一些限制。我自己只通过字符串将MqlTick-ticks 传递给EventChartCustom,因为event-queue保存了ticks的序列。这真的很方便。
如果问题是关于小的信息(最多64个字符)和不断快速来回传递,有几个方便的选择。
而EventChartCustom不是最好的,因为它可以进入OnChartEvent()事件队列。
但当涉及到超过1000个符号的快速来回传输时,EventChartCustom和事件队列会导致延迟(例如,在重新加载表格和使用动画时)。
快速通过资源是值得怀疑的。
告诉我,它不能加载磁盘?
从沉默中判断--它可能会。
你去看看吧)。
通过资源快速转移--有问题。
关于交易、自动交易系统和交易策略测试的论坛
新版MetaTrader 5 build 1930:MQL5中的浮动图表窗口和.Net库
fxsaber, 2018.12.09 00:18
这个例子 现在运行速度提高了15倍
粗略地说,通过资源的一个完整的写/读刻度周期以每秒400万个刻度运行。
这里有一个词,它不会给驱动器带来负担吗?
在资源操作中不使用该磁盘。一切都在记忆中。
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2018.12.11 09:19
经检查,60Mb被安全地(MT4/5)写入资源。因此,如果有一个限制,那就是更高。
在处理资源时不使用该驱动器。一切都在记忆中。
谢谢你。所以这个选项仍然存在。
在处理资源问题时,不使用该驱动器。一切都在记忆中。
测试员呢?在测试器中创建的资源在测试器之外是否可以看到?那么它们到底是在测试器中创建的吗?
ZS.这里的一位同志说,这些资源--不知道它们是否在测试器中工作。)测试员呢?在测试器中创建的资源在测试器之外是否可以看到?
那么它们到底是在测试器中创建的吗?
我没有检查这些资源是否在策略测试器中起作用。如果他们在那里工作,他们将在MT4中可见,因为测试仪在终端内,但在MT5中不可见,因为测试仪没有与终端连接。你只能通过通用文件在那里交换文件。
当我看了上述信息后,我得到了一个方法,我问了自己一个问题,并通过检查代码来回答它。我推荐它。
我没有检查这些资源是否在策略测试器中起作用。如果他们在那里工作,他们将在MT4中可见,因为测试器在终端内部,但在MT5中不可见,因为测试器没有以任何方式连接到终端。在那里,只有通过共同文件才能进行交流。
我明白了,我需要检查一下。我今天会检查的。