单阳不破k线组合形态测试和代码版本汇总

[复制链接]
查看645 | 回复4 | 张孟珂 | 2020-4-7 14:06:18 | 显示全部楼层 |阅读模式
单阳不破版本一:

1) 定义单阳不破的具体形态
A. 形态条件1
文字描述:一根大阳线出现;
量化定义:大阳线k线影线长度>1*ATR;
(为什么用ATR:《ATR的正确使用方法-动态度量衡》)
B. 形态条件2
文字描述:大阳线后面k线的排列形态:所有k线的最低价都没有击穿该阳线的最低价,中间k线的收盘价处于前面大阳线的最低价、最高价之间
量化定义:REF(ISUP,3) && REF(L,3)<REF(L,(3-1)) && REF(L,3)<REF(L,(3-2)) && REF(L,3)<L && REF(H,3)>REF(H,(3-1)) && REF(H,3)>REF(H,(3-2)) && REF(H,3)>H;

2) 定义测试一的买卖逻辑:
A. 测试的买入条件:形成单阳不破形态,以收盘价买入;
B. 测试的卖出条件:买入后若收盘价突破第一根大k线的最高价或者最低价,以收盘价平仓;

回复

使用道具 举报

张孟珂 | 2020-4-7 14:11:44 | 显示全部楼层
测试一【单阳不破基础测试】
【测试逻辑】
A. 测试的买入条件:出现单阳不破形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;


【测试代码】[N3=3]
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//计算开仓手数

//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义单阳不破形态
//1、定义引线的长度:最高-最低;
DYBP_REFk线IAN:ABS(REF(H,N3)-REF(L,N3))>1*REF(ATR,N3);
//2、再定义一个变量:记录箱体的上下沿;
DYBP_SG:=REF(H,N3);
DYBP_XG:=REF(L,N3);
//3、接下来去判断下一根k线的最高、最低价是否在最高价、最低价之内,如果突破了,就把新的最高价、最低价记录下来;没有的话,就用原来的最高最低;
DYBP_XSG:=IF((L>REF(L,N3) AND H>REF(H,N3)),DYBP_SG,H);//突破上沿,则取箱体新上沿
DYBP_XXG:=IF((L<REF(L,N3) AND H<REF(H,N3)),DYBP_XG,L);//突破下沿,则取箱体新下沿
//4、记录k线数量,从最开始的k线到突破箱体之间的k线的数量;【先判断当日收盘价是否突破箱体,如果未突破,M 就取N3+1;M:IF((C>REF(L,N3) OR C<REF(H,N3)),N3+1,N3);】
M:IF((DYBP_XSG OR DYBP_XXG),N3+1,N3);
//5、如果突破了箱体的最高价
DYBPk线IAN_1:=REF(ISUP,M) && REF(L,M)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(DYBP_XSG,M)>REF(DYBP_XSG,(M-3)) && REF(L,M)<REF(C,(M-3));

DYBPk线IAN_2:=REF(ISUP,N3) && REF(L,N3)<REF(C,(N3-1)) && REF(L,N3)<REF(C,(N3-2)) && REF(L,N3)<C
&& REF(H,N3)>REF(H,(N3-1)) && REF(H,N3)>REF(H,(N3-2)) && REF(H,N3)>C;

DYBPk线IAN_XG:IF((C>REF(L,N3) AND C>REF(H,N3)),DYBPk线IAN_1,DYBPk线IAN_2);
//6、如果突破了箱体的最低价
DYBPk线IAN_3:=REF(ISUP,M) && REF(L,N3)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(H,M)>REF(H,(M-3)) && REF(DYBP_XXG,M)<REF(DYBP_XXG,(M-3));

DYBPk线IAN_XD:IF((C<REF(L,N3) AND C<REF(H,N3)),DYBPk线IAN_3,DYBPk线IAN_2);

DYBPk线IAN_XGORXD:=DYBPk线IAN_XG OR DYBPk线IAN_XD;

DYBP:=DYBP_REFk线IAN && DYBPk线IAN_XGORXD;//单阳不破形态
//执行交易
DYBP,BK(LOTS);//满足k线形态,开仓做多
//针对单阳不破:以收盘价突破箱体的上沿或下沿为平仓条件
C<REF(L,M) || C>REF(H,M),SP(BKVOL);


