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

如何实现分情况平仓? [文华财经]

  • 咨询内容:

    策略如下,信号执行方式是出信号立即执行,不复核。

    原策略在建仓后最多允许加仓3次,然后一次性平仓。

     

    A为多头建仓条件
    A1为多头加仓条件
    A2为多头清仓条件
    B为空头建仓条件
    B1为空头加仓条件
    B2为空头清仓条件

    BKVOL=0 AND SKVOL=0 AND A AND NOT(ISLASTSK OR ISLASTBK),BK((MONEY*0.005)/(ATR*300));
    BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    A2 AND ISLASTBK,SP(BKVOL);
    BKVOL=0 AND SKVOL=0 AND B AND NOT(ISLASTSK OR ISLASTBK),SK((MONEY*0.005)/(ATR*300));
    SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    B2 AND ISLASTSK,BP(SKVOL);

     

    我想修改一下,达到以下效果:

    以多头为例,如果无加仓行为,满足A2时,执行平仓。

    如果出现加仓行为,则满足A3时,执行平仓。

    也就是说,针对策略是否有加仓行为,执行不同的平仓条件。

     

  • 文华技术人员:

     您的模型采用的是资金比例 所以暂无法判断是否有加仓行为

     

    如果您使用的是固定手数 那么是可以判断的 比如您每次下单一手 那么如果当前的BKVOL=2那么就必然可以判断发生过加仓  可是您用的是资金比例 那么就不好判断了 您考虑下吧。

     

  • 文华客服:

    信号执行方式是出信号就执行,不复核。

     

    假定A为开多的条件,BK信号至少要距上个SP信号两根K线,如下写正确吗?

     

    barssp+1>=2 and A,bk;

     

  • 网友回复:

     barssp>2 and A,bk;

     BARSSP>2即可实现 无需+1

     仅供参考!

     

  • 网友回复:  

    N1:=BARSLAST(DATE<>REF(DATE,1))+1;
    TODAYO:=REF(O,N1-1);
    TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
    ATR:=MA(TR,N),NODRAW;
    MA5:=MA(C,5),NODRAW;
    MA20:=MA(C,20),NODRAW;

    A:=C>TODAYO AND MA5>MA20 AND BARSSP>2;//多头建仓
    A1:=C-BKPRICE>2*ATR;//多头加仓
    A2:=BKHIGH-C>1*ATR;//多头清仓
    B:=C<TODAYO AND MA5<MA20 AND BARSBP>2;//空头建仓
    B1:=SKPRICE-C>2*ATR;//空头加仓
    B2:=C-SKLOW>1*ATR;//空头清仓

    CLOSEMINUTE>=10 AND BKVOL=0 AND SKVOL=0 AND A AND NOT(ISLASTSK OR ISLASTBK),BK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND BKVOL>0 AND A1 AND ISLASTBK,BK((MONEY*0.005)/(ATR*300));
    A2 AND ISLASTBK,SP(BKVOL);
    CLOSEMINUTE>=10 AND BKVOL=0 AND SKVOL=0 AND B AND NOT(ISLASTSK OR ISLASTBK),SK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    CLOSEMINUTE>=10 AND SKVOL>0 AND B1 AND ISLASTSK,SK((MONEY*0.005)/(ATR*300));
    B2 AND ISLASTSK,BP(SKVOL);

    CLOSEMINUTE<=5,CLOSEOUT;

     

    IF,10min周期,信号执行方式是出信号立即执行,不复核。回测无信号。去掉BARSSP>2和BARSBP>2这个条件,就变正常了。

    BARSSP>2和BARSBP>2的意思是:开仓k线至少距离上次平仓k线2个周期。不知道这么写是否正确?

     


 

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

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


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

相关文章

    没有相关内容