客服热线:18391752892

移动止损方法

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

您需要 登录 才可以下载或查看,没有帐号?注册 不同的策略对移动止损的要求不尽相同,因此本节以第一章“移动止损”定义内容来描述实现“方法” 。
“移动止损” 是指成交持仓单盈利且当前报价与该单开仓价超过预设移动止损间距点数而执行的一个不断向盈利方向调整订单止损价位的过程。该订单被止损后利润≥0。
假设移动止损(TrallingStop)间距为 50 点,我们针对订单号为 921795 的成交持仓单进行移动止损操作。执行前预定义一个移动止损价位变量(myTrallingStopPrice) ,首先选中该订单,其次判断该订单类型(买入/卖出) ,第三步计算移动止损价位,第四步比较订单止损价是否可以执行移动止损,第五步执行移动止损。

int TrallingStop=50; //预定义移动止损间距
double myTrallingStopPrice=0; //预定义移动止损价位
if (OrderSelect(921795,SELECT_BY_TICKET,MODE_TRADES)) //选中订单号为 921795 的成交持仓单
{
if (OrderType()==OP_BUY) //判断订单为买入类型
{
myTrallingStopPrice=Bid-TrallingStop*Point; //计算移动止损价位
if (myTrallingStopPrice OrderStopLoss()) //比较订单止损价是否可以执行移动止损
{
iWait;
OrderModify(OrderTicket(),OrderOpenPrice(),myTrallingStopPrice,OrderTakeProfit(),0);
}
}
if (OrderType()==OP_SELL) //判断订单为卖出类型
{
myTrallingStopPrice=Ask+TrallingStop*Point; //计算移动止损价位
if (myTrallingStopPrice OrderStopLoss()) //比较订单止损价是否可以执行移动止损
{
iWait;
OrderModify(OrderTicket(),OrderOpenPrice(),myTrallingStopPrice,OrderTakeProfit(),0);
}
}
}复制代码
细心的读者会发现在针对卖出单执行第一次移动止损时, 假设卖出单没有设置止损价位,那么按照代码中的条件就不会执行,因为计算出来的 myTrallingStopPrice 永远大于 0,而OrderStopLoss()等于 0,解决办法是增加一段给卖出单设置初始止损的代码即可

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


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


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