回复

使用道具 举报

张孟珂 | 2020-4-7 14:12:30 | 显示全部楼层
测试二【单阳不破改变k线数量测试】
【测试逻辑】
A. 测试的买入条件:出现单阳不破形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;


【测试代码】[N3=6,k线数量为6]
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//计算开仓手数

//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义单阳不破形态
//1、定义引线的长度:最高-最低;
DYBP_REFk线IAN:ABS(REF(H,N3)-REF(L,N3))>1*REF(ATR,N3);
//2、再定义一个变量:记录箱体的上下沿;
DYBP_SG:=REF(H,N3);
DYBP_XG:=REF(L,N3);
//3、接下来去判断下一根k线的最高、最低价是否在最高价、最低价之内,如果突破了,就把新的最高价、最低价记录下来;没有的话,就用原来的最高最低;
DYBP_XSG:=IF((L>REF(L,N3) AND H>REF(H,N3)),DYBP_SG,H);//突破上沿,则取箱体新上沿
DYBP_XXG:=IF((L<REF(L,N3) AND H<REF(H,N3)),DYBP_XG,L);//突破下沿,则取箱体新下沿
//4、记录k线数量,从最开始的k线到突破箱体之间的k线的数量;【先判断当日收盘价是否突破箱体,如果未突破,M 就取N3+1;M:IF((C>REF(L,N3) OR C<REF(H,N3)),N3+1,N3);】
M:IF((DYBP_XSG OR DYBP_XXG),N3+1,N3);
//5、如果突破了箱体的最高价
DYBPk线IAN_1:=REF(ISUP,M) && REF(L,M)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(DYBP_XSG,M)>REF(DYBP_XSG,(M-3)) && REF(L,M)<REF(C,(M-3));

DYBPk线IAN_2:=REF(ISUP,N3) && REF(L,N3)<REF(C,(N3-1)) && REF(L,N3)<REF(C,(N3-2)) && REF(L,N3)<C
&& REF(H,N3)>REF(H,(N3-1)) && REF(H,N3)>REF(H,(N3-2)) && REF(H,N3)>C;

DYBPk线IAN_XG:IF((C>REF(L,N3) AND C>REF(H,N3)),DYBPk线IAN_1,DYBPk线IAN_2);
//6、如果突破了箱体的最低价
DYBPk线IAN_3:=REF(ISUP,M) && REF(L,N3)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(H,M)>REF(H,(M-3)) && REF(DYBP_XXG,M)<REF(DYBP_XXG,(M-3));

DYBPk线IAN_XD:IF((C<REF(L,N3) AND C<REF(H,N3)),DYBPk线IAN_3,DYBPk线IAN_2);

DYBPk线IAN_XGORXD:=DYBPk线IAN_XG OR DYBPk线IAN_XD;

DYBP:=DYBP_REFk线IAN && DYBPk线IAN_XGORXD;//单阳不破形态
DYBP,BK(LOTS);//满足k线形态,开仓做多
//针对单阳不破:以收盘价突破箱体的上沿或下沿为平仓条件
C<REF(L,M) || C>REF(H,M),SP(BKVOL);

回复

使用道具 举报

张孟珂 | 2020-4-7 14:24:31 | 显示全部楼层
测试三【单阳不破改变持仓周期测试】
【测试逻辑】
A. 测试的买入条件:出现单阳不破形态,以收盘价买入;
B. 测试的卖出条件:
突破进场k线高点、低点平仓,以收盘价平仓

【测试代码】[N3=3]
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//计算开仓手数

