自动交易系统移动止损如何实现?

 
if(TrailingStop>0) 
{ 
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
以上是一段移动止损实现的代码,缺点是当第一次触发移动止损后,以后每增加一点利润,止损就会移动一次,利润回退时,止损不变,这样就导致单子的修改过于平凡,并且汇价出现回调时很容易被止损出场。

请教各位高手有没有更好的移动止损实现的办法?在此表示感谢!


有如下原理的移动止损,但我不知道用代码如何来实现:

比如:移动止损设置为60点,当利润达到60点的时候,在原来止损的基础上移动60点,再次当利润达到下一个60点的时候(也就是利润达到120点的时候),止损再次移动60点,一直如此下去......

这种原理的话不会导致单子修改过于平凡,且相对上面一种移动止损不容易被止损出场,可以使利润更加最大化。