Backtrader 量化回测实践(2)—— 16个主要K线形态定义(下)

Backtrader 量化回测实践(2)—— 16个主要K线形态定义(下)

K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。
用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下:

1、光头光脚大阳线(极端强势);
2、光头光脚大阴线(极端弱势);
3、光头阳线(高价位强势线,先跌后涨型);
4、光头阴线(低价位弱势线,下跌抵抗型);
5、光脚阳线(高价位强势线,上升阻力型);
6、光脚阴线(低价位弱势线,先涨后跌型);
7、大阳线(较为强烈的买势信号,反转试探型);
8、大阴线(较为强烈的卖势信号,弹升试探型);
9、十字线(阳线,阴线);
10、T字线(阳线,阴线);
11、倒T字线(阳线,阴线);
12、一字线(阳线涨停,阴线跌停)。

以上一共16个,应该是常见的K线主要形态。
在策略中需要通过程序定义K线的形态,根据网上的介绍和定义,用dataframe分析。
取一个股票的数据导入到dataframe中,通过定义找到相应的形态并mplfinance绘图展示。

9.一字涨停

(1)代码
#9、一字涨停
# 开盘价等于最高价,收盘价等于开盘价,开盘价等于昨天的收盘价上涨10%
# 开盘价、收盘价、最高价、最低价都相等
signal = []
limit_up = 9.98 # 10%涨幅,如果是科创板、创业板、ST可调

for t_date in df.index :
    # 第一天的数据不执行    
    if t_date > df.index[0] :
        if df.loc[t_date,'pct_chg'] >= limit_up and df.loc[t_date,'open'] == df.loc[t_date,'low'] \
            and df.loc[t_date,'open'] == df.loc[t_date,'close'] and df.loc[t_date,'open'] == df.loc[t_date,'high'] : 
            signal.append(t_date)

mpfplot(signal,df)
(2)图示

在这里插入图片描述

(3)数据
             open   high    low  close
trade_date                            
2009-07-03  19.89  20.15  19.60  19.86
2009-07-06  20.01  20.78  19.88  20.70
2009-07-07  20.59  21.74  20.47  21.14
2009-07-08  20.90  21.23  20.60  20.63
2009-07-13  22.69  22.69  22.69  22.69
2009-07-14  24.96  24.96  23.28  23.63
2009-07-15  23.91  24.17  23.04  23.57
2009-07-16  23.70  24.57  23.28  24.14
2009-07-17  23.98  24.40  23.68  23.90
2009-07-20  23.91  24.22  23.62  23.95
2009-07-21  24.01  24.98  23.81  23.99
2009-07-22  24.01  24.18  23.74  24.07
2009-07-23  24.08  24.33  23.78  23.94

10.一字跌停

(1)代码
#10、一字跌停
# 开盘价等于最高价,收盘价等于开盘价,开盘价等于昨天的收盘价下跌10%
# 开盘价、收盘价、最高价、最低价都相等
signal = []
limit_down = -9.98 # 10%跌幅,如果是科创板、创业板、ST可调

for t_date in df.index :
    # 第一天的数据不执行    
    if t_date > df.index[0] :
        if df.loc[t_date,'pct_chg'] < limit_down and df.loc[t_date,'open'] == df.loc[t_date,'low'] \
            and df.loc[t_date,'open'] == df.loc[t_date,'close'] and df.loc[t_date,'open'] == df.loc[t_date,'high']: 
            signal.append(t_date)
    
    # 保存前一天的收盘价做参考
    df_yesterday = df.loc[t_date,'close']

mpfplot(signal,df)            
(2)图示

在这里插入图片描述
说明:2月3日之前是春节,所以第一个就是信号数据。

(3)数据
              open    high     low   close
trade_date                                
2020-02-03  113.54  113.54  113
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值