//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义单阳不破形态
//1、定义引线的长度:最高-最低;
DYBP_REFk线IAN:ABS(REF(H,N3)-REF(L,N3))>1*REF(ATR,N3);
//2、再定义一个变量:记录箱体的上下沿;
DYBP_SG:=REF(H,N3);
DYBP_XG:=REF(L,N3);
//3、接下来去判断下一根k线的最高、最低价是否在最高价、最低价之内,如果突破了,就把新的最高价、最低价记录下来;没有的话,就用原来的最高最低;
DYBP_XSG:=IF((L>REF(L,N3) AND H>REF(H,N3)),DYBP_SG,H);//突破上沿,则取箱体新上沿
DYBP_XXG:=IF((L<REF(L,N3) AND H<REF(H,N3)),DYBP_XG,L);//突破下沿,则取箱体新下沿
//4、记录k线数量,从最开始的k线到突破箱体之间的k线的数量;【先判断当日收盘价是否突破箱体,如果未突破,M 就取N3+1;M:IF((C>REF(L,N3) OR C<REF(H,N3)),N3+1,N3);】
M:IF((DYBP_XSG OR DYBP_XXG),N3+1,N3);
//5、如果突破了箱体的最高价
DYBPk线IAN_1:=REF(ISUP,M) && REF(L,M)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(DYBP_XSG,M)>REF(DYBP_XSG,(M-3)) && REF(L,M)<REF(C,(M-3));

DYBPk线IAN_2:=REF(ISUP,N3) && REF(L,N3)<REF(C,(N3-1)) && REF(L,N3)<REF(C,(N3-2)) && REF(L,N3)<C
&& REF(H,N3)>REF(H,(N3-1)) && REF(H,N3)>REF(H,(N3-2)) && REF(H,N3)>C;

DYBPk线IAN_XG:IF((C>REF(L,N3) AND C>REF(H,N3)),DYBPk线IAN_1,DYBPk线IAN_2);
//6、如果突破了箱体的最低价
DYBPk线IAN_3:=REF(ISUP,M) && REF(L,N3)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(H,M)>REF(H,(M-3)) && REF(DYBP_XXG,M)<REF(DYBP_XXG,(M-3));

DYBPk线IAN_XD:IF((C<REF(L,N3) AND C<REF(H,N3)),DYBPk线IAN_3,DYBPk线IAN_2);

DYBPk线IAN_XGORXD:=DYBPk线IAN_XG OR DYBPk线IAN_XD;

DYBP:=DYBP_REFk线IAN && DYBPk线IAN_XGORXD;//单阳不破形态
DYBP,BK(LOTS);//满足k线形态,开仓做多
C>REF(H,BARSBK) OR C<REF(L,BARSBK),SP(BKVOL);//突破突破进场k线高点,低点平仓
回复

使用道具 举报

张孟珂 | 2020-4-7 14:29:11 | 显示全部楼层
测试四【单阳不破+RSI指标组合测试】
【测试逻辑】
A. 测试的买入条件:出现单阳不破形态,同时RSI指标大于70或者RSI指标小于30,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;


【测试代码】[N3=3]
//一、定义仓位
FUND:=10000000; //资金
LOTS:=INTPART(FUND*0.8/(C*MARGIN*UNIT+FEE));//计算开仓手数

//定义ATR指标
TR:MAX(MAX((H-L),ABS(REF(C,1)-HIGH)),ABS(REF(C,1)-L));//算出(当日最高-当日最低)、(当日最高-昨日收盘)的绝对值、(昨日收盘-当日最低)的绝对值,再求这3个值中的最大值
ATR:MA(TR,N);//求N个周期内的TR的简单移动平均
//定义单阳不破形态
//1、定义引线的长度:最高-最低;
DYBP_REFk线IAN:ABS(REF(H,N3)-REF(L,N3))>1*REF(ATR,N3);
//2、再定义一个变量:记录箱体的上下沿;
DYBP_SG:=REF(H,N3);
DYBP_XG:=REF(L,N3);
//3、接下来去判断下一根k线的最高、最低价是否在最高价、最低价之内,如果突破了,就把新的最高价、最低价记录下来;没有的话,就用原来的最高最低;
DYBP_XSG:=IF((L>REF(L,N3) AND H>REF(H,N3)),DYBP_SG,H);//突破上沿,则取箱体新上沿
DYBP_XXG:=IF((L<REF(L,N3) AND H<REF(H,N3)),DYBP_XG,L);//突破下沿,则取箱体新下沿
//4、记录k线数量,从最开始的k线到突破箱体之间的k线的数量;【先判断当日收盘价是否突破箱体,如果未突破,M 就取N3+1;M:IF((C>REF(L,N3) OR C<REF(H,N3)),N3+1,N3);】
M:IF((DYBP_XSG OR DYBP_XXG),N3+1,N3);
//5、如果突破了箱体的最高价
DYBPk线IAN_1:=REF(ISUP,M) && REF(L,M)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(DYBP_XSG,M)>REF(DYBP_XSG,(M-3)) && REF(L,M)<REF(C,(M-3));

