是否有替代MT4中的Sleep()代码可用于策略测试器中的测试?
根据MT4文档,Sleep()函数不会暂停策略测试器中Expert Advisor的执行。
我想看看如果我在X时间的大量TP之后暂停交易,EA测试结果的表现会发生怎样的变化。
关于如何实现这个可以被测试的任何想法?
是否有替代MT4中的Sleep()代码可用于策略测试器中的测试?
根据MT4文档,Sleep()函数不会暂停策略测试器中Expert Advisor的执行。
我想看看如果我在X时间的大量TP之后暂停交易,EA测试结果的表现会发生怎样的变化。
关于如何实现这个可以被测试的任何想法?
任何解决方法,将不胜感激。基本上我有这样的东西......直到我意识到它在测试模式下什么都不做。我需要一些可以模拟睡眠或暂停或暂停功能的东西,并且也可以在测试模式下工作。如果敞口头寸超过最大利润范围,我有一项功能可以平仓所有未平仓交易。我想测试暂停任何未来交易的X时间,我也需要它在测试模式下显示。插入代码void PipMaxCloseOut(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){if(!OrderSelect(i,SELECT_BY_POS)){Print(TimeToStr(TimeCurrent(),TIME_SECONDS),CHECK Function GT;,__FUNCTION__,!! !!!,OrderMagicNumber(),错误代码=,GetLastError()); } else int result; ((OrdersTotal()> 0)(OrderMagicNumber()== Trade1L)){RefreshRates();打印(TimeToStr(TimeCurrent(),TIME_SECONDS),关闭Trade1L PipMax CLOSE OUT,PL:,OrderProfit(),Bid:,MarketInfo(Trade,MODE_BID),Open Trades:,OrdersTotal());结果= OrderClose(OrderTicket(),OrderLots(),MarketInfo(Trade,MODE_BID),MaxSlippage * 2,CLR_NONE);如果(结果lt; = -1){打印(在尝试关闭Trade1L期间PipMax CLOSE OUT!ERROR CODE#,GetLastError())时发生错误; }()((OrdersTotal()GT; 0)(OrderMagicNumber()== Trade1S)){RefreshRates();打印(TimeToStr(TimeCurrent(),TIME_SECONDS),关闭Trade1S PipMax CLOSE OUT,PL:,OrderProfit(),Ask:,MarketInfo(Trade,MODE_ASK),Open Trades:,OrdersTotal());结果= OrderClose(OrderTicket(),OrderLots(),MarketInfo(Trade,MODE_ASK),MaxSlippage * 2,CLR_NONE);如果(结果lt; = -1){打印(在尝试关闭Trade1S PipMax CLOSE OUT!ERROR CODE#,GetLastError())时发生错误; }}}睡眠(MilliSecs); }
在进入新的交易之前,只需检查最后一笔交易的收盘时间,如果有足够的时间(重新开始交易之前的延迟)。
所以这就是我迄今为止所做的测试。不幸的是,我的预期并不如预期的那样,它会筛选出比坏的更好的交易......至少现在正在进行测试。稍后可能会调整它,或者删除它。增加了两倍TimeMicroSecNow;双TimeMicroSecAfterEQP; extern int MicroSecAfterEQP = 60000000;替换睡眠:TimeMicroSecAfterEQP = GetMicrosecondCount();在新交易之前:TimeMicroSecNow = GetMicrosecondCount(); RefreshRates();如果(TimeMicroSecNow gt; TimeMicroSecAfterEQP MicroSecAfterEQP){TRADE; }