我使用PositionClose去关闭某一产品的头寸
经纪商并不支持反向头寸平仓(Exness)
大部分时候工作是正常的,但是极少数情况下会开启反向头寸
因为我是在无限循环中进行平仓
所以导致开启了上千个正向反向头寸 从而5W USD账户被commssion爆仓
这究竟是什么原因导致的
如何解决?
这个不是标准库Ctrade的问题,应该是编程逻辑问题,建议代码由专业人员有经验的人编写,不然前期会出现很多漏洞和问题,这种损失太不值得~
这个不是标准库Ctrade的问题,应该是编程逻辑问题,建议代码由专业人员有经验的人编写,不然前期会出现很多漏洞和问题,这种损失太不值得~
谢谢回复 但是代码很简单 只是平仓所有头寸 是不是用OrderSend能解决这个问题
CTrade是否完成了更多操作 比如平仓失败就会用反向头寸来平仓?
我使用PositionClose去关闭某一产品的头寸
经纪商并不支持反向头寸平仓(Exness)
大部分时候工作是正常的,但是极少数情况下会开启反向头寸
因为我是在无限循环中进行平仓
所以导致开启了上千个正向反向头寸 从而5W USD账户被commssion爆仓
这究竟是什么原因导致的
如何解决?
我使用PositionClose去关闭某一产品的头寸
经纪商并不支持反向头寸平仓(Exness)
大部分时候工作是正常的,但是极少数情况下会开启反向头寸
因为我是在无限循环中进行平仓
所以导致开启了上千个正向反向头寸 从而5W USD账户被commssion爆仓
这究竟是什么原因导致的
如何解决?
加一个校验,本机EA跟服务器通讯,如果服务器不能及时处理指令,会产生积累,所以在EA中,每发出一个开仓,或者平仓指令,要检测仓位是否发生了变化,如果仓位没有变化,要延时等待,直到该指令被服务器响应。
在流动性不足的情况下,极易产生你所描述的情况。我使用PositionClose去关闭某一产品的头寸
经纪商并不支持反向头寸平仓(Exness)
大部分时候工作是正常的,但是极少数情况下会开启反向头寸
因为我是在无限循环中进行平仓
所以导致开启了上千个正向反向头寸 从而5W USD账户被commssion爆仓
这究竟是什么原因导致的
如何解决?
这种情况我也遇见过,不论是MT4还是MT5都发生过!幸好我每次开仓都停顿几秒钟并检测服务器返回代码,用苹果手机(这是唯一的可以在全球网络无障碍接收)ID瞬时接收代码,如果手机响个不停,那肯定是出错了!!!立马登陆远程服务器进行手动干预从而防止了爆仓!!!现在已经改进EA了,每个新柱只检测一次开仓条件!!!如果开仓条件满足就发送开仓指令并且每次都必须检测服务器返回代码,如果服务器不是返回成功代码,那就停顿几秒后再循环重试!记住这里的循环也必须只是一个新柱条件里的一次重试循环!如果重试几次都没有成功比如No Price!那就开挂单!!!这样新柱就不会无限开仓!但是这样每次就只会开一个仓位:市价单或者挂单!这样虽然每次只会开一个仓位,但是还可以在仓位大小上进行风险计算管理,同样也可以在仓位单一的情况下达到多仓位的效果!这是开仓情况,至于平仓就好办多了!祝你好运!
学习编程初期容易犯这种控单问题,大多数情况都是经验不足,考虑不周,有逻辑漏洞,没有经过demo检验测试而直接上真实账户交易导致~。
我觉得 平仓最好指定单号 POSITION_TICKET
参考文档中关于也有提示:PositionClose(...) 方法并不意味着总是成功执行交易操作。有必要检查交易请求的结果 (交易服务器返回码), 使用 ResultRetcode() 获取。
论坛中有一帖子也可参阅 https://www.mql5.com/zh/forum/375919
- 2021.08.19
- www.mql5.com
检查交易请求的结果的代码,并根据结果处理订单,导致每个tick都发送 PositionClose直到账户可用余额不足,市场方向不对加上累积的手续费就会符合强制平仓条件,最终爆仓!希望有大神来指点迷津,怎么写这个代码,谢谢。
PositionClose
我使用PositionClose去关闭某一产品的头寸
经纪商并不支持反向头寸平仓
大部分时候工作是正常的,但是极少数情况下会开启反向头寸
因为我是在无限循环中进行平仓
所以导致开启了上千个正向反向头寸 从而5W USD账户被commssion爆仓
这究竟是什么原因导致的
如何解决?