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

请老师指点编程 [文华财经]

  • 咨询内容:

     请教老师;我能否在文华8.2版本上实现这样的要求;在一个模型中的多个相同的指令信号上实现不同的委托执行方式?

    就是我想把模型中的一个指令的执行条件细化为两个,如;SPK指令出现在阳线上时就按收盘价执行,出现在阴线上时就按指令价执行,如;

    AAA&&ISDOWN,SPK;(收盘价委托)
    AAA&&ISUP,SPK;(指令价委托)
    麦语言函数里有信号执行函数,研究了半天,也没有办法,只好请教老师了,谢谢

     

  • 文华技术人员:

     CHECKSIG_SEC和CHECKSIG_MIN和CHECKSIG函数可以实现将某信号单独设置为指令价委托的。

    以其中一个为例:

    CHECKSIG_SEC(SIG,MODE1,TIME1,MODE2,TIME2);SIG为信号,MODE1为信号确认方式,TIME1信号确认时间,MODE2信号复核方式,TIME2信号复核时间。

    注:
    1、写了这个函数以后,模型会按照指令价方式运行。
    2、该函数使用Tick逐笔函数做计算,回测精准,但是计算量大,每一天就要计算几万笔,速度会慢很多。
    3、SIG位置为交易指令,包括BK\SK\BP\SP\BPK\SPK\CLOSEOUT所有指令。
    4、MODE1位置为信号确认方式,有A和B两种:
    A:出信号N秒确认信号下单。N在TIME1位置设置,N>0为出信号N秒确认信号下单,N=0为出信号立即下单。
    B:K线走完前N秒确认信号下单。N在TIME1位置设置,N>0为K线走完前N秒确认信号下单,N=0为K线走完确认信号下单
    5、MODE2位置为信号复核方式,有C,D,E和F四种:
    C:下单后N秒进行信号复核。N在TIME2位置设置,N>0为下单后N秒进行信号复核,N=0为不复核。
    D:K线走完前N秒进行信号复核。N在TIME2位置设置,N>0为K线走完前N秒进行信号复核,N=0为K线走完复核。
    E:每一个小节(包括:商品合约10:15-10:30休盘、11:30-13:30休市;股指合约11:30-13:00休市)最后一根K线提前N秒复核。N在TIME2位置设置,N>0为每一个小节最后一根K线提前N秒进行信号复核,N=0为不复核。其他非小节最后一根K线是K线走完复核。
    F:每天收盘前最后一根K线提前N秒复核。N在TIME2位置设置,N>0为每天收盘前最后一根K线提前N秒进行信号复核,N=0为不复核。其他非收盘前最后一根K线是K线走完复核。
    6、模型中写入该函数,一根K线只能有一个信号。
    7、CHECKSIG、MULTSIG、MULTSIG_SEC、MULTSIG_MIN、CHECKSIG_MIN和CHECKSIG_SEC函数不能同时出现在一个模型中
    8、该函数只允许在模组中使用,不支持加载到盒子。
    9、未使用该函数的指令,默认的信号执行方式为K线走完确认信号下单。
    10、参数N非0时,该函数不支持加载到量能周期和日线以上的周期中使用。
    11、如果用该函数设置了信号复核,复核时产生了信号消失,会进行信号消失处理。信号消失的处理方式:
    还没有成交时的信号消失处理-撤单
    BK、SK信号消失处理-平仓
    BPK、SPK信号消失处理-平仓+恢复建仓
    BP、SP信号消失处理-恢复建仓

    几种典型的信号复核确认方式对应的写法举例:
    CHECKSIG_SEC(SIG,'A',0,'D',0);//出信号立即下单,K线走完复核
    CHECKSIG_SEC(SIG,'A',N,'D',0);//出信号N秒确认信号下单,K线走完复核
    CHECKSIG_SEC(SIG,'A',N,'C',0);//出信号N秒确认信号下单,不进行复核
    CHECKSIG_SEC(SIG,'B',N,'D',0);//K线走完前N秒确认信号下单,K线走完复核
    CHECKSIG_SEC(SIG,'B',N,'C',0);//K线走完前N秒确认信号下单,不复核
    CHECKSIG_SEC(SIG,'B',0,'C',N);//K线走完确认信号下单
    CHECKSIG_SEC(SIG,'B',0,'D',0);//K线走完确认信号下单
    CHECKSIG_SEC(SIG,'A',0,'C',0);//出信号立即下单,不复核
    CHECKSIG_SEC(SIG,'A',0,'F',10);//出信号立即下单,收盘前最后一根K线提前10秒进行复核。

    例:
    C>O,BK;
    C<O,SP;
    CHECKSIG_SEC(BK,'A',5,'D',0);//设置BK信号,出信号5秒后确认下单,K线走完复核。
    CHECKSIG_SEC(SP,'A',0,'C',10);//设置SP信号,出信号立即下单,下单后10秒复核。
    AUTOFILTER;

     

  • 文华客服:  老师您可能没弄清楚我的问题,我的意思是在模型中把相同的指令用不同的委托方式,比如模型中有2个SPK指令,我要把其中的一个用;CHECKSIG_SEC(SIG,'B',0,'C',N);//K线走完确认信号下单。另一个用;CHECKSIG_SEC(SIG,'A',0,'D',0);//出信号立即下单,K线走完复核。如何实现?

     

  • 网友回复:  同一指令只能同一执行方式的。

 

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

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


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

相关文章

    没有相关内容