DYBPk线IAN_2:=REF(ISUP,N3) && REF(L,N3)<REF(C,(N3-1)) && REF(L,N3)<REF(C,(N3-2)) && REF(L,N3)<C
&& REF(H,N3)>REF(H,(N3-1)) && REF(H,N3)>REF(H,(N3-2)) && REF(H,N3)>C;

DYBPk线IAN_XG:IF((C>REF(L,N3) AND C>REF(H,N3)),DYBPk线IAN_1,DYBPk线IAN_2);
//6、如果突破了箱体的最低价
DYBPk线IAN_3:=REF(ISUP,M) && REF(L,N3)<REF(C,(M-1)) && REF(L,M)<REF(C,(M-2)) && REF(L,M)<C
&& REF(H,M)>REF(H,(M-1)) && REF(H,M)>REF(H,(M-2)) && REF(H,M)>C && REF(H,M)>REF(H,(M-3)) && REF(DYBP_XXG,M)<REF(DYBP_XXG,(M-3));

DYBPk线IAN_XD:IF((C<REF(L,N3) AND C<REF(H,N3)),DYBPk线IAN_3,DYBPk线IAN_2);

DYBPk线IAN_XGORXD:=DYBPk线IAN_XG OR DYBPk线IAN_XD;

DYBP:=DYBP_REFk线IAN && DYBPk线IAN_XGORXD;//单阳不破形态
DYBP && (RSI>70||RSI<30),BK(LOTS);//形态+RSI指标,开仓做多
//针对单阳不破:以收盘价突破箱体的上沿或下沿为平仓条件
C<REF(L,M) || C>REF(H,M),SP(BKVOL);
回复

使用道具 举报

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

本版积分规则

媒体报道
多智能体对抗-从梦想到现实
桥博士多智能体对抗-从梦想到现实
第一阶段 2024年暑假开始,到2026年寒假,才开始收尾,团队工作逐渐减少,短期内也不
AI问板块测试-5月5日凌晨
桥博士AI问板块测试-5月5日凌晨
海湾刚刚开打,预测一下后天到行情
有没有一种方法,能保证我今年赚10%?
桥博士有没有一种方法,能保证我今年赚10%?
问:有没有一种方法,能保证我今年赚10%? 答:没有。 问:有没有一种方法,可能让我
期权“白嫖”秘籍不花钱也能捡钱的策略
心怡期权“白嫖”秘籍不花钱也能捡钱的策略
这种跨式的套路呢,一般说的就是这种鹰式的策略,它是类似于这种跨式的,它首先有一个
工科女的交易学习笔记
唯格工科女的交易学习笔记
【工科女的交易学习笔记】备兑、半备兑与滑点:从“房东”到“保险精算师”的初体验今
交易的圣经 -- 概率
心怡交易的圣经 -- 概率
交易有且仅有一个圣经,那就是概率。下面摘录概率的核心要点,主要源自刘嘉的《概率论
杜鹏飞:量化交易的“左右互搏”🤜🤛:均值回归 vs 动量,谁更牛?
心怡杜鹏飞:量化交易的“左右互搏”🤜🤛:均值回归 vs 动量,谁更牛?
1️⃣ 均值回归:相信“地心引力”🍉 夏天西瓜🍉正常10块。大热天涨到20块👉你觉得:
1000知识点
admin1000知识点
知识点“开仓”打样: 第一楼: “开仓”(后期放书的内容) 第二楼: George对于开
相关课程推荐
K线形态组合解析
k线图基础知识怎么学? 报名宽论VA鱼识别课
没有人可以做万能交易者,但通过不断学习吸收知识从而有一套属于自己交易系统的人,就是走向了盈利的大道。
90%的时间在研究大盘指数,9.9元学习宽论VA
一买就跌,一卖就涨? 股市七亏二平一赚,怎样才能成为赚钱的10%? 看准大盘胜算过半,炒股新手也能掌握的V

43

主题

192

回帖

799

积分

宽论高级会员

积分
799
  • 官方论坛

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