客服热线:18391752892

多仓位时,如何安全准确全部平仓

   日期:2019-01-12     浏览:318    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 背景:
很多同学喜欢for(int i =0;i ordersTotal();i++)复制代码这样循环读取所有持仓单 并OrderSelect选择后 执行OrderClose或OrderDelete平仓。
其实这样是错误的!
原因:
当多个持仓单的时候,排列序号是 0 1 2 3 。。。。。这样子。
i=0时 执行了出场动作后,原来 1 2 3位置的订单序号就变成了0 1 2了
这时候按i去循环已近不是想象中的那个位置的序号持仓单。
所以当执行到最后还剩1个持仓单时,i肯定是大于0的,而这时最后持仓单的序号是0
就出现无法平仓的情况。
针对这种问题有以下两种解决办法,供大家参考:
1、循环改成
for(int i=ordersTotal-1;i i--) /font
复制代码
这样先平仓的持仓单序号都是从高往低,与i的递增顺序一致,可以正确执行
2、可以先用for循环,读取所有持仓单的Ticket存入一个数组,然后再次用for循环
使用OrderSelect+Ticket的方式 可以正确选择,并执行平仓。

外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行