有没有人遇到过MT5的EA一编译就报0xc0000005访问冲突的?我快被这问题折磨疯了,连续三个晚上都在折腾这个😭
现象是这样:EA在策略测试器里跑欧美15分钟回测,只要日志里出现OrderSend就立刻崩溃退出,测试直接中断。我查了日志,报错定位就是在OrderSend调用处发生内存访问违规。一开始怀疑是VPS内存不够,换了台4G的机器照样崩。
已经试过的方法:把OrderSend的参数逐个打印出来检查,ticket、volume、price看着都正常;也重装过MT5客户端和编译器;甚至把代码精简到只剩开仓逻辑还是崩。用MQL5的调试模式单步走,走到OrderSend那一行就跳异常。
想请教下,这种访问冲突是不是跟结构体MqlTradeRequest没清零有关?还是说指针传递哪里出了问题?有排查过的朋友指点一下,感激不尽!
补充一下,我后来发现是自定义指标句柄没判空就直接在OnTick里用了,句柄失效时正好在OrderSend附近炸,不一定就是下单本身的问题。
现象是这样:EA在策略测试器里跑欧美15分钟回测,只要日志里出现OrderSend就立刻崩溃退出,测试直接中断。我查了日志,报错定位就是在OrderSend调用处发生内存访问违规。一开始怀疑是VPS内存不够,换了台4G的机器照样崩。
已经试过的方法:把OrderSend的参数逐个打印出来检查,ticket、volume、price看着都正常;也重装过MT5客户端和编译器;甚至把代码精简到只剩开仓逻辑还是崩。用MQL5的调试模式单步走,走到OrderSend那一行就跳异常。
想请教下,这种访问冲突是不是跟结构体MqlTradeRequest没清零有关?还是说指针传递哪里出了问题?有排查过的朋友指点一下,感激不尽!
补充一下,我后来发现是自定义指标句柄没判空就直接在OnTick里用了,句柄失效时正好在OrderSend附近炸,不一定就是下单本身的问题。
