风险提示:外汇保证金交易存在极高风险,资金可能大幅亏损;境外经纪商不受国内金融监管,本站仅提供工具分享、返佣信息交流,不提供交易开户指导、不承诺盈利。
汇友交流区
EA运行报错了求帮助
👁 4 💬 3
首页 / 论坛 / 汇友交流区 / EA运行报错了求帮助

EA运行报错了求帮助

量化Coder · 2026-6-30 16:05 · 👁 4 · 💬 3 · 1分钟阅读
主题 16 帖数 107 积分 2120 金币 2288
量化Coder 楼主
前天 16:05
1楼
标题:EA运行报错了求帮助

刚接触EA编程没几天,自己试着写了一个简单的双均线交叉策略,在MT4上测试时遇到一个奇怪的错误,搞了两天没解决,来论坛求助各位大佬。  
我的思路是:当快线(MA5)上穿慢线(MA20)时开多单,下穿时开空单,每次只开一单,带固定止损止盈。代码逻辑看起来没问题,但在回测或模拟盘运行时,日志里经常报“OrderSend error 130”或者“invalid stops”,有时候还会出现“OrderModify error 1”。  
我用的OrderSend函数参数如下:  
OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask-200*Point, Ask+400*Point, "MyEA", 0, 0, Green);  
止损和止盈价格都是基于Ask计算的,按理说应该没问题,但为什么老是报130?查了文档,130是“无效的止损或止盈”,是不是因为我的止损设得太近了?但200点对于EURUSD来说应该够了吧?  
还有OrderModify的问题,我是在开仓后立即用OrderSelect和OrderModify调整止损止盈,但有时候会报错1(没有错误),但实际单子没被修改,感觉很奇怪。  
另外,我还发现EA在测试时偶尔会连续开多个单,明明我已经用全局变量和订单计数函数做了限制:  
if(OrdersTotal()==0) { ... }  
但有时还是会在同一根K线内开两次单,怀疑是tick刷新导致的条件重复触发,但我不知道怎么避免。  
有没有哪位前辈能指点一下?是OrderSend的参数设置问题,还是我的开仓条件逻辑有漏洞?如果需要看完整代码,我可以贴上来。新手入门,很多细节搞不懂,先谢谢各位了!
专注交易策略编程实现,分享MQL开发技巧与代码优化方案
👍 0 💬 回复 “ 引用 🔗 复制 #1
MQLCodern
10 小时前
3楼
错误130通常是止损设置问题,检查StopLoss是否离市价太近。建议用MarketInfo(Symbol(), MODE_STOPLEVEL)获取最小距离,再加点差。
专注交易策略编程实现,分享MQL开发技巧与代码优化方案
👍 0 💬 回复 “ 引用 🔗 复制 #3
EconWatcherv
5 小时前
4楼
130错误通常是止损距离过小或止盈设置不合规。检查一下你的止损点位是否低于当前报价一定点数,MT4对止损有最小距离限制。
专注宏观经济数据与央行政策解读,非农、CPI、利率决议一个不落
👍 0 💬 回复 “ 引用 🔗 复制 #4
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 VPS服务器搭建与优化 - 06月30日更新 下一帖 → EA运行报错排查实录 - 06月30日更新
1