以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教版主,公式运行结果与预期不符,问题出在哪里?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=2134)

--  作者:jianglq
--  发布时间:2010/7/15 11:35:20
--  请教版主,公式运行结果与预期不符,问题出在哪里?

后台交易公式如下:

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 - 已撤单报单被拒绝不被支持的报单类型


 

请帮忙找一下原因,我用综合交易平台的模拟交易系统做测试


 


--  作者:jianglq
--  发布时间:2010/7/15 15:34:41
--  

第一个问题搞明白了,在后台交易时holding=0。应该用TBuyHolding或TSellHolding

 


--  作者:admin
--  发布时间:2010/7/15 16:14:28
--  

问题两点:

1、holding=0,使用的图表交易持仓函数,导致TBUY(BOPCON的信号检测失误,导致锁仓出现

2、LIMIT为BUY等图表显示系统,TBUY等后台交易控制符应为LMT