上升三法k线组合形态测试和代码版本汇总

[复制链接]
查看2343 | 回复5 | 张孟珂 | 2020-4-10 17:48:43 | 显示全部楼层 |阅读模式
上升三法的形态特征

1) 定义上升三法的具体形态

A. 形态条件1
文字描述:首先出现一根长长的蜡烛线;
量化定义:第一天k线的实体长度>0.5*影线长度,且影线长度>0.5*ATR;
(为什么用ATR:《ATR的正确使用方法-动态度量衡》)
B. 形态条件2
文字描述:当前k线是长长的蜡烛线
量化定义:第一天k线的实体长度>0.5*影线长度,且影线长度>0.5*ATR
C. 形态条件3
文字描述:中间小k线依次下降;
量化定义:REF(C,4)>REF(C,3) && REF(C,4)>REF(C,2) && REF(C,4)>REF(C,1);
D. 形态条件4
文字描述:最后一根k线的收盘价大于前一根k线的收盘价 & 最后一根k线的开盘价大于前一根k线的开盘价;
量化定义:C>REF(C,4) && O>REF(C,1);

2) 定义测试的买卖逻辑:
A. 测试的买入条件:出现上升三法形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

回复

使用道具 举报

张孟珂 | 2020-4-17 11:21:49 | 显示全部楼层
测试一【上升三法基础测试】
【测试逻辑】
A. 测试的买入条件:出现上升三法形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

【测试代码】【N2=0.5】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义前4根大阳线
REF_YANG:=REF(k线ST,4)>REF(YXCD,4)*N2 && REF(YXCD,4)>N2*REF(ATR,4);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的5根k线的排列形态
SHSFk线IAN:= REF(ISUP,4) && REF(C,4)>REF(C,3) && REF(C,4)>REF(C,2) && REF(C,4)>REF(C,1) && ISUP && C>REF(C,4) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

回复

使用道具 举报

张孟珂 | 2020-4-17 18:18:00 | 显示全部楼层
测试二【上升三法改变k线数量测试】
【测试逻辑】
A. 测试的买入条件:出现上升三法形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

【测试代码】【N2=0.5】【k线数量为4】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义第一根大k线
REF_YANG:=REF(k线ST,3)>REF(YXCD,3)*N2 && REF(YXCD,3)>N2*REF(ATR,3);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的5根k线的排列形态
SHSFk线IAN:= REF(ISUP,3) && REF(C,3)>REF(C,2) && REF(C,3)>REF(C,1)  && ISUP && C>REF(C,3) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【N2=0.5】【k线数量为6】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义第一根大k线
REF_YANG:=REF(k线ST,5)>REF(YXCD,5)*N2 && REF(YXCD,5)>N2*REF(ATR,5);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的6根k线的排列形态
SHSFk线IAN:= REF(ISUP,5) && REF(C,5)>REF(C,3) && REF(C,5)>REF(C,2) && REF(C,5)>REF(C,4) && REF(C,5)>REF(C,1) && ISUP && C>REF(C,5) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【N2=0.5】【k线数量为7】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义第一根大k线
REF_YANG:=REF(k线ST,6)>REF(YXCD,6)*N2 && REF(YXCD,6)>N2*REF(ATR,6);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的7根k线的排列形态
SHSFk线IAN:= REF(ISUP,6) && REF(C,6)>REF(C,5) && REF(C,6)>REF(C,4) && REF(C,6)>REF(C,3) && REF(C,6)>REF(C,2) && REF(C,6)>REF(C,1) && ISUP && C>REF(C,6) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓


【测试代码】【N2=0.5】【k线数量为8】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义第一根大k线
REF_YANG:=REF(k线ST,7)>REF(YXCD,7)*N2 && REF(YXCD,7)>N2*REF(ATR,7);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的8根k线的排列形态
SHSFk线IAN:= REF(ISUP,7) && REF(C,7)>REF(C,6) && REF(C,7)>REF(C,5) && REF(C,7)>REF(C,4) && REF(C,7)>REF(C,3) && REF(C,7)>REF(C,2) && REF(C,7)>REF(C,1) && ISUP && C>REF(C,7) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

回复

使用道具 举报

张孟珂 | 2020-4-17 18:19:37 | 显示全部楼层
测试三【上升三法改变持仓周期测试】
【测试逻辑】
A. 测试的买入条件:出现上升三法形态,以收盘价买入;
B. 测试的卖出条件:买入后第三天,以收盘价卖出;

【测试代码】【N2=0.5】【k线数量为4】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义前4根大阳线
REF_YANG:=REF(k线ST,3)>REF(YXCD,3)*N2 && REF(YXCD,3)>N2*REF(ATR,3);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的5根k线的排列形态
SHSFk线IAN:= REF(ISUP,3) && REF(C,3)>REF(C,2) && REF(C,3)>REF(C,1)  && ISUP && C>REF(C,3) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF,BK(LOTS);//满足k线形态,开仓做多
BARSBK=3,SP(BKVOL);//第三天平仓

