MQ软件中期货的加减仓的代码怎么写 (文华财经wh9)

投资者咨询:MQ软件中期货的加减仓的代码怎么写 (文华财经wh9)
来源:文华财经  日期:2018-4-24 20:20
 我想写一个最多三次加仓的软件,加仓的条件是当前价格是成本价的1.2倍时加仓一次,回撤到成本的1.1倍时平三分之一仓,回撤到成本时平仓;依次内推每增加10%加仓一次,每回撤10%时平三分之一的仓;只增加三次仓;超过三次后,价格以最高价做参考回撤,每回撤5%,平仓三分之一;求大师们指点;谢谢,刚接触MQ不懂怎么下手;
技术人员回复
日期:2018-4-24 20:51
 
和您核实下

1.当前价格是成本价的1.2倍时加仓一次 --------------这个是指的目前所有持仓的 持仓均价?

2.超过三次后,价格以最高价做参考回撤------------------最高价是指的什么时候的最高价?从第一次开仓开始?


投资者咨询:MQ软件中期货的加减仓的代码怎么写 (文华财经wh9)
来源:文华财经  日期:2018-4-24 20:20

 1、是持仓的均价;

 2、从第一次开仓的价格开始的最高价;

不好意思没有描述清楚,白天比较忙,没有及时回复;

技术人员回复
日期:2018-4-25 20:31
 明白您的思路了

不过您的思路比较复杂,编写需要一定的时间,预计周五前给您编写完成

请耐心等待下
技术人员回复
日期:2018-4-28 10:49
 请参考:

Setting
    AddTimes:3; 
Params
    Numeric N(3);
Vars
    Numeric Xpos;//首次开仓的位置
    Numeric CON;//首次开仓的位置
    Numeric HH;//首次开仓的位置
Begin

   //开仓
   If(  CrossDown(Ma(Close,3),Ma(Close,10)) &&BKVol ==0)
   {
     Buy(n);//首次开仓条件

    }
     Xpos=BarsLast(Cross(BKVol>0,0.5))+1;//首次开仓的位置

    //加仓
     If( Close>=0.2*(Close-BKPriceAv)+BKPriceAv  &&BKVol >= 1)
   {
     Buy(n);//当前价格是成本价的1.2倍时加仓一次

    }
   //平仓
    CON = Count(BKVol>Ref(BKVol,1),Xpos);//加仓次数
    HH = HHV(High,Xpos);//开仓以来最高价
     If(CON<3 && Exist(Close>=1.2*BKPriceAv,Xpos)&& Close<=1.1*BKPriceAv &&BKVol >= 1)
   {
     Sell(Ceiling(BKVol/3,1));//回撤到成本的1.1倍时平三分之一仓
    }
     If(CON>=3&&Close<HH-(HH-BKPriceAv)*0.5&&BKVol >= 1)
   {
     Sell(Ceiling(BKVol/3,1));//回撤到成本的1.1倍时平三分之一仓
    }
   If( Close<BKPriceAv&&BKVol >= 1)
   {
     Sell(BKVol);//回撤到成本时平仓
    }
End



投资者咨询:MQ软件中期货的加减仓的代码怎么写 (文华财经wh9)
来源:文华财经  日期:2018-4-24 20:20
 每次加仓手数不同如何设置
技术人员回复
日期:2018-6-5 15:49
  请参考:

Setting
    AddTimes:3; 
Params
    Numeric N(3);
Vars
    Numeric Xpos;//首次开仓的位置
    Numeric CON;//首次开仓的位置
    Numeric HH;//首次开仓的位置
Begin

   //开仓
   If(  CrossDown(Ma(Close,3),Ma(Close,10)) &&BKVol ==0)
   {
     Buy(n);//首次开仓条件

    }
     Xpos=BarsLast(Cross(BKVol>0,0.5))+1;//首次开仓的位置

    //加仓
     If( Close>=0.2*(Close-BKPriceAv)+BKPriceAv  &&BKVol >= 1)
   {
     Buy(BKVol *1.5);//当前价格是成本价的1.2倍时加仓一次

    }
   //平仓
    CON = Count(BKVol>Ref(BKVol,1),Xpos);//加仓次数
    HH = HHV(High,Xpos);//开仓以来最高价
     If(CON<3 && Exist(Close>=1.2*BKPriceAv,Xpos)&& Close<=1.1*BKPriceAv &&BKVol >= 1)
   {
     Sell(Ceiling(BKVol/3,1));//回撤到成本的1.1倍时平三分之一仓
    }
     If(CON>=3&&Close<HH-(HH-BKPriceAv)*0.5&&BKVol >= 1)
   {
     Sell(Ceiling(BKVol/3,1));//回撤到成本的1.1倍时平三分之一仓
    }
   If( Close<BKPriceAv&&BKVol >= 1)
   {
     Sell(BKVol);//回撤到成本时平仓
    }
End