您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

[原创]MQ模型 [文华财经]

  • 咨询内容:  
  • 这是一个根据多空量能做的短线模型,在每次出现多空信号后只发出一次开仓信号,短线做几个点差就平仓,但是按照这个思路写出来的结果差别很大,在预设的条件成立时根本就没有出现开平仓信号,尤其是在控制了每个多空信号只做一次开平仓后,信号是乱的,求大神 按照以上思路指教修改一下。

    Params   Numeric N1(377);   Numeric N2(34);Vars      NumericSeries LC;       NumericSeries LC1;         NumericSeries LC2;     NumericSeries LC3;     NumericSeries LC4;     NumericSeries LC11;     NumericSeries LC12;     NumericSeries  L2;     NumericSeries  L3;      NumericSeries  L4;     NumericSeries  L5;      NumericSeries XZD;      NumericSeries XZK;    
    ImPort   #ImPort [Min,1,DKL] As var1Begin      L2=var1.LC1;     L3=var1.LC2;     L4=Scale*Vol;     L5=L4-DualVolume("N");     LC1= Ema2(IIF(IsUp ,L2,0),N1);//"长多"     LC2= Ema2( IIF(IsDown,L3,0),N1);//"长空"     LC3= Ema2(IIF(IsUp ,L4,0),N2);//"短多"     LC4= Ema2( IIF(IsDown,L5,0),N2);//"短空"     LC11= Ema2(abs(LC1-LC2) ,3);//"离差1"     LC12= Ema2(abs(LC3-LC4) ,3);//"离差2"     PlotLine("长多",LC1,red,Linethick1,0);     PlotLine("长空",LC2,Green,Linethick1,0);     PlotLine("短多",LC3,RGB(255,0,192),Linethick1,0);     PlotLine("短空",LC4,RGB(0,255,255),Linethick1,0);


    if (LC3>LC4){XZD=CountSig(Buy,BarsLast( LC3>LC4));//限制开多仓条件}if (LC3<LC4){XZK=CountSig(SellShort,BarsLast( LC3<LC4));//限制开空仓条件}if (LC1>LC2&&LC3>LC4&&LC12>200&&XZD<2){ Buy(5,Limit_Order);}If(MarketPosition == 1){Sell(5,BKPrice+3*MinPrice);}if (LC1<LC2&&LC4>LC3&&LC12>200&&XZD<2){ SellShort(5,Limit_Order);}If(MarketPosition ==-1){BuyToCover(5,SKPrice -3*MinPrice);} 
    End

     

     来源:程序化99

  • 文华技术人员: 您提供下  来源:程序化99
  • 文华技术人员:DKL指标源码  来源:程序化99
  • 文华技术人员:
     

     来源:程序化99

  • 文华技术人员: 以及您加载测试的合约周期,我们对应测试分析下

     

     来源: WWW.CXH99.COM

  • 文华客服:  就是一个跨周期引用
    Params    Numeric N1(377);    Numeric N2(34);
    Vars    NumericSeries  L1;    NumericSeries  L2;    NumericSeries LC1;      NumericSeries LC2;      NumericSeries LC3;      NumericSeries LC4;   Begin   L1=Scale*Vol;   L2=Scale*Vol-DualVolume("N");   LC1= Ema2(IIF(IsUp,L1,0),N1);   LC2= Ema2(IIF(IsDown,L2,0),N1);   LC3= Ema2(IIF(IsUp,L1,0),N2);   LC4= Ema2(IIF(IsDown,L2,0),N2); end

     

  • 网友回复:  就是螺纹主力 15秒钟周期。

     

  • 网友回复: 模型如下修改下:
    Params    Numeric N1(377);    Numeric N2(34); Vars       Numeric KD;      Numeric KK;      NumericSeries LC;        NumericSeries LC1;          NumericSeries LC2;      NumericSeries LC3;      NumericSeries LC4;      NumericSeries LC11;      NumericSeries LC12;      NumericSeries  L2;      NumericSeries  L3;       NumericSeries  L4;      NumericSeries  L5;       NumericSeries XZD;       NumericSeries XZK;    
    ImPort    #ImPort [Min,1,B] As var1 Begin       L2=var1.LC1;      L3=var1.LC2;      L4=Scale*Vol;      L5=L4-DualVolume("N");      LC1= Ema2(IIF(IsUp ,L2,0),N1);//"长多"      LC2= Ema2( IIF(IsDown,L3,0),N1);//"长空"      LC3= Ema2(IIF(IsUp ,L4,0),N2);//"短多"      LC4= Ema2( IIF(IsDown,L5,0),N2);//"短空"      LC11= Ema2(abs(LC1-LC2) ,3);//"离差1"      LC12= Ema2(abs(LC3-LC4) ,3);//"离差2"      PlotLine("LC1",LC1,red,Linethick1,2,0);      PlotLine("LC2",LC2,Green,Linethick1,2,0);      PlotLine("LC3",LC3,RGB(255,0,192),Linethick1,2,0);      PlotLine("LC4",LC4,RGB(0,255,255),Linethick1,2,0);      PlotLine("LC12",LC12,RGB(0,255,255),Linethick1,2,0);
    KD=CountSig(Buy,BarsLast( LC3>LC4)); KK=CountSig(SellShort,BarsLast( LC3<LC4));
    if (LC3>LC4) { XZD=KD;//限制开多仓条件 } if (LC3<LC4) { XZK=KK;//限制开空仓条件 }  PlotLine("XZK",XZK,RGB(0,255,255),Linethick1,0,0); PlotLine("XZD",XZD,RGB(0,255,255),Linethick1,0,0);
    if (LC1>LC2&&LC3>LC4&&LC12>200&&XZD<2) {  Buy(5,Limit_Order); } If(MarketPosition == 1) { Sell(5,BKPrice+3*MinPrice); } if (LC1<LC2&&LC4>LC3&&LC12>200&&XZD<2) {  SellShort(5,Limit_Order); } If(MarketPosition ==-1) { BuyToCover(5,SKPrice -3*MinPrice); End
     

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容