欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教一下日内操作的程序编写问题的回复

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有6645人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
请教一下日内操作的程序编写问题的回复  发帖心情 Post By:2010/6/27 23:17:49    Post IP:112.64.159.158[只看该作者]

日内操作
使用周期: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/6/27 23:25:26    Post IP:112.64.159.158[只看该作者]

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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/7/1 11:08:54    Post IP:58.246.57.26[只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
活不明白
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:10 积分:132 威望:0 精华:0 注册:2010/6/24 19:40:48
  发帖心情 Post By:2010/7/1 12:03:21    Post IP:183.32.56.36[只看该作者]

在那里加入呢???????

 回到顶部