空单SL设置为0不能实现追踪止损的问题

 

大家好,我遇到这样一种情况,因为看到MQL5文档介绍,在下单函数设置sl和tp等于零就是没有设定止盈和止损,如下代码:

request.price=bid;

request.sl=0;

request.tp=0;

但问题来了,空单在下单的时候把sl设置为0的时候,会遇到一种情况,就是设置追踪止损的时候,读取做空持仓订单SL的时候默认为0,所以实现不了空单的追踪止损,多单就不会用到这样的情况,因为多单的止损为0是符合逻辑的!

所以想请教大家遇到这种情况,除了一开始把空单的止损设很大之外,能不能不设止损而又能实现追踪止损的其他办法呢?谢谢

 
各位大神大哥大姐呢
 

这取决于你的追踪止损策略.

如果追踪止损策略必须要求有初始止损, 那就必须先设置止损, 

如果追踪止损策略不要求单子必须先有止损, 那你可以判断单子当前的止损是否为0,如果是0你就给它设置新的止损,如果单子的止损大于0且比新的止损大, 则设置新的止损.

double sl = StopLoss();  //当前止损

double newSL = ....;   //新的止损

if(sl==0.0 || sl>newSL)

{

   //设置新的止损

}
 
Ziheng Zhuang #:

这取决于你的追踪止损策略.

如果追踪止损策略必须要求有初始止损, 那就必须先设置止损, 

如果追踪止损策略不要求单子必须先有止损, 那你可以判断单子当前的止损是否为0,如果是0你就给它设置新的止损,如果单子的止损大于0且比新的止损大, 则设置新的止损.

谢谢你提醒了我,是我钻牛角尖了,没想起把0先改掉,可能我潜意识一直以为是设置为0的原因所以没想起可以把他改掉,谢谢兄弟