看大盘买个股测试代码

[复制链接]
查看1047 | 回复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 | 显示全部楼层
沙发和板凳两部分代码要分开做测试,存放沙发部分代码的时候,命名要按照指示的去取名
回复

使用道具 举报

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

本版积分规则

媒体报道
MGCA小组——记录一下,一起并肩作战的岁月
桥博士MGCA小组——记录一下,一起并肩作战的岁月
2024年暑假开始,到2026年寒假,才开始收尾,团队工作逐渐减少,短期内也不再扩招论文
智能量化交易策略的研究_郑泽涛-博士论文-电子科技大
桥博士智能量化交易策略的研究_郑泽涛-博士论文-电子科技大
投资组合管理(Portfolio Management,PM)是指通过投资策略、投资组合来有效管理大规模
72小时量化入门理论篇
刘昱妗72小时量化入门理论篇
72小时量化入门理论篇
世界上最赚钱的对冲基金是怎么炼成的?
admin世界上最赚钱的对冲基金是怎么炼成的?
如果问你,世界上最赚钱的对冲基金是谁?你可能会想到: 但答案可能出乎意料,是城堡
72小时量化入门实战篇
刘昱妗72小时量化入门实战篇
72小时量化入门实战篇
2026GAN论文
桥博士2026GAN论文
被引用最多的GAN论文 毫无疑问,头把交椅属于 Goodfellow 因为真是久仰大名如雷贯耳
大论文配图
刘昱妗大论文配图
大论文所有配图
论文撰写/整合智能体
刘昱妗论文撰写/整合智能体
相关课程推荐
K线形态组合解析
k线图基础知识怎么学? 报名宽论VA鱼识别课
没有人可以做万能交易者,但通过不断学习吸收知识从而有一套属于自己交易系统的人,就是走向了盈利的大道。
90%的时间在研究大盘指数,9.9元学习宽论VA
一买就跌,一卖就涨? 股市七亏二平一赚,怎样才能成为赚钱的10%? 看准大盘胜算过半,炒股新手也能掌握的V

43

主题

192

回帖

799

积分

宽论高级会员

积分
799
  • 官方论坛

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