优化过程中的单一阵列计算
所以在OnInint()中计算它
Alexey Viktorov:
所以在OnInint()中计算它
所以在OnInint()中计算它
在MQL4中,我从文件中读取数据,但需要很长的时间。我不知道inite是否在每个新的通道上使用?
我在论坛上发现,每次使用inite,即数组将被重新计算。
当然不是。
哎呀...没有仔细阅读,误解了问题。
forexman77:
在MQL4中,我从文件中读取数据,但需要很长的时间。我不知道inite是否在每个新的通道上使用?
我在论坛上发现,每次使用inite,即数组将被重新计算。
这是最基本的。你在每次运行时检查阵列的大小。如果数组是空的或者计算标志是假的,你就重新计算。
if(ArraySize(optimize_array) == 0) CalculateArray();
Vasiliy Sokolov:
这是最基本的。每次运行时都要检查数组的大小。如果数组是空的或者计算标志是假的,你就重新计算。
不过,我还没有检查过它。但是,我想问的是,这个数组将从第一道程序中保存下来(在那里它将被计算),并将在随后的程序中可用?
forexman77:
它不会。你必须重新计算,或者把它保存到一个文件中,然后读出来。不过,我还没有测试过它。但是,我想问的是,数组将从第一道工序中保存下来(将在那里计算),并可用于后续工序?
Dmitry Fedoseev:
不会的。你必须重新计算,或者把它保存到一个文件中,然后读出来。
不会的。你必须重新计算,或者把它保存到一个文件中,然后读出来。
所以我有一个难题:如何使它能够从一个文件中读取一次,用它来填充一个数组,并在所有传递中使用这个数组。
我需要它来减少优化时间,因为数组将始终保持不变,每次读取它的成本很高。
资源附件。不要问怎么做。我没有写源代码。
它将不得不在内部阅读。但它不会从磁盘读取,而是从内存读取。所以,事实上,阵列将在内存中。
Dmitry Fedoseev:
在MT5中,有一个开始优化的事件,在其中计算数组,将其保存到一个文件中,并在EA的启动中读取它。
你是否需要每次都在启动程序中阅读它?在MT5中,有一个开始优化的事件,在其中计算数组,将其保存到一个文件中,并在EA的启动中读取它。
有一个数组在整个优化过程中不发生变化。是否有可能只计算一次,在整个优化过程中只在每一次传递中参考,而不重新计算?