看大盘买个股测试代码

[复制链接]
查看895 | 回复6 | 张孟珂 | 2020-5-14 00:33:07 | 显示全部楼层 |阅读模式
看大盘买个股测试:
1)调用上证指数的海龟交易系统去对“沪深300-8字结尾”的60只股票,做组合回测;

2)调用上证指数的海龟交易系统去对换手在前15名的股票,进行组合回测,且每只股票的仓位为动态权益的40%;
3)对第二个测试中的15只股票进行组合回测,且每只股票的仓位是动态权益的80%;
回复

使用道具 举报

张孟珂 | 2020-5-14 00:33:51 | 显示全部楼层
//海龟系统之调用上证相关数据
CC:=C;
HH:=H;
LL:=L;
//一、计算ATR
TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR,20);

将该楼层的代码复制,另存为海龟系统之调用上证相关数据
如下图所示:

微信图片_20200515182234.png

回复

使用道具 举报

张孟珂 | 2020-5-14 00:36:04 | 显示全部楼层
//海龟20日55日股票组测试//海龟交易系统20日+55日突破,过滤开仓信号+止损

#CALL [999001,海龟系统之调用上证相关数据]AS VAR1     // 调用上证指数数据
#CALL [999001,海龟系统之调用上证相关数据]AS VAR2
#CALL [999001,海龟系统之调用上证相关数据]AS VAR3
#CALL [999001,海龟系统之调用上证相关数据]AS VAR4
C1 := VAR1.CC;//上证收盘价
H1 := VAR2.HH;//上证最高价
L1 := VAR3.LL;//上证最低价
ATR := VAR4.ATR;//上证ATR
//一、计算 个股的 ATR
TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
GGATR : MA(TR,20);
//二、定义高点低点、突破高点低点
H20 := HV(H1, 20);//20日高点
L20 := LV(L1, 20);//20日低点
H10 := HV(H1, 10);//10日高点
L10 := LV(L1, 10);//10日低点
H55 := HV(H1, 55);//55日高点
TPH20 := CROSSUP(C1, H20);
TPH10 := CROSSUP(C1, H10);
DPL20 := CROSSDOWN(L1, L20);
DPL10 := CROSSDOWN(L1, L10);
TPH55 := CROSSUP(C1, H55);
DRAWTEXT(TPH20 ,H ,'20高'), VALIGN2, FONTSIZE20, COLORWHITE;
DRAWTEXT(DPL10 ,L ,'10低'), VALIGN2, FONTSIZE20, COLORWHITE;
DRAWTEXT(TPH55 ,H+60 ,'55高'), VALIGN2, FONTSIZE20, COLORWHITE;
DRAWTEXT(DPL20 ,L-60 ,'20低'), VALIGN2, FONTSIZE20, COLORWHITE;
//三、记录上突破、下跌破次数
TPH20CS := COUNT(TPH20, 0);//记录向上突破20日的次数
DPL10CS := COUNT(DPL10, 0);//记录向下跌破10日的次数
DPL20CS := COUNT(DPL20, 0);
DPL10CSS := IF(TPH20, DPL10CS, REF(DPL10CS, BARSLAST(TPH20)));//判断这次突破20日和上次突破20日之间是否有跌破10日低点
TPH20CSS := IF(DPL10, TPH20CS, REF(TPH20CS, BARSLAST(DPL10)));//判断这次跌破10日和上次跌破10日之间是否有突破20日高点
DPL20CSS := IF(TPH55, DPL20CS, REF(DPL20CS, BARSLAST(TPH55)));//判断这次突破55日和上次突破55日之间是否有跌破20日低点
//四、记录符合条件的位置上的收盘价
//1、记录符合平仓条件位置上的收盘价
//如果当前是跌破10日低点,且上次突破20日高点之后没有跌破10日低点,就记录下当前的收盘价
PC := IF(DPL10 AND COUNT(DPL10, BARSLAST(TPH20))=1, C1, REF(C1, BARSLAST(DPL10 AND COUNT(DPL10, BARSLAST(TPH20))=1)));
//2、记录符合开仓条件位置上的收盘价
//如果当前是突破20日高点,同时和上一次突破20日高点之间有发生跌破,则记录当前的收盘价 //DPL10CS>DPL10CSS
KC := IF(TPH20 AND DPL10CS>REF(DPL10CSS, 1), C1, REF(C1, BARSLAST(TPH20 AND DPL10CS>REF(DPL10CSS, 1))));
KC5 := IF(TPH55 AND DPL20CS>REF(DPL20CSS, 1), C1, REF(C1, BARSLAST(TPH55 AND DPL20CS>REF(DPL20CSS, 1))));
//定义20日突破的止损平仓条件
ZSJ := KC-2*ATR;
ZS55 := CROSSDOWN(L1, KC5-2*ATR);
//定义个股的止损平仓价
GGZSJ : BKPRICE-2*GGATR;
DRAWICON(CROSSDOWN(L, GGZSJ) ,H ,'IC01');
//五、判断上次符合开仓平仓条件下,如果开仓,是否是盈利的
YK := IF((PC-KC)>0, 1, -1);
//六、定义开平仓条件
//1、定义20日开仓条件
ZDXH20 := TPH20 AND DPL10CS>REF(DPL10CSS, 1) AND REF(YK, 1)<0;
//2、定义20日平仓条件
PDXH20 := DPL10 && COUNT(DPL10, BARSLAST(TPH20 AND DPL10CS>REF(DPL10CSS, 1) AND REF(YK, 1)<0))=1 && L1<L10 && L1>L20;
//3、定义55日开仓条件
ZDXH55 := TPH55;
//4、定义55日平仓条件
PDXH55 := BKVOL>0 && DPL20;
//定义止损平仓条件
ZSPD := BKVOL>0 && CROSSDOWN(C1, ZSJ);//上证的止损平仓条件
GGZS := BKVOL>0 && CROSSDOWN(C, GGZSJ);//个股的止损平仓条件
//七、定义仓位
LOTS := INTPART(MONEYTOT*N1 / C /100)*100;
LOTS1 := INTPART(MONEYTOT*N1 / C /100)*100;
//八、定义开平仓逻辑
//1、开仓信号
ZDXH20 && H20<>H55, BK(LOTS);
//判断上一次开仓是突破20日开的仓位还是突破55日开的仓位
//如果是根据突破20日开的仓位,就把仓位记录下来
LOT20 := IF(ZDXH20 && H20<>H55, LOTS, REF(LOTS, BARSLAST(ZDXH20 && H20<>H55)));
ZDXH55 && H20<>H55, BK(LOTS1);//只突破55日高点
ZDXH20 && ZDXH55, BK(2*LOTS);//突破突破20日和55日
ZDXH55 && H20=H55, BK(LOTS1);//突破55日
//个股的止损平仓条件
GGZS, SP(BKVOL);
//2、止损平仓
ZS55, SP(BKVOL);
ZSPD, SP(LOT20);
ZSPD AND L1>(KC5-2*ATR), SP(BKVOL/2);
//3、平仓信号
PDXH20, SP(LOT20);
DPL10 && L1>L20 && COUNT(DPL10, BARSLAST(ZDXH20 && ZDXH55))=1, SP(BKVOL/2);
PDXH55, SP(BKVOL);


