优化过程中的单一阵列计算 - 页 2 12345678 新评论 forexman77 2016.09.15 16:13 #11 fxsaber: 资源附件。不要问怎么做。没有写源代码。 你需要一个第三方软件来创建一个阵列吗? BlackTomcat 2016.09.15 16:13 #12 forexman77:所以我有一个难题:如何使它能够从一个文件中读取一次,用它来填充一个数组,并在所有传递中使用这个数组。我需要这样做来减少优化时间,因为数组将始终保持不变,而每次读取它都很昂贵。 那么,比如说,写一个脚本,准备并收集所有的数据到一个数组中,然后把完成的数组写到一个文件中。然后在专家顾问的初始化过程中从文件中读取这个数组。该文件可以根据你的需要多次使用,每次运行EA。 我想这个解决方案已经向你建议过了。它不适合你? fxsaber 2016.09.15 16:14 #13 forexman77: 使用第三方软件来创建一个阵列? 是的,由同一个MQL5在优化前单独进行一次。 forexman77 2016.09.15 16:17 #14 BlackTomcat: 例如,编写一个脚本,准备并收集一个数组中的所有数据,然后将完成的数组写入一个文件中。然后在EA的初始化过程中从文件中读取这个数组。该文件可以根据你的需要多次使用,每次运行EA。 我想这个解决方案已经向你建议过了。它不适合你?是的,这就是问题所在,它不适合。在优化中,有15,000张通行证。而且我只需要计算一次,在随后的传递中只需要处理一个数组。也就是说,我在文件中已经有了提前计算好的数据和水平,它们是我事先知道的。而且,即使每次在init中读取文件也是非常昂贵的(有成千上万行)。我不知道MQL5的情况,但在MQL4中,他们在论坛上写道,程序每次都会通过init。 Dmitry Fedoseev 2016.09.15 16:20 #15 forexman77: 是否有必要每次都读进去? 是的,这并不困难,也不费钱。使用二进制模式。你可以不读整个文件,而是从想要的位置开始。 BlackTomcat 2016.09.15 16:29 #16 forexman77: 而且,即使每次读取文件,每次都要付出很大的代价(几千行)。我不知道MQL5的情况,但在MQL4中,他们在论坛上写道,程序在每一次通过时都要进行一次初始化。 你知道,我认为你夸大了与从文件中读取阵列有关的费用。每次Windows从睡眠模式中醒来,它都会从硬盘中恢复它在进入睡眠状态时的状态图像,包括所有应用程序的状态。你认为那里的物品和信息不够多吗?而这样的睡眠需要多长时间才能出来? 你在夸大其词,IMHO。 Maxim Kuznetsov 2016.09.15 16:34 #17 forexman77:是的,这就是问题所在,它不适合。在优化中,有15,000张通行证。而且我只需要计算一次,在随后的传递中只需要处理一个数组。也就是说,我在文件中已经有了提前计算好的数据和水平,它们是我事先知道的。而且,即使每次在init中读取文件也是非常昂贵的(有成千上万行)。我不知道MQL5的情况,但在MQL4中,他们在论坛上写道,程序每次都会通过init。一个来自C/C++世界的经典技巧:你可以从你的文件中制作/转换一个静态数组(只是文本:double arr[100500]={1,2,3....}),并通过#include将其包括在内。 forexman77 2016.09.15 16:39 #18 BlackTomcat: 你知道,我认为你夸大了从文件中读取数组的成本。每次Windows从睡眠模式中醒来时,它都会从硬盘中恢复其进入睡眠状态时的图像,包括所有应用程序的状态。你认为那里的物品和信息不够多吗?而这样的睡眠需要多长时间才能出来?你在夸大其词,IMHO。成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。带文件的变体比专家顾问中带指标计算的变体要长很多倍。我只是在想,也许有一种方法可以将数组保存一次,并将其用于所有的优化过程,从而减轻算法的负担。 forexman77 2016.09.15 16:42 #19 Maxim Kuznetsov:一个来自C/C++世界的经典技巧:你可以从你的文件中制作/转换一个静态数组(只是文本:double arr[100500]={1,2,3....}),然后通过#include将其包括在内。 如果你这样做,当你切换到一个新的通行证时,该阵列会被保存吗? BlackTomcat 2016.09.15 16:44 #20 forexman77:成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。带文件的变体比专家顾问中带指标计算的变体要长很多倍。我只是想,也许有一种方法可以一次性存储数组,并将其用于所有的优化过程,从而减轻算法的负担。 计算一个时间,并将带有结果的数组保存到一个文件中。然后在初始化过程中从文件中读取准备好的数组并立即使用它。不需要再重新计算。你之前已经计算好了一切,并保存了下来。为什么要重新计算?:) 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
资源附件。不要问怎么做。没有写源代码。
所以我有一个难题:如何使它能够从一个文件中读取一次,用它来填充一个数组,并在所有传递中使用这个数组。
我需要这样做来减少优化时间,因为数组将始终保持不变,而每次读取它都很昂贵。
我想这个解决方案已经向你建议过了。它不适合你?
使用第三方软件来创建一个阵列?
例如,编写一个脚本,准备并收集一个数组中的所有数据,然后将完成的数组写入一个文件中。然后在EA的初始化过程中从文件中读取这个数组。该文件可以根据你的需要多次使用,每次运行EA。
我想这个解决方案已经向你建议过了。它不适合你?
是的,这就是问题所在,它不适合。在优化中,有15,000张通行证。而且我只需要计算一次,在随后的传递中只需要处理一个数组。
也就是说,我在文件中已经有了提前计算好的数据和水平,它们是我事先知道的。而且,即使每次在init中读取文件也是非常昂贵的(有成千上万行)。我不知道MQL5的情况,但在MQL4中,他们在论坛上写道,程序每次都会通过init。
是否有必要每次都读进去?
你在夸大其词,IMHO。
是的,这就是问题所在,它不适合。在优化中,有15,000张通行证。而且我只需要计算一次,在随后的传递中只需要处理一个数组。
也就是说,我在文件中已经有了提前计算好的数据和水平,它们是我事先知道的。而且,即使每次在init中读取文件也是非常昂贵的(有成千上万行)。我不知道MQL5的情况,但在MQL4中,他们在论坛上写道,程序每次都会通过init。
一个来自C/C++世界的经典技巧:你可以从你的文件中制作/转换一个静态数组(只是文本:double arr[100500]={1,2,3....}),并通过#include将其包括在内。
你知道,我认为你夸大了从文件中读取数组的成本。每次Windows从睡眠模式中醒来时,它都会从硬盘中恢复其进入睡眠状态时的图像,包括所有应用程序的状态。你认为那里的物品和信息不够多吗?而这样的睡眠需要多长时间才能出来?你在夸大其词,IMHO。
成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。
带文件的变体比专家顾问中带指标计算的变体要长很多倍。
我只是在想,也许有一种方法可以将数组保存一次,并将其用于所有的优化过程,从而减轻算法的负担。
一个来自C/C++世界的经典技巧:你可以从你的文件中制作/转换一个静态数组(只是文本:double arr[100500]={1,2,3....}),然后通过#include将其包括在内。
成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。
带文件的变体比专家顾问中带指标计算的变体要长很多倍。
我只是想,也许有一种方法可以一次性存储数组,并将其用于所有的优化过程,从而减轻算法的负担。