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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 帮忙看下代码,怎么运行有问题的?

   

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


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

主题:帮忙看下代码,怎么运行有问题的?

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


加好友 发短信
等级:标准版用户 帖子:109 积分:0 威望:0 精华:0 注册:2015/12/28 9:15:40
帮忙看下代码,怎么运行有问题的?  发帖心情 Post By:2016/1/24 16:10:51    Post IP:218.78.197.154[只看该作者]

//声明参数
INPUT:ATRLEN(20,15,30,1) ,总资金(20,0,10000,10);
variable: position := 0 ;
MA4:=MA(C,4);//均线定义
MA9:=MA(C,9);
MA18:=MA(C,18);

//声明变量
NT := 1 ; //调试信息带时间戳


VARIABLE : _DEBUG = 1 ; //是否输出前台交易指令
VARIABLE : _TDEBUG = 1 ; //是否输出后台交易指令
VARIABLE : _DEBUGOUT = 0 ; //是否输出后台交易的调试信息

VARIABLE : MYENTRYPRICE =0 ; //开仓价格
VARIABLE : MYEXITPRICE =0 ; //平仓价格

VARIABLE : POSITION=0 ; //仓位状态
//0表示没有仓位,1表示持有多头, -1表示持有空头

AVGTR :=  REF(MA(TR,ATRLEN),1) ;
手数 := FLOOR(总资金*200/(AVGTR*MULTIPLIER ));//计算应开手数


//开始执行时 初始化数据
IF BARPOS=1 THEN BEGIN;
//POSITION := 0 ;

END //IF

//如果当前是没有持仓的状态
IF POSITION=0 AND H>L THEN BEGIN;

//建立多头进场条件
   开多条件:= C>MA4 and MA4>MA9 and MA9>MA18 and position=0 and 手数> 0;
//多头进场
IF 开多条件 THEN BEGIN
MYENTRYPRICE := IF(OPEN> MA4+MINDIFF ,OPEN , MA4 ) ;
BUY( _DEBUG, 手数,LIMITR,MYENTRYPRICE);
POSITION := 1 ;
N := AVGTR ;
BUYORDERTHISBAR := 1;

END //IF


//建立空头进场条件
开空条件:= C<MA4 and MA4<MA9 and MA9<MA18 and position=0 and 手数> 0 ;
//空头进场
IF 开空条件 THEN BEGIN
MYENTRYPRICE:=IF(OPEN< MA4-MINDIFF ,OPEN , MA4-MINDIFF ) ;
BUYSHORT( _DEBUG, 手数,LIMITR,MYENTRYPRICE);
POSITION := -1 ;
N := AVGTR ;
BUYORDERTHISBAR := 1;

END
END  //IF
//建立多头离场条件
平多条件1:= MA4<MA9 and HOLDING>0;
IF 平多条件1 THEN BEGIN
MYEXITPRICE := IF(OPEN< MA4-MINDIFF ,OPEN , MA4-MINDIFF ) ;
SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE);
POSITION := 0 ;
TURTLEUNITS := 0 ;
END

//建立多头止损条件
平多条件2:= (LOW<MYENTRYPRICE-2*N)  ;

IF 平多条件2 AND POSITION=1 THEN BEGIN
MYEXITPRICE := IF(OPEN<MYENTRYPRICE-2*N ,OPEN ,MYENTRYPRICE-2*N ) ;
MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE);
POSITION := 0 ;
TURTLEUNITS := 0 ;
END


//建立空头离场条件
平空条件1:= MA4>MA9 and HOLDING<0;
IF 平多条件1 THEN BEGIN
MYEXITPRICE := IF(OPEN> MA4+MINDIFF ,OPEN , MA4+MINDIFF ) ;
SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE);
POSITION := 0 ;
END

//建立多头止损条件
平空条件2:= (H>MYENTRYPRICE+2*N)  ;