回复

使用道具 举报

张孟珂 | 2020-4-17 18:27:00 | 显示全部楼层
测试四【上升三法+MACD指标组合测试】
【测试逻辑】
A. 测试的买入条件:出现上升三法形态同时MACD指标金叉,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

【测试代码】【N2=0.5】【k线数量为4】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义MACD指标
DIFF : EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,9);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义前4根大阳线
REF_YANG:=REF(k线ST,3)>REF(YXCD,3)*N2 && REF(YXCD,3)>N2*REF(ATR,3);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的5根k线的排列形态
SHSFk线IAN:= REF(ISUP,3) && REF(C,3)>REF(C,2) && REF(C,3)>REF(C,1)  && ISUP && C>REF(C,3) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF && DIFF>DEA,BK(LOTS);//满足k线形态+MACD金叉,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【N2=0.5,k线数量为5】
//定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//INTPART(FUND*0.8/(OPEN*UNIT*0.1));//计算开仓手数
//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义k线实体、影线长度
k线ST:=ABS(O-C);
YXCD:=HIGH-LOW;//影线长度
k线ST>N2*YXCD;
YXCD>N2*ATR;
//定义上升三法
//1.定义前4根大阳线
REF_YANG:=REF(k线ST,4)>REF(YXCD,4)*N2 && REF(YXCD,4)>N2*REF(ATR,4);
//2. 定义当前大阳线
SHSFYANG:=k线ST>YXCD*N2 && YXCD>N2*ATR;
//3. 定义上升三法的5根k线的排列形态
SHSFk线IAN:= REF(ISUP,4) && REF(C,4)>REF(C,3) && REF(C,4)>REF(C,2) && REF(C,4)>REF(C,1) && ISUP && C>REF(C,4) && O>REF(C,1);
//4. 定义上升三法形态
SHSF:=REF_YANG && SHSFYANG && SHSFk线IAN;
//执行交易
SHSF && DIFF>DEA,BK(LOTS);//满足k线形态+MACD金叉,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓


回复

使用道具 举报

admin | 2024-11-13 19:40:48 | 显示全部楼层
学习
回复

使用道具 举报

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

本版积分规则

媒体报道
你不需要很厉害,你只要一直都在
桥华尔你不需要很厉害,你只要一直都在
 「出席」是成功的开始  我们总以为,成功要靠天赋、靠灵感、靠万事俱备。其实
后门买差股票:价值与题材之争
桥华尔后门买差股票:价值与题材之争
  在抖音收藏夹里翻到一部 AI 生成的讽刺短剧,两分多钟,把「价值投资」和「题材炒
纳瓦尔:世界不奖励辛苦,只奖判断力和复利
桥华尔纳瓦尔:世界不奖励辛苦,只奖判断力和复利
以前我总觉得,"忙起来就对了"。 直到读完纳瓦尔,才意识到——忙错了方向,比不忙还
分享个比较灵敏的 MACD
展茂林分享个比较灵敏的 MACD
N := 9;M1 := 3;M2 := 31 := 122 := 263 := 9;RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-
CDVA,很难找到更简单的分形了
量化桥楚CDVA,很难找到更简单的分形了
尤其是 VA, 裸K中的极简分形
裸K期货交易:如神奇罗盘指引市场解读新方向
桥博士裸K期货交易:如神奇罗盘指引市场解读新方向
裸K期货交易:如神奇罗盘指引市场解读新方向在期货交易中,各种交易技术和方法层出不
梁文锋的来时路与明日歌(何加盐)【第 1/5 层】
桥博士梁文锋的来时路与明日歌(何加盐)【第 1/5 层】
【第 1/5 层】 梁文锋在演讲中 本文来自微信公众号“何加盐”:梁文锋的来时路与明
宽论的生日-2026年05月08日
桥博士宽论的生日-2026年05月08日
一张《概率的朋友》的封面,让我忽然想到一个有趣的问题:宽论的生日究竟是哪一天?
相关课程推荐
K线形态组合解析
k线图基础知识怎么学? 报名宽论VA鱼识别课
没有人可以做万能交易者,但通过不断学习吸收知识从而有一套属于自己交易系统的人,就是走向了盈利的大道。
90%的时间在研究大盘指数,9.9元学习宽论VA
一买就跌,一卖就涨? 股市七亏二平一赚,怎样才能成为赚钱的10%? 看准大盘胜算过半,炒股新手也能掌握的V

43

主题

192

回帖

799

积分

宽论高级会员

积分
799
  • 官方论坛

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