等级: 专业版
- 注册:
- 2024-6-21
- 曾用名:
|
楼主 |
发表于 2025-1-6 11:40
|
显示全部楼层
ho6:stkindiex(stklabel,'策略1碳酸锂.ho',0,6,0,500);
ho7:stkindiex(stklabel,'策略2碳酸锂.ho',0,6,0,500);
//集合竞价时候,我们直接对比实际持仓和当前的理论持仓。因为这时候新的K线其实没有生成.这时候的理论持仓其实是前面已经确定的历史的理论持仓,可以直接操作的
//当前K线理论持仓,若需要手动设云条件单,记录hc持仓与账户实际持仓对比即可
hc:ho6+ho7;
//账户多头持仓
tbuyho:tbuyholdingex('',stklabel,1);
//账户空头持仓
tsellho:tsellholdingex('',stklabel,1);
//是否有未成交单,返回1表示有未成交
is_order:tglobalsubmitex(0,'',stklabel,0);
//如果当前品种有挂单就不执行
if is_order then exit;
cd:CLOSETIME(4)=CLOSETIME(0);//返回1表示有夜盘,否则没夜盘。仅限国内期货品种
//集合竞价判断
tcon1:=currenttime>085600 and currenttime<085800;//无夜盘品种
tcon2:=currenttime>205600 and currenttime<205800;//有夜盘品种
tcon3:=currenttime>092600 and currenttime<092800;//中金所品种
集合竞价:if(cd,tcon2,if(LOWERSTR(MARKETLABEL)='zj',tcon3,tcon1));
//引用昨结算指标里的仅适用1分钟上的ztj和dtj,DYNAINFO(210)获得没问题,若DYNAINFO(54)涨停价、DYNAINFO(55)跌停价、DYNAINFO(62)昨结算价完全能取到,就不需引用了。最少600根
主力ztj:=stkindiex(DYNAINFO(210),'昨结算指标.ztj',0,1,0,600);
主力dtj:=stkindiex(DYNAINFO(210),'昨结算指标.dtj',0,1,0,600);
//注意报单价,如果不合理有可能不成交,涨跌停价格可能取不到,DYNAINFO(62)昨结算价也可能取不到,只能自己计算,可以改为涨跌停价格-1个最小变动,防止四舍五入。若不成交,则只能连续交易阶段撤单,之后市价发单
if 集合竞价 then
begin
//多头部分
if hc>=0 and tsellho>0 then tsellshort(1,tsellho,lmt,主力ztj);
//理论持仓大于0,补仓
if hc>0 and hc>tbuyho then
begin
tbuy(1,hc-tbuyho,lmt,主力ztj);
end
//理论持仓大于0,减仓
if hc>0 and hc<tbuyho then
begin
tsell(1,tbuyho-hc,lmt,主力dtj);
end
//空头部分
if hc<=0 and tbuyho>0 then tsell(1,tbuyho,lmt,主力dtj);
//理论持仓小于0,补仓
if hc<0 and abs(hc)>tsellho then
begin
tbuyshort(1,abs(hc)-tsellho,lmt,主力dtj);
end
//理论持仓小于0,减仓
if hc<0 and abs(hc)<tsellho then
begin
tsellshort(1,tsellho-abs(hc),lmt,主力ztj);
end
end |
|