请选择 进入手机版 | 继续访问电脑版

交易量过滤日内模型基础测试

[复制链接]
查看110 | 回复3 | 张孟珂 | 2020-7-10 18:47:21 | 显示全部楼层 |阅读模式
日内模型:
模型1、均线金叉死叉短鱼_日内15M
模型2、DEA线和零轴短鱼_日内5M
测试品种:IF加权、IH加权、IC加权、十债、五债、黄金、白银、沪镍
过滤条件:
交易量
回复

使用道具 举报

张孟珂 | 2020-7-10 18:50:05 | 显示全部楼层
模型1、均线金叉死叉短鱼_日内15M【N1:6】
//一、定义仓位
FUND:=10000000;
LOTS:=INTPART(FUND*0.4/(MARGIN*UNIT*CLOSE+FEE));
//开仓时段
KTIME := BETWEEN(TIME, 0915, 1430) OR BETWEEN(TIME, 2115, 2230);
//平仓时间
PTIME1 := TIME=1445 OR TIME=2245;
//二、定义MACD指标
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  := EMA(DIFF,9);
MACD := 2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
//三、均线指标表达涨跌的方法
MA5 : MA(CLOSE, 5);//周均线
MA20 := MA(CLOSE, 20);//月均线
//1、金叉死叉
JXJC := CROSSUP(MA5, MA20);
JXSC := CROSSDOWN(MA5, MA20);
DYT := JXJC;//此处是定义多鱼头,即是做多的起点
KYT := JXSC;//此处是定义空鱼头,即是做空的起点
//四、定义K线F32上的带鱼短鱼
//1、定义首次开平仓
FBPK := DYT AND COUNT(DYT, BARSLAST(KYT))=1;
FSPK := KYT AND COUNT(KYT, BARSLAST(DYT))=1;
//2、记录首次满足条件的收盘价
BPKC := IF(FBPK , C, REF(C, BARSLAST(FBPK)));
SPKC := IF(FSPK , C, REF(C, BARSLAST(FSPK)));
LEN := CONDBARS(FBPK, FSPK);//最近一次满足首次开平仓之间的周期数
//五、描述均线之鱼【带鱼都是盈利的,短鱼都是亏损的】
//1、带鱼,
DDAI := C>REF(C,LEN) AND FSPK;
KDAI := C<REF(C,LEN) AND FBPK;
//2、短鱼,
DDUAN := C<=REF(C,LEN) AND FSPK;
KDUAN := C>=REF(C,LEN) AND FBPK;
//六、在K线图上画出符合对应条件的形态
DRAWTEXT(DDAI ,H ,'多带'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(DDUAN ,H ,'多短'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(KDAI ,L,'空带'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(KDUAN ,L ,'空短'),VALIGN2,FONTSIZE18,COLORWHITE;
//七、记录带鱼和短鱼的次数
DDAICS := -1*COUNT(DDAI,0);//多带鱼次数
KDAICS := -1*COUNT(KDAI,0);//空带鱼次数
DDUANCS := COUNT(DDUAN ,0);//多短鱼次数
KDUANCS := COUNT(KDUAN ,0);//空短鱼次数
DAIYUCS := DDAICS+KDAICS;//总带鱼次数
DUANYUCS := DDUANCS+KDUANCS;//总短鱼次数
DKDUANYUCS := IF(ABS(DAIYUCS)>REF(ABS(DAIYUCS),1), DUANYUCS, REF(DUANYUCS, BARSLAST((KDAI OR DDAI))));
//当前是带鱼,取短鱼次数,否则取上一次是带鱼时的短鱼次数【当前是带鱼时,短鱼次数不会变化】
DKDAIYUCS := IF(ABS(DUANYUCS)>REF(ABS(DUANYUCS),1), DAIYUCS, REF(DAIYUCS, BARSLAST((DDUAN OR KDUAN))));
//当前是短鱼,取带鱼次数,否则取上一次是短鱼时的带鱼次数【当前是短鱼时,带鱼次数不会变化】
//八、定义开仓条件
//1、定义短鱼的开仓条件【其中:参数N是短鱼/带鱼连续出现的次数】
DUAN_ZDXH := FBPK AND ABS(DUANYUCS-DKDUANYUCS)>=N1;// 短鱼连续出现等于 N1 次
DUAN_ZKXH := FSPK AND ABS(DUANYUCS-DKDUANYUCS)>=N1;// 短鱼连续出现等于 N1 次
//3、定义过滤条件
JYLMA5 := MA(VOL, 5);//交易量周均线
//交易量的均线方向
JYLXS := JYLMA5>REF(JYLMA5, 1);
JYLXX := JYLMA5<REF(JYLMA5, 1);
//定义过滤条件
JYLFL := JYLXS;
JYLSL := JYLXX;
//九、交易的整体逻辑
//1、开仓信号
//逻辑:放量  缩量
DUAN_ZDXH AND KTIME AND JYLFL, BPK(LOTS);//做多     AND KTIME
DUAN_ZKXH AND KTIME AND JYLSL, SPK(LOTS);//做空     AND KTIME
//2、平仓条件
DYT AND SKVOL>0, BP(SKVOL);
KYT AND BKVOL>0, SP(BKVOL);
//下午收盘前或者夜盘11点前5分钟,把仓位平掉,仓位不隔夜
PTIME1, CLOSEOUT;

微信图片_20200710190540.png

微信图片_20200710190551.png

微信图片_20200710190558.png


回复

使用道具 举报

张孟珂 | 2020-7-10 18:51:29 | 显示全部楼层
模型2、DEA线和零轴短鱼_日内5M【N1=3】//一、定义仓位
FUND:=10000000;
LOTS:=INTPART(FUND*0.4/(MARGIN*UNIT*CLOSE+FEE));
//开仓时段
KTIME := BETWEEN(TIME, 0905, 1430) OR BETWEEN(TIME, 2105, 2230);
//平仓时间
PTIME1 := TIME=1455 OR TIME=2255;
//二、定义MACD指标
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  := EMA(DIFF,9);
MACD := 2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
//定义DEA线和零轴关系
DEAS0:=CROSSUP(DEA, 0);
DEAX0:=CROSSDOWN(DEA, 0);
DYT:=DEAS0;//此处是定义多鱼头,即是做多的起点
KYT:=DEAX0;//此处是定义空鱼头,即是做空的起点
//四、基础定义
//1、定义首次开平仓
FBPK := DYT AND COUNT(DYT, BARSLAST(KYT))=1;
FSPK := KYT AND COUNT(KYT, BARSLAST(DYT))=1;
//2、记录首次满足条件的收盘价
BPKC := IF(FBPK , C, REF(C, BARSLAST(FBPK)));
SPKC := IF(FSPK , C, REF(C, BARSLAST(FSPK)));
LEN := CONDBARS(FBPK, FSPK);//最近一次满足首次开平仓之间的周期数
//五、描述均线之鱼【带鱼都是盈利的,短鱼都是亏损的】
//1、带鱼,
DDAI := C>REF(C,LEN) AND FSPK;
KDAI := C<REF(C,LEN) AND FBPK;
//2、短鱼,
DDUAN := C<=REF(C,LEN) AND FSPK;
KDUAN := C>=REF(C,LEN) AND FBPK;
//六、在K线图上画出符合对应条件的形态
DRAWTEXT(DDAI ,H ,'多带'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(DDUAN ,H ,'多短'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(KDAI ,L,'空带'),VALIGN2,FONTSIZE18,COLORWHITE;
DRAWTEXT(KDUAN ,L ,'空短'),VALIGN2,FONTSIZE18,COLORWHITE;
//七、记录带鱼和短鱼的次数
DDAICS := -1*COUNT(DDAI,0);//多带鱼次数
KDAICS := -1*COUNT(KDAI,0);//空带鱼次数
DDUANCS := COUNT(DDUAN ,0);//多短鱼次数
KDUANCS := COUNT(KDUAN ,0);//空短鱼次数
DAIYUCS := DDAICS+KDAICS;//总带鱼次数
DUANYUCS := DDUANCS+KDUANCS;//总短鱼次数
DKDUANYUCS := IF(ABS(DAIYUCS)>REF(ABS(DAIYUCS),1), DUANYUCS, REF(DUANYUCS, BARSLAST((KDAI OR DDAI))));
//当前是带鱼,取短鱼次数,否则取上一次是带鱼时的短鱼次数【当前是带鱼时,短鱼次数不会变化】
DKDAIYUCS := IF(ABS(DUANYUCS)>REF(ABS(DUANYUCS),1), DAIYUCS, REF(DAIYUCS, BARSLAST((DDUAN OR KDUAN))));
//当前是短鱼,取带鱼次数,否则取上一次是短鱼时的带鱼次数【当前是短鱼时,带鱼次数不会变化】
//八、定义开仓条件
//1、定义短鱼的开仓条件【其中:参数N是短鱼/带鱼连续出现的次数】
DUAN_ZDXH := FBPK AND ABS(DUANYUCS-DKDUANYUCS)>=N1;// 短鱼连续出现等于 N1 次
DUAN_ZKXH := FSPK AND ABS(DUANYUCS-DKDUANYUCS)>=N1;// 短鱼连续出现等于 N1 次
//2、定义带鱼的开仓条件
//DAI_ZDXH := FBPK AND ABS(DAIYUCS-DKDAIYUCS)>=N1;// 带鱼连续出现等于 N1 次
//DAI_ZKXH := FSPK AND ABS(DAIYUCS-DKDAIYUCS)>=N1;// 带鱼连续出现等于 N1 次
//3、定义过滤条件
JYLMA5 := MA(VOL, 5);//交易量周均线
JYLMA20 := MA(VOL, 20);//交易量月均线
//定义快线慢线
JYLKMS := JYLMA5>JYLMA20;
JYLKMX := JYLMA5<JYLMA20;
//定义过滤条件
JYLFL : JYLKMS;
JYLSL : JYLKMX;
//九、交易的整体逻辑
//1、开仓信号
//逻辑:缩量  缩量
DUAN_ZDXH AND KTIME AND JYLSL, BPK(LOTS);//做多
DUAN_ZKXH AND KTIME AND JYLSL, SPK(LOTS);//做空
//2、平仓条件
DYT AND SKVOL>0, BP(SKVOL);
KYT AND BKVOL>0, SP(BKVOL);
//下午收盘前或者夜盘11点前5分钟,把仓位平掉,仓位不隔夜
PTIME1, CLOSEOUT;


微信图片_20200710190407.png


微信图片_20200710190416.png

微信图片_20200710190426.png





回复

使用道具 举报

张孟珂 | 2020-7-10 18:55:10 | 显示全部楼层
模型1和模型2叠加后:胜率盈亏:0.212
交易次数:1443

微信图片_20200710190004.png



微信图片_20200710190043.png


微信图片_20200710190136.png

回复

使用道具 举报

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

本版积分规则

相关课程推荐
桥博士《MACD指标详解》
为什么我们只用MACD金叉死叉来进行操作效果并不好,学习课程就能在研究MACD指标上少走很多弯路
桥博士《K线形态组合解析》
从理论到实战,让您全面掌握各种K线形态及各种组合,帮您分析梳理大量K线知识让您的投资更游刃有余
桥博士《股票入门基础知识》
从理论到实战,课程包括如何买卖股票、开户流程、交易软件、k线图知识、技术指标、价值投资等新手必备知识

43

主题

237

帖子

785

积分

高级会员

Rank: 4

积分
785
  • 官方论坛

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