以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教一下日内操作的程序编写问题的回复  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=1965)

--  作者:admin
--  发布时间:2010/6/27 23:17:49
--  请教一下日内操作的程序编写问题的回复
日内操作
使用周期:1分钟
以当天第一个30分钟开始,当价格突破前面30分钟最高点时做多,当价格跌破前面30分钟最低点时做空,当天14:58分钟全部平仓出局的程序是不是这样编写的:
但我问什么测试不了呢?问题出在哪里?

INPUT:NMIN(30,10,60,10);   
INPUT:NOFFSET(3,1,20,1);    
INPUT:LOTS(1,1,1000,1);     
CYC:=BARSLAST(DATE>REF(DATE,1))+1;                                                  
HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC));      
LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC));        
IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND THOLDING<=0  THEN 
BEGIN
MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;                                    
IF OPEN > MYPRICE THEN                                                                           
BEGIN
MYPRICE: = OPEN;
TSELLSHORT(THOLDING<0,0,LIMITR,MYPRICE);                                               
TBUY(THOLDING=0,LOTS,LIMITR,MYPRICE);                                                    
END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND THOLDING>=0  THEN     
BEGIN
MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
IF OPEN < MYPRICE THEN
BEGIN
MYPRICE: = OPEN;
TSELL(HOLDING>0,0,LIMITR,MYPRICE);
TBUYSHORT(THOLDING=0,LOTS,LIMITR,MYPRICE);
END
END
IF TIME >= 145900 THEN                                                                              
BEGIN
TSELL(THOLDING>0,0,LIMITR,OPEN);
TSELLSHORT(THOLDING<0,0,LIMITR,OPEN);
END

--  作者:admin
--  发布时间:2010/6/27 23:25:26
--  

INPUT:NMIN(30,10,60,10);   
INPUT:NOFFSET(3,1,20,1);    
INPUT:LOTS(1,1,1000,1);     
CYC:=BARSLAST(DATE>REF(DATE,1))+1;                                                  
HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC));      
LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC));        
IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND THOLDING<=0  THEN 
BEGIN
MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;                                    
IF OPEN > MYPRICE THEN                                                                           
BEGIN
MYPRICE: = OPEN;
TSELLSHORT(THOLDING<0,0,LMT,MYPRICE);                                               
TBUY(THOLDING=0,LOTS,LMT,MYPRICE);                                                    
END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND THOLDING>=0  THEN     
BEGIN
MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
IF OPEN < MYPRICE THEN
BEGIN
MYPRICE: = OPEN;
TSELL(THOLDING>0,0,LMT,MYPRICE);
TBUYSHORT(THOLDING=0,LOTS,LMT,MYPRICE);
END
END
IF TIME >= 145900 THEN                                                                              
BEGIN
TSELL(THOLDING>0,0,LMT,OPEN);
TSELLSHORT(THOLDING<0,0,LMT,OPEN);
END

 

大体问题没有,只是注意TBUY等指令是LMT指令,个别THOLDING换掉.

此外,后台自动交易的公式,无法在程式化交易评测里进行测试


--  作者:admin
--  发布时间:2010/7/1 11:08:54
--  

TBUY等后台自动交易函数不会再同周期反复开仓

如果你希望仓位不会被日后的周期反复开仓,那么只要加入THOLDING>0等等条件就可以了,目前这个系统已经能达到目的


--  作者:活不明白
--  发布时间:2010/7/1 12:03:21
--  
在那里加入呢???????