IF 平空条件2 AND POSITION=1 THEN BEGIN
MYEXITPRICE := IF(OPEN>MYENTRYPRICE+2*N ,OPEN ,MYENTRYPRICE+2*N ) ; MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;
SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE);
POSITION := 0 ;
END
//显示账户状态
CONTINUELINE@ 资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
振幅:N,LINETHICK0;
POS:HOLDING,LINETHICK0;
交易次数:TOTALDAYTRADE, LINETHICK0 ;

IF _DEBUGOUT>0 THEN BEGIN

DEBUGFILE2('C:\DEBUGFILE.TXT','BARPOS=%.0F' ,BARPOS,NT ) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','N=%.2F' ,N ,NT) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','CLOSE=%.2F' ,C ,NT) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','POSITION=%.0F' ,POSITION,NT ) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','TURTLEUNITS=%.0F' ,TURTLEUNITS,NT ) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','MYENTRYPRICE=%.0F' ,MYENTRYPRICE ,NT) ;
DEBUGFILE2('C:\DEBUGFILE.TXT','MYEXITPRICE=%.0F' ,MYEXITPRICE ,NT) ;
END //IF

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;




以上是一个克罗均线的代码,但怎么运行有问题呢,运行下来是只有开仓,然后在最后时间点强制平仓,也就是不会自动平仓。

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/1/25 9:41:52    Post IP:58.246.57.26[只看该作者]

3个错误

1,平空语句全都写成了sell,需要改成sellshort

2,  下单价格不能成交,要在所有的平仓语句最后加上ignorechek,例如:selLshort( _DEBUG ,holding,LIMITR,MYEXITPRICE),IGNORECHECKPRICE;

3.   平空条件的position判断写错了,要写成position=-1



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:标准版用户 帖子:109 积分:0 威望:0 精华:0 注册:2015/12/28 9:15:40
  发帖心情 Post By:2016/1/25 10:34:05    Post IP:114.95.134.239[只看该作者]

第一第二条都改了,第三条,我用的是 HOLDING<0,改好后还是不行,空单不会自动平仓

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/1/25 10:43:34    Post IP:58.246.57.26[只看该作者]

INPUT:ATRLEN(20,15,30,1) ,总资金(20,0,10000,10);
variable: position = 0 ;
MA4:=MA(C,4);//均线定义
MA9:=MA(C,9);
MA18:=MA(C,18);


//声明变量
NT := 1 ;   //调试信息带时间戳

 


VARIABLE : _DEBUG = 1 ;   //是否输出前台交易指令
VARIABLE : _TDEBUG = 1 ;   //是否输出后台交易指令
VARIABLE : _DEBUGOUT = 0 ;   //是否输出后台交易的调试信息


VARIABLE : MYENTRYPRICE =0 ;   //开仓价格
VARIABLE : MYEXITPRICE =0 ;   //平仓价格


VARIABLE : POSITION=0 ;   //仓位状态
//0表示没有仓位,1表示持有多头, -1表示持有空头


AVGTR :=  REF(MA(TR,ATRLEN),1) ;
手数 := FLOOR(总资金*200/(AVGTR*MULTIPLIER ));//计算应开手数

 


//开始执行时 初始化数据
IF BARPOS=1 THEN BEGIN;
   //POSITION := 0 ;


END //IF


//如果当前是没有持仓的状态
IF POSITION=0 AND H>L THEN BEGIN;


   //建立多头进场条件
   开多条件:= C>MA4 and MA4>MA9 and MA9>MA18 and position=0 and 手数> 0;
   //多头进场
 IF 开多条件 THEN BEGIN
   MYENTRYPRICE := IF(OPEN> MA4+MINDIFF ,OPEN , MA4 ) ;   
   BUY( _DEBUG, 手数,LIMITR,MYENTRYPRICE);
   POSITION := 1 ;
   N := AVGTR ;
   BUYORDERTHISBAR := 1;


 END //IF

 


   //建立空头进场条件
 开空条件:= C<MA4 and MA4<MA9 and MA9<MA18 and position=0 and 手数> 0 ;
  
   //空头进场
 IF 开空条件 THEN BEGIN
   MYENTRYPRICE:=IF(OPEN< MA4-MINDIFF ,OPEN , MA4-MINDIFF ) ;   
   BUYSHORT( _DEBUG, 手数,LIMITR,MYENTRYPRICE);
   POSITION := -1 ;
   N := AVGTR ;
   BUYORDERTHISBAR := 1;


 END
  
  
