孕线k线组合形态测试和代码版本汇总

[复制链接]
查看1305 | 回复4 | 张孟珂 | 2020-4-7 17:58:08 | 显示全部楼层 |阅读模式
孕线的形态特征

1) 定义孕线的具体形态

A. 形态条件1
文字描述:左侧是一根实体大阳线或者大阴线;
量化定义:大阳线或大阴线的实体长度>1*ATR;
(为什么用ATR:《ATR的正确使用方法-动态度量衡》)
B. 形态条件2
描述:当日开盘价和收盘价在前一日的较宽的开盘价、收盘价之间;
量化定义:当日收盘价和当日开盘价的较大值<1日前的收盘价和1日前的开盘价的较大值并且当日收盘价和当日开盘价的较小值>1日前的收盘价和1日前的开盘价的较小值;

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

使用道具 举报

张孟珂 | 2020-4-7 18:00:36 | 显示全部楼层
测试一【孕线基础测试】
【测试逻辑】
A. 测试的买入条件:出现孕线形态,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

【测试代码】
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2. 定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=MAX(CLOSE,OPEN)<MAX(REF(CLOSE,1),REF(OPEN,1))&&MIN(CLOSE,OPEN)>MIN(REF(CLOSE,1),REF(OPEN,1));
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

回复

使用道具 举报

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

【测试代码】
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2.定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=MAX(CLOSE,OPEN)<MAX(REF(CLOSE,1),REF(OPEN,1))&&MIN(CLOSE,OPEN)>MIN(REF(CLOSE,1),REF(OPEN,1));
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BARSBK=3,SP(BKVOL);//第3天平仓

回复

使用道具 举报

张孟珂 | 2020-4-7 18:03:29 | 显示全部楼层
测试三【孕线形态和RSI指标结合测试】
【测试逻辑】
A. 测试的买入条件:出现孕线形态同时RSI指标大于70或者小于30时,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;

【测试代码】
//一、定义仓位
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的简单移动平均
//三、定义RSI指标
LC := REF(CLOSE,1);//前一周期收盘价
RSI1:SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100;//当根k线收盘价与前一周期收盘价做差,在该差值与0之间取最大值,做N1周期移动平均。收盘价与前一周期收盘价做差值,取该差值的N1周期移动平均值,两平均值之间做比值。
RSI2:RSI1>70||RSI1<30;
//四、定义k线实体
k线ST:=ABS(O-C);
//五、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2.定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=MAX(CLOSE,OPEN)<MAX(REF(CLOSE,1),REF(OPEN,1))&&MIN(CLOSE,OPEN)>MIN(REF(CLOSE,1),REF(OPEN,1));
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX && RSI2,BK(LOTS);//形态+RSI指标,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

回复

使用道具 举报

张孟珂 | 2020-4-20 18:38:49 | 显示全部楼层
测试三【孕线改变k线阴阳组合的测试】
【测试逻辑】
A. 测试的买入条件:出现孕线形态时,以收盘价买入;
B. 测试的卖出条件:买入后第二天,以收盘价卖出;


【测试代码】【前后两根k线都是阴线】
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2. 定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=ISDOWN && REF(ISDOWN,1) && O<REF(O,1) && C>REF(C,1);
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【前一根是阴线,当前是阳线】
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2. 定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=ISUP && REF(ISDOWN,1) && C<REF(O,1) && O>REF(C,1);
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【前一根是阳线,当前是阴线
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2. 定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=ISDOWN && REF(ISUP,1) && O<REF(C,1) && C>REF(O,1);
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓

【测试代码】【前后两根k线都是阳线】
//一、定义仓位
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);
//四、定义孕线
//1.定义前一根k线
REFk线IAN:REF(k线ST,1)>N1*REF(ATR,1);
//2. 定义当前k线包住前一根k线
DQk线IAN_BAO_REFk线IAN:=ISUP && REF(ISUP,1) && C<REF(C,1) && O>REF(O,1);
//3.定义孕线形态
YX:=REFk线IAN && DQk线IAN_BAO_REFk线IAN;//孕线
YX,BK(LOTS);//满足k线形态,开仓做多
BKVOL>0,SP(BKVOL);//第二天平仓


回复

使用道具 举报

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

本版积分规则

媒体报道
如何抄在针尖上?
刘昱妗如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,
交易模型测试库
宇晨交易模型测试库
目录 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
交易SOP
刘昱妗交易SOP
日常任务及流程【金山文档 | WPS云文档】 交易sop https://www.kdocs.cn/l/cvXFT8HZDO
2025.12.1宽论解盘日报
dudu2025.12.1宽论解盘日报
大家好,欢迎来到宽论解盘。今天我们来用宽论的角度,一起解读上证指数近期的走势和
相关课程推荐
如何抄在针尖上?
如果有办法能让你抄在针尖上,你想不想学? 不需要复杂的指标,也不需要高深的技术,只要死磕这招盈亏比极
交易模型测试库
目录 1.MACD日线 2.海6日线3.海龟S1日线 4.海龟S2日线
关于调delta的研究
调备兑时间点 早晨9点,下午14:30,晚上21点 12.9 夜盘调delta 纸浆成交量为0 delta极小 此时期权的delta

43

主题

235

帖子

799

积分

宽论高级会员

Rank: 4

积分
799
  • 官方论坛

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