EaCode小胖李 发表于 2022-12-24 20:57:59

StopTrail()移动已有的Stop挂单,使得Stop挂单一直跟随行情移动,距离行情间距可设置

函数名称
StopTrail(string SymbolX,int OrderTypeX,int MagicX,int TrailPointX)
函数介绍

有时候我们不想直接开仓,想要挂单开仓。比如行情上涨,我们想在行情下方挂一个SellStop单,如果行情一直上涨,我们就移动SellStop单跟随行情。一旦行情反转下跌,SellStop就会开仓成功。

这样我们可能会开仓开在一个更好的位置。StopTrail()就是可以自动移动挂单,使之跟随的函数。注意StopTrail()是不开仓的,需要你自己先开好挂单,然后StopTrail()帮助你进行移动。

//举例:移动当前持有的OP_BUYSTOP挂单,使之一直距离行情50点间隔。
StopTrail(Symbol(),OP_BUYSTOP,MAGIC,50);


参数介绍

SymbolX:订单筛选的交易品种,一般设置当前品种即可,也就是Symbol();“-1”代表不筛选交易品种。
OrderTypeX:订单筛选的订单类型,0代表多单,1代表空单。OP_BUY是常量0,OP_SELL是常量1。-1代表不筛选订单类型。
MagicX:订单的魔术码,你的EA的魔术码是多少,这里填上即可。
TrailPointX:挂单距离行情间隔的点数。

函数定义

注意:本人发布的函数均为实战开发所用,低价或免费发布并不赚钱,仅限懂编程的朋友使用,不提供指导,因为人工成本巨贵,感谢朋友们海涵。void StopTrail(string SymbolX,int OrderTypeX,int MagicX,int TrailPointX)
{
   if(TrailPointX>0)
      for(int i=OrdersTotal()-1; i>=0; i--)
         if(OrderSelect(i,SELECT_BY_POS))
            if((OrderSymbol()==SymbolX|| SymbolX=="-1")&&(OrderMagicNumber()==MagicX||MagicX==-1)&&(OrderType()==OrderTypeX||OrderTypeX==-1))
            {
               if(OrderType()==OP_BUYSTOP)
                  if(OrderOpenPrice()>Ask+TrailPointX*MarketInfo(OrderSymbol(),MODE_POINT))
                     if(!OrderModify(OrderTicket(),Ask+TrailPointX*MarketInfo(OrderSymbol(),MODE_POINT),OrderStopLoss(),OrderTakeProfit(),0,Yellow))
                        Print(GetLastError());

               if(OrderType()==OP_SELLSTOP)
                  if(OrderOpenPrice()<Bid-TrailPointX*MarketInfo(OrderSymbol(),MODE_POINT))
                     if(!OrderModify(OrderTicket(),Bid-TrailPointX*MarketInfo(OrderSymbol(),MODE_POINT),OrderStopLoss(),OrderTakeProfit(),0,Yellow))
                        Print(GetLastError());
            }
}




zhenjin 发表于 2023-4-16 09:13:31

看不明白

ken138888 发表于 2023-4-17 06:14:19

不断修改价格会不会被封?

tststs 发表于 2023-5-15 18:05:36

这个怎么样呢

ken138888 发表于 2023-10-16 05:36:47

有没有mq5的

aliang9887 发表于 2023-11-7 05:54:23

学习了,学习了

xcf2004 发表于 2023-12-8 12:07:57

学习下,很有用处。

qwe11 发表于 2023-12-15 20:10:42

学习一下好

nanjinglxy 发表于 2023-12-25 13:44:19

我一直是用buystop 和sellstop 手动移动。累死了。还不能操作多个品种,如果这个函数可以自己写个ea就好了。

ken138888 发表于 2024-1-19 12:59:45

不知道会不会报错

xinhua123 发表于 2024-1-19 15:32:44

周末研究一下

hzj8382 发表于 2024-5-7 11:52:58

不错不错,省了不少的操作

flarelion 发表于 2024-11-19 17:21:24

的EA的魔术码是多少,这里填

dyt20 发表于 2024-12-21 11:22:36

这个函数可以自己写个ea就好了
页: [1]
查看完整版本: StopTrail()移动已有的Stop挂单,使得Stop挂单一直跟随行情移动,距离行情间距可设置