优化过程中的单一阵列计算 - 页 3 12345678 新评论 Alexey Viktorov 2016.09.15 16:44 #21 forexman77:成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。带文件的变体比专家顾问中带指标计算的变体要长很多倍。我只是在想,也许有一种方法可以将数组保存一次,并将其用于所有的优化过程,从而减轻算法的负担。有没有一种写和读数组的方法,比指标的计算时间长? Maxim Kuznetsov 2016.09.15 16:44 #22 forexman77: 如果你这样做,当你切换到一个新的通行证时,该阵列会被保存吗? 是的,它必须... forexman77 2016.09.15 16:46 #23 Dmitry Fedoseev: 是的,这并不困难,也不费钱。你可以使用二进制模式。你可以不读整个文件,而是从你需要的位置开始。int init() { int k; string Skip; datetime Str_DtTm; double L; Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_BIN,","); ResetLastError(); if(Handle<0) // Failure when opening a file { if(GetLastError()==4103) Alert("There is no file named ",File_Name); else Alert("Error when opening a file ",File_Name); PlaySound("Bzrrr.wav"); return(0); } ArrayInitialize(T,0); ArrayInitialize(dn,0); ArrayResize(T,stroki); ArrayResize(dn,stroki); for(k=stroki-1;k>=0;k--) { //--------------------------------------------------------- 5 -- Str_DtTm=FileReadDatetime(Handle);// строка даты L=FileReadDouble(Handle); Skip=FileReadString(Handle);//пропускаем //--------------------------------------------------------- 6 -- T[k]=Str_DtTm; dn[k]=L; //--------------------------------------------------------- 7 -- if(FileIsEnding(Handle)==true){ Print("Конец отсчета=",TimeToString(T[k]));break;}//завершили отсчет } FileClose(Handle); return(0); }二进制模式是指没有行与数之间的转换 时?我还想补充一点,在大历史的1分钟图表上进行优化。 Dmitry Fedoseev 2016.09.15 16:47 #24 包括关于汇编的行为。谁来编撰?也许这个阵列取决于优化参数?因此,我们必须在每次优化前生成数组并进行编译。这是个蹩脚的解决方案。 Maxim Kuznetsov 2016.09.15 16:48 #25 Dmitry Fedoseev: 包括关于汇编的行为。谁来编撰?也许这个阵列取决于优化参数?因此,我们必须在每次优化前生成数组并进行编译。这是个蹩脚的解决方案。 不要编造它--TC明确说过,阵列没有变化。 Dmitry Fedoseev 2016.09.15 16:49 #26 forexman77: 二进制模式是指不存在字符串 到数字的转换?https://www.mql5.com/ru/docs/files/filereadarrayhttps://www.mql5.com/ru/docs/files/filewritearray链接中也有例子。 Dmitry Fedoseev 2016.09.15 16:50 #27 Maxim Kuznetsov: 不要编造它--TC明确说过,阵列是不变的。 在一次优化过程中未发生变化。没有任何关于其他不变量的内容。 Dmitry Fedoseev 2016.09.15 16:53 #28 当然,如果数组总是完全没有变化,最好将其纳入EA代码中。你可以直接把它包含在EA文件中,而不包括它。 forexman77 2016.09.15 16:57 #29 Maxim Kuznetsov: 是的,你必须...德米特里-费多塞耶夫。 当然,如果数组始终是绝对不可更改的,最好将其纳入专家顾问的代码中。你可以直接在专家顾问的文件中这样做,不包括在内。我还没有遇到过 包括。请指导我如何做到这一点。 Dmitry Fedoseev 2016.09.15 17:00 #30 forexman77:我还没有遇到过。给我指出正确的方向,如何粗略地做到这一点。 你可以不用inlude,用脚本生成数组代码,将其写入文件(你也可以将其输出到Alert()),然后用鼠标将其转移到EA代码。 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
成本毫不含糊地更大。有两种变体,指标设置 未变,数值相同,但已经写入文件,被转储到一个数组。
带文件的变体比专家顾问中带指标计算的变体要长很多倍。
我只是在想,也许有一种方法可以将数组保存一次,并将其用于所有的优化过程,从而减轻算法的负担。
有没有一种写和读数组的方法,比指标的计算时间长?
如果你这样做,当你切换到一个新的通行证时,该阵列会被保存吗?
是的,这并不困难,也不费钱。你可以使用二进制模式。你可以不读整个文件,而是从你需要的位置开始。
二进制模式是指没有行与数之间的转换 时?
我还想补充一点,在大历史的1分钟图表上进行优化。
包括关于汇编的行为。谁来编撰?也许这个阵列取决于优化参数?因此,我们必须在每次优化前生成数组并进行编译。这是个蹩脚的解决方案。
二进制模式是指不存在字符串 到数字的转换?
https://www.mql5.com/ru/docs/files/filereadarray
https://www.mql5.com/ru/docs/files/filewritearray
链接中也有例子。
不要编造它--TC明确说过,阵列是不变的。
是的,你必须...
当然,如果数组始终是绝对不可更改的,最好将其纳入专家顾问的代码中。你可以直接在专家顾问的文件中这样做,不包括在内。
我还没有遇到过。给我指出正确的方向,如何粗略地做到这一点。