后台交易公式如下:
variable:constract=STKLABEL();
variable:istop=2.0,ihold=5.0;
IF c then begin
istop=5.0;
ihold=5.0;
end;
IF c then begin
istop=1.0;
ihold=1.0;
end;
MA5 : = MA(CLOSE,5);
//开多仓条件:最新价上穿MA5均线
BOPCON:=CROSS(CLOSE ,MA5) AND HOLDING=0;
//平多仓条件:有多头持仓 而且价格下穿5日均线,价格与开仓价之差大于ihold
//或者价格与开仓价之差小于istop
BLIQCON1:=(holding>0) and CROSS( MA5,CLOSE) and ((DYNAINFO(7)-TAVGENTERPRICE)>=ihold);
BLIQCON2:=(holding>0) and ((TAVGENTERPRICE-DYNAINFO(7))>=istop);
BLIQCON:= BLIQCON1 or BLIQCON2;
//开空仓条件:最新价下穿ma5均线且持仓为零
SOPCON:=CROSS(MA5,CLOSE) AND HOLDING=0;
//平空仓条件:有空头持仓,最新价上穿5日均线 ,开仓价-最新价>=ihold
//或者 有空头持仓,最新价-开仓价>=istop 止损
SLIQCON1:=(holding<0) and CROSS(CLOSE,MA5) and ((TAVGENTERPRICE-DYNAINFO(7))>=ihold);
SLIQCON2:=(holding<0) and ((DYNAINFO(7)-TAVGENTERPRICE)>=istop);
SLIQCON:= SLIQCON1 or SLIQCON2;
TSELLSHORT(SLIQCON,1,LIMIT,DYNAINFO( 21));
TBUY(BOPCON,1,LIMIT,DYNAINFO( 21));
TSELL(BLIQCON,1,LIMIT,DYNAINFO( 20));
TBUYSHORT(SOPCON ,1 ,LIMIT,DYNAINFO( 20));
运行结果存在以下问题:
问题1、对ru1011品种,开空仓之后,会再开多仓而不是平空仓,造成锁仓
问题2、对IF1007品种,委托价格总是0.0。交易监控中看到如下信息:
2010-07-15 11:25:17
352889 : IF1007 - 已报单 1 价格:0.0 开 卖
2010-07-15 11:25:18
352889 : IF1007 - 已撤单报单被拒绝不被支持的报单类型
请帮忙找一下原因,我用综合交易平台的模拟交易系统做测试
第一个问题搞明白了,在后台交易时holding=0。应该用TBuyHolding或TSellHolding
问题两点:
1、holding=0,使用的图表交易持仓函数,导致TBUY(BOPCON的信号检测失误,导致锁仓出现
2、LIMIT为BUY等图表显示系统,TBUY等后台交易控制符应为LMT