错误、漏洞、问题 - 页 2438 1...243124322433243424352436243724382439244024412442244324442445...3184 新评论 fxsaber 2019.04.18 12:15 #24371 Slava:2. 在OnTesterPass中读取一种类型的框架,在OnTesterDeinit中完成。其他框架在OnTesterDeinit中被读取。如果每一次有几个帧,这个功能不允许我们对计算出的通过的结果进行实时工作。 fxsaber 2019.04.18 12:19 #24372 这里似乎是一个纯粹的方法论的缺陷 关于交易、自动交易系统和策略测试的论坛 在EA中用自动替换的结果测试策略时间表 斯拉瓦, 2013.04.10 15:04 void OnTesterDeinit() { string name; ulong pass; long id; double value; int handle,i; BalanceInTime balance[]; MqlRates rates[]; //--- FrameFirst(); FrameFilter("",1); while(FrameNext(pass,name,id,value,balance)) { handle=FileOpen(name+"_"+string(id)+"_"+IntegerToString(pass,5,'0')+".txt",FILE_WRITE|FILE_CSV|FILE_ANSI); if(handle!=INVALID_HANDLE) { for(i=0; i<ArraySize(balance); i++) FileWrite(handle,balance[i].date,EnumToString(balance[i].entry),DoubleToString(balance[i].price,5),DoubleToString(balance[i].balance,2)); FileClose(handle); } } //--- FrameFirst(); FrameFilter("",2); while(FrameNext(pass,name,id,value,rates)) { handle=FileOpen(name+"_"+string(id)+"_"+IntegerToString(pass,5,'0')+".txt",FILE_WRITE|FILE_CSV|FILE_ANSI); if(handle!=INVALID_HANDLE) { for(i=0; i<ArraySize(rates); i++) FileWrite(handle,rates[i].time,DoubleToString(rates[i].open,5),DoubleToString(rates[i].high,5),DoubleToString(rates[i].low,5),DoubleToString(rates[i].close,5),string(rates[i].tick_volume)); FileClose(handle); } } //--- } 在循环中的FrameNext之前,最好在循环的每一次传递中调用ArrayFree。 Aleksey Vyazmikin 2019.04.18 12:53 #24373 Slava:1.是的,可能是多余的。 2.在OnTesterPass中读取一种类型的框架,在OnTesterDeinit中完成。剩余的帧在OnTesterDeinit中被读取。 这种发射-接收几种类型的帧的能力使我们能够纠正测试器中一些难以产生的错误。只有在与某些参考值存在差异时,才会传送帧。先前我提到了帧的损失,如果一次通过了许多帧,而代理出现了问题--连接中断--对这种情况是否会采取一些措施? Slava 2019.04.18 12:56 #24374 fxsaber:你会打开opt-format吗?是的。 作为交换,公布读取opt文件的代码 Slava 2019.04.18 12:57 #24375 fxsaber:如果每遍有几个帧,这个功能不允许你实时处理计数的结果。是的。 这就是为什么我们必须在优化完成后读取 "非核心 "类型的帧。 Slava 2019.04.18 13:03 #24376 Aleksey Vyazmikin:先前我谈到了帧丢失,如果一次传输了许多帧,而代理出现了故障--通信中断--对这种情况会采取什么措施吗?你能做什么? 优化结果 在任何情况下都会比其框架更早、更快离开。如果代理已经停滞(计算机关闭,服务停止),肯定没有什么可做的。 我们可以尝试做以下事情:在帧被发送之前,不要发送结果。但不知道我们什么时候能解决这个问题。 Slava 2019.04.18 13:06 #24377 fxsaber: 这似乎是一个纯粹的方法论缺陷在循环中的FrameNext之前,在每个循环通道上调用ArrayFree是一个好主意。我们避免了不必要的内存重新分配。 在这种情况下,有99%的概率,阵列缓冲区将被分配一次 Aleksey Vyazmikin 2019.04.18 13:10 #24378 Slava:你能做什么? 无论如何,优化的结果 将比其框架更早、更快离开。如果代理已经停滞(计算机关闭,服务停止),你完全没有办法。 我们可以尝试以下方法:在发送一帧之前,不要发送结果。但不知道我们什么时候会纠正它。也许在传输帧之前,你可以说预计有多少帧,如果比预计的少,而且代理无法使用,那么把通行证给另一个代理,并覆盖已经收到的帧? 或者在每一帧的正文中写上总数和它的序列号,同样的,如果全部没有来,就重新优化。 fxsaber 2019.04.18 13:17 #24379 Slava:是的。 作为交换,公布读取opt文件的代码我对录音更感兴趣。如果知道格式,我会做阅读。 Slava 2019.04.18 13:23 #24380 Aleksey Vyazmikin:在开始传输之前,你能不能知道预期有多少帧,如果比预期到的少,而且代理无法使用,那么就把通行证给另一个代理,并覆盖已经收到的帧? 或者在每一帧的正文中写上总的数量和它的序列号,用同样的方法,如果都没来,重新优化。如果不是每次传球都能返回一帧呢? 我在上面举了一个关于在测试器中捕捉错误的例子。只有当某些结果值与基准值不一致时,才会发送帧。 1...243124322433243424352436243724382439244024412442244324442445...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
2. 在OnTesterPass中读取一种类型的框架,在OnTesterDeinit中完成。其他框架在OnTesterDeinit中被读取。
如果每一次有几个帧,这个功能不允许我们对计算出的通过的结果进行实时工作。
关于交易、自动交易系统和策略测试的论坛
在EA中用自动替换的结果测试策略时间表
斯拉瓦, 2013.04.10 15:04
1.是的,可能是多余的。
2.在OnTesterPass中读取一种类型的框架,在OnTesterDeinit中完成。剩余的帧在OnTesterDeinit中被读取。
这种发射-接收几种类型的帧的能力使我们能够纠正测试器中一些难以产生的错误。只有在与某些参考值存在差异时,才会传送帧。
先前我提到了帧的损失,如果一次通过了许多帧,而代理出现了问题--连接中断--对这种情况是否会采取一些措施?
你会打开opt-format吗?
是的。
作为交换,公布读取opt文件的代码
如果每遍有几个帧,这个功能不允许你实时处理计数的结果。
是的。
这就是为什么我们必须在优化完成后读取 "非核心 "类型的帧。
先前我谈到了帧丢失,如果一次传输了许多帧,而代理出现了故障--通信中断--对这种情况会采取什么措施吗?
你能做什么?
优化结果 在任何情况下都会比其框架更早、更快离开。如果代理已经停滞(计算机关闭,服务停止),肯定没有什么可做的。
我们可以尝试做以下事情:在帧被发送之前,不要发送结果。但不知道我们什么时候能解决这个问题。
这似乎是一个纯粹的方法论缺陷
我们避免了不必要的内存重新分配。
在这种情况下,有99%的概率,阵列缓冲区将被分配一次
你能做什么?
无论如何,优化的结果 将比其框架更早、更快离开。如果代理已经停滞(计算机关闭,服务停止),你完全没有办法。
我们可以尝试以下方法:在发送一帧之前,不要发送结果。但不知道我们什么时候会纠正它。
也许在传输帧之前,你可以说预计有多少帧,如果比预计的少,而且代理无法使用,那么把通行证给另一个代理,并覆盖已经收到的帧?
或者在每一帧的正文中写上总数和它的序列号,同样的,如果全部没有来,就重新优化。是的。
作为交换,公布读取opt文件的代码
我对录音更感兴趣。如果知道格式,我会做阅读。
在开始传输之前,你能不能知道预期有多少帧,如果比预期到的少,而且代理无法使用,那么就把通行证给另一个代理,并覆盖已经收到的帧?
或者在每一帧的正文中写上总的数量和它的序列号,用同样的方法,如果都没来,重新优化。如果不是每次传球都能返回一帧呢?
我在上面举了一个关于在测试器中捕捉错误的例子。只有当某些结果值与基准值不一致时,才会发送帧。