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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 高手帮忙调试一下程序

   

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


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

主题:高手帮忙调试一下程序

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


加好友 发短信
等级:新手上路 帖子:34 积分:245 威望:0 精华:0 注册:2011/6/23 11:38:46
高手帮忙调试一下程序  发帖心情 Post By:2011/8/4 11:10:37    Post IP:222.178.118.162[只看该作者]

INPUT:LOTS(1,1,50,1);
long1:=REF(CLOSE>OPEN,1);
long2:=REF(CLOSE<OPEN,1);
long3:=CLOSE>=TENTERPRICE+5*MINDIFF;
//多头开仓
IF long1 THEN
BEGIN
MYPRICE:=OPEN;
TBUY(HOLDING=0,LOTS,LIMITR,MYPRICE)
END

//空头开仓
IF long2 THEN
BEGIN
MYPRICE:=OPEN;
TBUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE)
END

//平仓以及信号延迟确认
SELL1:=false;
IF ISLASTBAR THEN
BEGIN
IF long3 THEN
BEGIN
//将当前信号周期置全局变量数据库
//数据名字前加信号周期,标记周期位置
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
 //读取原有变量的时间,判断是否到延时时间
 SELLTIME1:=EXTGBDATA(CRTEMP);
 SELLTIME2:=TIMETOT0(CURRENTTIME);
 DEBUGOUT('D1 %.0f',SELLTIME1);
 IF SELLTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
 BEGIN
 DEBUGOUT('D2 %.0f',SELLTIME2 - SELLTIME1);
 IF SELLTIME2 - SELLTIME1 > 1 THEN
 BEGIN
 //大于15秒的延迟,表示信号已经得到确认
 SELL1:=TRUE;
 END
 END
 ELSE
 BEGIN
 //第一次信号位置记录
 EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
 END
 END
ELSE
BEGIN
//否则表示信号中间消失了
CRTEMP:='TEMP1'&NUMTOSTR(BARPOS,0);
EXTGBDATASET(CRTEMP,0);
END
END
TSELL(SELL1&&HOLDING>0,0,MKT);
TSELLSHORT(SELL1&&HOLDING<0,0,MKT);

//15秒到时即平仓
IF TENTERBARS()=1 THEN
TSELL(HOLDING>0,0,MKT);
TSELLSHORT(HOLDING<0,0,MKT);

//收盘平仓
IF TIME=151000 THEN
BEGIN
SELL(HOLDING>0,0,LIMITR,OPEN);
SELLSHORT(HOLDING<0,0,LIMITR,OPEN);
END


 回到顶部
帅哥哟,离线,有人找我吗?
fly
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/8/4 11:29:14    Post IP:58.246.57.26[只看该作者]

后台,不是BUY变成TBUY就可以的.

也不是一两句话能说清楚的.

请您仔细参考

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

该帖子的及帖子链接的相关内容

 

推荐您,循序渐进,一步一步来



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
hehhh0327
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:34 积分:245 威望:0 精华:0 注册:2011/6/23 11:38:46
  发帖心情 Post By:2011/8/4 12:38:08    Post IP:222.178.118.162[只看该作者]

这个程序的思想很简单,能不能和您单独联系帮我调试一下

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


加好友 发短信
等级:新手上路 帖子:34 积分:245 威望:0 精华:0 注册:2011/6/23 11:38:46
  发帖心情 Post By:2011/8/4 12:38:56    Post IP:222.178.118.162[只看该作者]

这个程序的思想很简单,能不能和您单独联系帮我调试一下

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/8/4 14:07:02    Post IP:58.246.57.26[只看该作者]

已经在IF08合约1分钟上测试过(K线走完),运行良好

 

//K线走完

 

long:=REF(CLOSE>OPEN,1);
short:=REF(CLOSE<OPEN,1);


//多头开仓
IF long and tHOLDING=0 THEN
BEGIN
TBUY(1,1,LMT,c+2*mindiff);
END

//空头开仓
IF short and tHOLDING=0 THEN
BEGIN
TBUYSHORT(1,1,LMT,c-2*mindiff);
END

 

SELL1:=FALSE;
SELL2:=FALSE;

 

IF ISLASTBAR and tholding>0 and tenterbars>0 THEN
 BEGIN
  IF CLOSE>=TENTERPRICE+5*MINDIFF THEN
   BEGIN
    //将当前信号周期置全局变量数据库
    //数据名字前加信号周期,标记周期位置
    CRTEMP1:='TEMP1'&NUMTOSTR(BARPOS, 0);
    
    //读取原有变量的时间,判断是否到延时时间
    BUYTIME1:=EXTGBDATA('CRTEMP1');
    BUYTIME2:=TIMETOT0(CURRENTTIME);
    
    IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
     BEGIN
      IF BUYTIME2 - BUYTIME1 > 15 THEN
       BEGIN
        //大于15秒的延迟,表示信号已经得到确认
        SELL1:=TRUE;
       END
     END
    ELSE
     BEGIN
      //第一次信号位置记录
      EXTGBDATASET('CRTEMP1',TIMETOT0(CURRENTTIME));
     END
   END
  ELSE
   BEGIN
    //否则表示信号中间消失了
    CRTEMP1:='TEMP1'&NUMTOSTR(BARPOS, 0);
    EXTGBDATASET('CRTEMP1',0);
   END
 END

 

IF ISLASTBAR and tholding<0 and tenterbars>0 THEN
 BEGIN
  IF CLOSE<TENTERPRICE-5*MINDIFF THEN
   BEGIN
    //将当前信号周期置全局变量数据库
    //数据名字前加信号周期,标记周期位置
    CRTEMP2:='TEMP1'&NUMTOSTR(BARPOS, 0);
    
    //读取原有变量的时间,判断是否到延时时间
    BUYTIME1:=EXTGBDATA('CRTEMP2');
    BUYTIME2:=TIMETOT0(CURRENTTIME);
    
    IF BUYTIME1 > 1 THEN //第一次信号的原数据库读取会得到0值
     BEGIN
      IF BUYTIME2 - BUYTIME1 > 15 THEN
       BEGIN
        //大于15秒的延迟,表示信号已经得到确认
        SELL2:=TRUE;
       END
     END
    ELSE
     BEGIN
      //第一次信号位置记录
      EXTGBDATASET('CRTEMP2',TIMETOT0(CURRENTTIME));
     END
   END
  ELSE
   BEGIN
    //否则表示信号中间消失了
    CRTEMP2:='TEMP1'&NUMTOSTR(BARPOS, 0);
    EXTGBDATASET('CRTEMP2',0);
   END
 END
 
TSELL(SELL1,1,MKT);
TSELLSHORT(SELL2,1,MKT);



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部