您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

关于MC能否实现文华的CHECKSIG函数功能 [MC]

  • MC用户求助:

    老师,请问MC能否实现文华的CHECKSIG功能,主要有两个关键点:一、出信号下单;二、K线收盘时复核。请问MC如何实现?以下是CHESKSIG的介绍:
    CHECKSIG 设置信号确认与复核的指令价方式(TICK逐笔回测,可设置回测精度)

    用法:
    CHECKSIG(SIG,MODE1,TIME1,MODE2,TIME2,INTERVAL);
    1、当INTERVAL不为0时,INTERVAL数据时间间隔,每隔INTERVAL秒计算一次信号,SIG为信号,MODE1为信号确认方式,TIME1信号确认时间乘数,MODE2信号复核方式,TIME2信号复核时间乘数。
    (例:INTERVAL为10,豆粕合约开盘第一根K线21:00:09为第一次计算模型,21:00:19为第二次计算模型...)
    2、当INTERVAL为0时,每笔TICK计算一次信号,SIG为信号,MODE1为信号确认方式,TIME1信号确认时间,MODE2信号复核方式,TIME2信号复核时间。
    3、通过调整INTERVAL参数,模型可设置不同数据快照频率进行回测。

    注:
    1、写了这个函数以后,模型会按照指令价方式运行。
    2、SIG位置为交易指令,包括BK\SK\BP\SP\BPK\SPK\CLOSEOUT所有指令。
    3、MODE1位置为信号确认方式,有A和B两种:
    A:MODE1为'A'时
      1)当INTERVAL不为0时,出信号后第TIME1个数据时间间隔确认信号下单
      2)当INTERVAL为0时,出信号TIME1秒后确认信号下单
    B:MODE1为'B'时
      1)当INTERVAL不为0时,K线走完前TIME1个时间间隔确认信号下单
      2)当INTERVAL为0时,K线走完前TIME1秒确认信号下单
      3)TIME1=0为K线走完确认信号下单
    4、MODE2位置为信号复核方式,有C,D,E和F四种:
    C:MODE2为'C'时
      1)当INTERVAL不为0时,出信号后第TIME2个数据时间间隔进行信号复核
      2)当INTERVAL为0时,出信号TIME2秒后进行信号复核,TIME2=0为不复核
    D:MODE2为'D'时
      1)当INTERVAL不为0时,K线走完前TIME2个时间间隔进行信号复核
      2)当INTERVAL为0时,K线走完前TIME2秒进行信号复核
      3)TIME2=0为K线走完复核
    E:每一个以小节(包括:商品合约10:15-10:30休盘、11:30-13:30休市、21:00-23:00(或23:30或1:00或2:30)夜盘小节;股指合约11:30-13:00休市)为结束时间的K线提前复核,其他非小节时间结束的K线为K线走完复核。
      1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
      2)当INTERVAL为0时,提前TIME2秒进行信号复核
      3)TIME2=0为K线走完复核
    F:每天以收盘时间为结束时间的K线提前复核,其他以收盘时间为结束时间的K线为K线走完复核
      1)当INTERVAL不为0时,提前TIME2个时间间隔进行信号复核
      2)当INTERVAL为0时,提前TIME2秒进行信号复核
      3)TIME2=0为K线走完复核
    5、INTERVAL代表数据时间间隔
      1)支持0、3、5、10四个值,不支持变量。
      2)3、5、10分别代表用每隔3秒、5秒、10秒,计算一次模型
      3)参数为3、5、10 ,回测速度可提升3-10倍,回测精度稍差
      4)参数为0的时 为每笔TICK计算一次模型
      5)一个模型中只能写入一个INTERVAL值
    6、模型中写入该函数,一根K线只能有一个信号。
    7、CHECKSIG、MULTSIG、MULTSIG_MIN、CHECKSIG_MIN函数不能同时出现在一个模型中
    8、该函数只允许在模组中使用,不支持加载到盒子。
    9、未使用该函数的指令,默认的信号执行方式为K线走完确认信号下单。
    10、TIME1,TIME2非0时,该函数不支持加载到日线以上的周期中使用。
    例如:量能周期出信号TIME1个数据时间间隔下单, K线走完前TIME2个数据时间间隔复核之类的都不支持
    11、该函数不支持加载到量能周期使用。
    12、如果用该函数设置了信号复核,复核时产生了信号消失,会进行信号消失处理。信号消失的处理方式:
    还没有成交时的信号消失处理-撤单
    BK、SK信号消失处理-平仓
    BPK、SPK信号消失处理-平仓+恢复建仓
    BP、SP信号消失处理-恢复建仓

    例:
    C>O,BK;
    C<O,SP;
    CHECKSIG(BK,'A',5,'D',0,3);//设置BK信号,出信号后第5个数据时间间隔确认下单(例如21:00:02满足条件,出现信号后第5次计算信号,即21:00:17时确认信号下单),K线走完复核。每隔3秒计算一次信号。
    CHECKSIG(SP,'A',0,'C',10,3);//设置SP信号,根据数据时间间隔计算出信号后立即下单(例如21:00:02满足条件,出现信号后立即下单),下单后第10个数据时间间隔复核(例如21:00:17时确认信号下单,则确认下单后第10次计算模型,即21:00:47进行信号复核)。每隔3秒计算一次信号。
    AUTOFILTER;

    (来自旧论坛客户,xdzgmc)

     

  • MC回复讨论一:

    文华的功能比较模块化,缺乏灵活性,不易更改;而MC更具灵活性,您说的这个函数的功能,下面我会一一对应到MC上去:
    第一、开启bar内模式可以每笔tick进行信号计算;bar内的时间可以通过q_time_s(用于实时交易中,不能用于回测中)和time_s(用于回测中,需要策略属性中设置一下允许访问bar内时间)。

    第二、开启bar内模式下,每笔tick都进行信号计算,可以使用”buy next bar at market;“进行bar内实时下单,条件满足就下单,当然也可以通过变量控制进行延迟下单;在bar内模式下,若想在当根bar收盘时下单可以使用”buy this bar at close;“,这里对于this bar 和next bar的区别请需要看一下帖子http://forums.icetech.com.cn/for ... &extra=page%3D2

    第三、开启bar内模式下,可以通过精细回测,关于精细回测您需要在策略属性中设置一下回测精度(精度可以逐笔,也可以逐秒等等);您可以看一下这个帖子http://forums.icetech.com.cn/for ... &extra=page%3D1

    第四、关于K线复核;在开启bar内模式下,在每笔tick进行信号确认,信号确认的时候同时也会信号复核(对于条件单,如果未成交的条件单当前条件不再满足就会自动撤单),当然您也可以通过MC内置的关键字对图表的的部位、手数、方向等信息进行实时的确认,确认的时间点也可以自行确定。


    以上涉及的太多了,一次没有办法说的太清楚,您需要一步步进行深入的学习和研究。

     

  • MC回复讨论二:

    @matata2020

    对于您说的公式编译器死机的问题,可能是其它问题,您需要在MC官方QQ群进行咨询!

    开启bar内模式并且使用精细资料占用的资源比其它情境下更多

 

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

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


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

相关文章

    没有相关内容