移动止损函数
移动止损函数 //移动止损函数// 详解:该函数里面需要用到的可修改的外部变量是: 1、 移动止损点数 2、magic(这两个变量可将其定义成全局变量)
void yidong() //定义函数名称
{
for(int i=0;i<OrdersTotal();i++) //for循环语句订单总数的循环OrdersTotal()用来获取当前的所有订单总数
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)//查询当前的订单序号是否存在
{
if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)//判断第一查询到的订单类型是不是买单,第二查询到的订单的货币对是不是当前货币对,第三查询到的订单的魔术号是否和外部定义的魔术号是否相同
{
if ((Bid-OrderOpenPrice())>=Point*移动止损点数) //如果现卖价-开单价的点数大于等于移动止损点数,即价格上升多少个点后,准备开启以下的止损上移变动设置。
{
if (OrderStopLoss()<(Bid-Point*移动止损点数)||(OrderStopLoss()==0))// 如果现卖价-移动止损点数后的 价格大于设置的止损价,或者止损价格没有设置的时候,执行下面的修改订单止损价格语句
{
int OM;//定义一个变量接收修改订单函数的返回值
OM=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*移动止损点数,OrderTakeProfit(),0,Green); //修改订单止损价格语句(订单编号识别,订单开单价识别,止损价格修改,订单止盈价格识别,当前周期,订单颜色)
}
}
}
if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) //判断第一查询到的订单类型是不是买卖单,第二查询到的订单的货币对是不是当前货币对,第三查询到的订单的魔术号是否和外部定义的魔术号是否相同
{
if ((OrderOpenPrice()-Ask)>=(Point*移动止损点数)) //如果现开单价格--买价价的点数大于等于移动止损点数,即价格下降多少个点后,准备开启以下的止损下移变动设置。
{
if((OrderStopLoss()>(Ask+Point*移动止损点数))||(OrderStopLoss()==0)) // 如果设置的止损价大于现买价价+移动止损点数后的 价格,或者止损价格没有设置的时候,执行下面的修改订单止损价格语句
{
int OM; //定义一个变量接收修改订单函数的返回值
OM=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*移动止损点数,OrderTakeProfit(),0,Green); //修改订单止损价格语句(订单编号识别,订单开单价识别,止损价格修改,订单止盈价格识别,当前周期,订单颜色)
}
}
}
}
}
}
止损追踪 很不错的函数,就是
不知道实用性怎么样 有mq5版的吗 谢谢分享很不错的函数,就是 买单和卖单都兼顾到了[憨笑] 谢谢分享 可以写成模块吗 挺好的。。 MT4不就有自带的移动止损??这个和这个功能有什么差别?? 感谢分享 谢谢分享 好工具 不是固定点的嘛 非常感谢楼主 移动止损函数 非常感谢楼主 移动止损, 感谢分享这个函数模块。学习收藏了
页:
[1]