ho1:stkindiex(stklabel,'策略1工业硅.ho',0,6,-1,500); ho2:stkindiex(stklabel,'策略2工业硅.ho',0,6,-1,500); //上一根k线的理论持仓 ho:ho1+ho2; ho6:stkindiex(stklabel,'策略1工业硅.ho',0,6,0,500); ho7:stkindiex(stklabel,'策略2工业硅.ho',0,6,0,500); //集合竞价时候,我们直接对比实际持仓和当前的理论持仓。因为这时候新的K线其实没有生成.这时候的理论持仓其实是前面已经确定的历史的理论持仓,可以直接操作的 //当前K线理论持仓 hc:ho6+ho7; //账户多头持仓 tbuyho:tbuyholdingex('',stklabel,1); //账户空头持仓 tsellho:tsellholdingex('',stklabel,1); //是否有未成交单,返回1表示有未成交 is_order:tglobalsubmitex(0,'',stklabel,0); //如果当前品种有挂单就不执行 if is_order then exit; //集合竞价时间 请根据品种自行配置。必须是北京时间,不是金字塔时间。夜盘205500-205900,白盘085500-085900,中金所092500-092900 isjh:currenttime>085500 andcurrenttime<085900; //注意报单价,如果不合理有可能不成交,目前是采用基于对手价超价报单(涨跌停价格取不到,只能用盘口对手价操作),我改为前一日结算价加减一个最小变动价位。若不成交,则连续竞价前撤单,之后市价发单 if isjh then begin //多头部分 ifhc>=0 and tsellho>0 then tsellshort(1,tsellho,lmt,DYNAINFO(62)*(1+0.05)-mindiff); //理论持仓大于0,补仓 ifhc>0 and hc>tbuyho then begin tbuy(1,hc-tbuyho,lmt,DYNAINFO(62)*(1+0.05)-mindiff); end //理论持仓大于0,减仓 ifhc>0 and hc<tbuyho then begin tsell(1,tbuyho-hc,lmt,DYNAINFO(62)*(1-0.05)+mindiff); end //空头部分 ifhc<=0 and tbuyho>0 then tsell(1,tbuyho,lmt,DYNAINFO(62)*(1-0.05)+mindiff); //理论持仓小于0,补仓 ifhc<0 and abs(hc)>tsellho then begin tbuyshort(1,abs(hc)-tsellho,lmt,DYNAINFO(62)*(1-0.05)+mindiff); end //理论持仓小于0,减仓 ifhc<0 and abs(hc)<tsellho then begin tsellshort(1,tsellho-abs(hc),lmt,DYNAINFO(62)*(1+0.05)-mindiff); end end //集合竞价申报时间结束,时间一到,撤掉所有挂单 TCANCEL (currenttime>085930 andcurrenttime<085935,0); //连续交易阶段.和集合竞价阶段谁先谁后顺序没有关系。因为单品种运行,没有加 and currenttime>=090000,中间代码在此处省略 if not(isjh) then begin
省略 end
|