Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教一下日内操作的程序编写问题的回复

1楼
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
2楼
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换掉.

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

3楼
admin 发表于:2010/7/1 11:08:54

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

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

4楼
活不明白 发表于:2010/7/1 12:03:21
在那里加入呢???????
共4 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04492 s, 3 queries.