END  //IF
  
   //建立多头离场条件
平多条件1:= MA4<MA9 and HOLDING>0;   
IF 平多条件1 THEN BEGIN
 MYEXITPRICE := IF(OPEN< MA4-MINDIFF ,OPEN , MA4-MINDIFF ) ;   
 SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE),IGNORECHECKPRICE;
 POSITION := 0 ;
 TURTLEUNITS := 0 ;

END


   //建立多头止损条件
平多条件2:= (LOW<MYENTRYPRICE-2*N)  ;
IF 平多条件2 AND POSITION=1 THEN BEGIN
 MYEXITPRICE := IF(OPEN<MYENTRYPRICE-2*N ,OPEN ,MYENTRYPRICE-2*N ) ;   
 MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;   
 SELL( _DEBUG ,holding,LIMITR,MYEXITPRICE),IGNORECHECKPRICE;
 POSITION := 0 ;
 TURTLEUNITS := 0 ;
END

 


//建立空头离场条件
平空条件1: MA4>MA9 and HOLDING<0;   
IF 平多条件1 THEN BEGIN
 MYEXITPRICE := IF(OPEN> MA4+MINDIFF ,OPEN , MA4+MINDIFF ) ;   
 SELLshort( _DEBUG ,holding,LIMITR,MYEXITPRICE),IGNORECHECKPRICE;
 POSITION := 0 ;
END


   //建立多头止损条件
平空条件2: (H>MYENTRYPRICE+2*N)  ;
IF 平空条件2 AND POSITION=-1 THEN BEGIN
 MYEXITPRICE := IF(OPEN>MYENTRYPRICE+2*N ,OPEN ,MYENTRYPRICE+2*N ) ;   
 MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;   
 SELLshort( _DEBUG ,holding,LIMITR,MYEXITPRICE),IGNORECHECKPRICE;
 POSITION := 0 ;
END



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:标准版用户 帖子:109 积分:0 威望:0 精华:0 注册:2015/12/28 9:15:40
  发帖心情 Post By:2016/1/25 11:40:11    Post IP:114.95.134.239[只看该作者]

看运行明细,还是有些问题,比如以下,小时线运行,还有问题,动煤只成交了一笔,TA最后一笔也是异常,其他品种也有TA这样的情况。
时间                   名称          类型        交易价/成本价    交易量    收益          幅度%(不计平仓费用)    资产          最大回撤%
2015/01/12 15:00:00    动力煤连续    开空        472.4            16                                                           0.00
2015/12/31 19:00:00    动力煤连续    强制平仓    305.2            16        267,199.97    35.38                  467,199.97    17.76

