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绘图展示。

如果有错误,不妥之处欢迎留言,改进完善。

0.绘图

# signal是符合形态的日期列表,df是全量股票数据
# 只展示两个符合条件的图示
def mpfplot(signal,df) :
    counter = 0
    show_num = 2
    for i in signal:
      if counter < show_num :  # 以信号日期为中心前后10天的数据
        begin_date = i + datetime.timedelta(days=-10)
        end_date = i + datetime.timedelta(days=10)
        # 按时间段绘图
        df_candle = df.loc[(df.index>=begin_date.strftime("%Y-%m-%d")) & (df.index<=end_date.strftime("%Y-%m-%d"))]
      
        mpf.plot(df_candle , type='candle', title='Signal date: ' +i.strftime("%Y-%m-%d") ,figsize=(6,2))
        mpf.show()
        counter += 1

    counter = 0    
    for i in signal:
      if counter < show_num :      
        begin_date = i + datetime.timedelta(days=-10)
        end_date = i + datetime.timedelta(days=10)

        df_candle = df.loc[(df.index>=begin_date.strftime("%Y-%m-%d")) & (df.index<=end_date.strftime("%Y-%m-%d"))]
        # 按时间段数据
        print(df_candle[['open','high','low','close']])   
        counter += 1

1. 光头光脚大阳线

(1)代码
#1、光头光脚大阳线(极端强势)
# 开盘就是最低价,收盘就是最高价,收盘价大于开盘价
signal = []
for t_date in df.index :
    if df.loc[t_date,'open']==df.loc[t_date,'low'] and df.loc[t_date,'close']==df.loc[t_date,'high'] and df.loc[t_date,'close']>df.loc[t_date,'open']:
        signal.append(t_date)

signal = []
for t_date in df.index :
    if df.loc[t_date,'open']==df.loc[t_date,'low'] and df.loc[t_date,'close']==df.loc[t_date,'high'] and df.loc[t_date,'close']>df.loc[t_date,'open']:
        signal.append(t_date)

mpfplot(signal,df)            
(2)图示

在这里插入图片描述

(3)数据
             open   high    low  close
trade_date                            
2001-06-15  38.52  39.10  38.45  38.54
2001-06-18  38.50  38.88  37.60  37.66
2001-06-19  37.66  37.99  37.43  37.72
2001-06-20  37.72  37.90  37.11  37.19
2001-06-21  37.19  37.79  37.19  37.56
2001-06-22  36.80  38.20  36.80  38.00
2001-06-25  38.03  38.68  38.03  38.68
2001-06-26  38.78  38.84  38.50  38.80
2001-06-27  38.80  39.61  38.60  39.60
2001-06-28  39.60  39.95  38.65  39.29
2001-06-29  39.40  39.98  39.01  39.24
2001-07-02  39.10  39.15  38.37  38.52
2001-07-03  38.50  38.85  38.40  38.71
2001-07-04  38.71  38.90  38.56  38.71
200
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值