回复

使用道具 举报

春江 | 2020-5-14 13:59:03 | 显示全部楼层
#CALL [999001,海龟系统之调用上证相关数据]AS VAR1     // 调用上证指数数据
#CALL [999001,海龟系统之调用上证相关数据]AS VAR2
#CALL [999001,海龟系统之调用上证相关数据]AS VAR3
#CALL [999001,海龟系统之调用上证相关数据]AS VAR4

这一部分代码在哪里找到?
回复

使用道具 举报

西瓜 | 2020-5-15 17:30:58 | 显示全部楼层
但数据是亏的?

1589534821(1).png
1589534821(1).png
回复

使用道具 举报

也无风雨也无晴 | 2020-5-18 20:36:42 | 显示全部楼层
     是吧沙发和板凳两部分合起来,才能测试?公式语句测试出现,“#CALL语句不能引用模型本身!啥意思?
回复

使用道具 举报

张孟珂 | 2020-5-20 08:58:49 | 显示全部楼层
沙发和板凳两部分代码要分开做测试,存放沙发部分代码的时候,命名要按照指示的去取名
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

媒体报道
再次反包测试
心怡再次反包测试
1.今阴昨阳 做多出a平 今阳昨阴 做空出v平
反包测试
心怡反包测试
反包:今日K线H>昨日K线H 且今日K线L
如何抄在针尖上?
刘昱妗如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,
交易模型测试库
宇晨交易模型测试库
目录 1.MACD日线 2.海6日线3.海龟S1日线 4.海龟S2日线
关于调delta的研究
刘昱妗关于调delta的研究
调备兑时间点 早晨9点,下午14:30,晚上21点 12.9 夜盘调delta 纸浆成交量为0 delta
文华各分区测试
宇晨文华各分区测试
////一楼////
test1
admintest1
test1
test1
admintest1
test1
相关课程推荐
再次反包测试
1.今阴昨阳 做多出a平 今阳昨阴 做空出v平
反包测试
反包:今日K线H>昨日K线H 且今日K线L
如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,只要死磕这招盈亏比极

43

主题

235

帖子

799

积分

宽论高级会员

Rank: 4

积分
799
  • 官方论坛

    提供最新 Discuz! 产品新闻、软件下载与技术交流