时间                   名称       类型        交易价/成本价    交易量    收益         幅度%(不计平仓费用)    资产          最大回撤%
2015/01/09 03:30:00    PTA连续    开空        4650             23                                                          0.00
2015/01/21 15:00:00    PTA连续    平空        4716/4649        23        -7,785.51    -1.44                  192,214.50    11.95
2015/01/21 18:00:00    PTA连续    开多        4718             28                                                          0.00
2015/01/23 03:00:00    PTA连续    平多        4763/4719        28        6,061.99     0.93                   198,276.50    14.48
2015/01/26 03:00:00    PTA连续    开空        4720             21                                                          0.00
2015/02/04 14:00:00    PTA连续    平空        4792/4719        21        -7,686.01    -1.54                  190,590.50    14.48
2015/02/04 15:00:00    PTA连续    开多        4804             17                                                          0.00
2015/02/05 03:00:00    PTA连续    平多        4726/4805        17        -6,732.01    -1.64                  183,858.50    17.52
2015/02/09 02:00:00    PTA连续    开多        4780             24                                                          0.00
2015/02/09 14:00:00    PTA连续    平多        4761/4780        24        -2,424.01    -0.41                  181,434.50    19.84
2015/02/10 14:00:00    PTA连续    开空        4746             29                                                          0.00
2015/02/13 18:00:00    PTA连续    平空        4798/4745        29        -7,786.51    -1.12                  173,648.00    20.75
2015/02/13 19:00:00    PTA连续    开多        4780             29                                                          0.00
2015/02/25 14:00:00    PTA连续    平多        4800/4781        29        2,725.99     0.41                   176,374.00    22.27
2015/03/02 03:00:00    PTA连续    开多        4918             18                                                          0.00
2015/03/04 14:00:00    PTA连续    平多        5034/4919        18        10,331.99    2.35                   186,706.00    22.27
2015/03/05 03:00:00    PTA连续    开空        4964             15                                                          0.00
2015/04/08 18:00:00    PTA连续    平空        5068/4963        15        -7,890.01    -2.11                  178,816.00    22.27
2015/04/08 19:00:00    PTA连续    开多        5058             16                                                          0.00
2015/04/09 15:00:00    PTA连续    平多        4998/5059        16        -4,896.01    -1.20                  173,920.00    22.91
2015/04/10 19:00:00    PTA连续    开空        4936             17                                                          0.00
2015/04/14 02:00:00    PTA连续    平空        5028/4935        17        -7,922.01    -1.88                  165,998.00    23.88
2015/04/14 14:00:00    PTA连续    开多        5040             22                                                          0.00
2015/04/16 03:00:00    PTA连续    平多        5206/5041        22        18,127.99    3.28                   184,126.00    26.40
2015/04/16 14:00:00    PTA连续    开多        5260             17                                                          0.00
2015/04/17 03:30:00    PTA连续    平多        5272/5261        17        917.99       0.22                   185,044.00    26.40
2015/04/20 14:00:00    PTA连续    开多        5308             18                                                          0.00
2015/04/22 15:00:00    PTA连续    平多        5408/5309        18        8,891.99     1.87                   193,936.00    26.40
2015/04/23 02:00:00    PTA连续    开多        5470             18                                                          0.00
2015/04/23 19:00:00    PTA连续    平多        5454/5471        18        -1,593.01    -0.31                  192,343.00    26.40
2015/04/24 18:00:00    PTA连续    开空        5437             17                                                          0.00
2015/05/06 14:00:00    PTA连续    平空        5530/5436        17        -8,007.01    -1.72                  184,336.00    26.40
2015/05/06 15:00:00    PTA连续    开多        5580             17                                                          0.00
2015/05/07 14:00:00    PTA连续    平多        5524/5581        17        -4,862.01    -1.01                  179,474.00    26.40
2015/05/08 03:30:00    PTA连续    开空        5442             16                                                          0.00
2015/12/31 19:00:00    PTA连续    强制平仓    4462             16        78,303.99    18.00                  257,778.00    26.40



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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/1/25 13:24:39    Post IP:58.246.57.26[只看该作者]

1.补充下数据

2.最后一笔是强制平仓的,这个没什么问题

 

 



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:标准版用户 帖子:109 积分:0 威望:0 精华:0 注册:2015/12/28 9:15:40
  发帖心情 Post By:2016/1/25 15:03:52    Post IP:114.95.134.239[只看该作者]

因为是运行小时线,最后一笔持仓时间太长,不太可能,而且看了图形,也不可能持这么长时间的仓。

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/1/25 15:10:42    Post IP:58.246.57.26[只看该作者]

1.中间缺数据,这个要补充5分钟数据

2.中间的行情的确是没有触发开平仓,当然这个可能性很小



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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

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


加好友 发短信
等级:标准版用户 帖子:109 积分:0 威望:0 精华:0 注册:2015/12/28 9:15:40
  发帖心情 Post By:2016/1/25 20:24:01    Post IP:114.95.134.239[只看该作者]

我其他几个策略,也是载小时线上运行,都回测没问题,所以可能不是数据的问题?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/1/26 9:07:39    Post IP:58.246.57.26[只看该作者]

这个只能说明其他品种没缺数据对不对?并不能说明这个品种有数据对不对?
[此贴子已经被作者于2016/1/26 9:07:52编辑过]


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

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

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

 回到顶部
总数 28 1 2 3 下一页