二十一、区块量化 TA-Lib 的形态指标
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cross_order as order
import talib
symbol = 'BTC-USDT-SWAP' # okx
# symbol = 'BTCUSDT' # binance
# symbol = 'BTC_USDT' # gate.io
# 取个数据验证一下
df = order.get_candlesticks(symbol=symbol, interval='15m', limit=str(100))
# 倒锤头
# 既然有正锤头,那么肯定也有倒锤头,TA-Lib库提供给我们的方法为talib.CDLINVERTEDHAMMER(),它也是一日K线,定义为上影线较长,长度为实体的2倍以上,无下影线,
# 在下跌趋势底部,预示着趋势反转。
df['values'] = talib.CDLHAMMER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
pattern = df[(df['values'] == 100) | (df['values'] == -100)]
# 射击之星
# 射击之星是一日K线模式,定义为上影线至少为实体长度的2倍,同时没有下影线,预示着股票下跌。TA-Lib库提供给我们的方法为talib.CDLSHOOTINGSTAR()。
df['values'] = talib.CDLSHOOTINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 早晨之星
# 早晨之星为三日K线模式,定义为下跌趋势,第一日为阴线,第二日价格振幅较小,第三天阳线,预示着底部可能会有反转。TA-Lib库提供给我们的方法为#talib.CDLMORNINGSTAR()。
df['values'] = talib.CDLMORNINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 三只乌鸦
# 我们的K线图的乌鸦并不只有两只,还有三只的。三只乌鸦(Three Black Crows)的定义,也是看三日的K线,也就是连续三根阴线,而且每日收盘价都下跌且接近最低价
# 同时每日开盘价都在上根K线实体内,同样预示股价下跌。
# TA-Lib库提供给我们判断三只乌鸦的方法为talib.CDL3BLACKCROWS(),使用方法只需要将而只乌鸦的方法替换成CDL3BLACKCROWS即可
df['values'] = talib.CDL3BLACKCROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 乌云压顶
# TA-Lib库提供给我们的乌云压顶形态的计算方法:talib.CDLDARKCLOUDCOVER()。它是二日K线指标,定义为第一日长阳,第二日开盘价高于前一日最高价,
# 同时收盘价处于前一日实体中部以下,预示着股票下跌
df['values'] = talib.CDLDARKCLOUDCOVER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 十字星
# TA-Lib库提供给我们的十字星方法为talib.CDLDOJISTAR()。它是一日K线模式,定义为开盘价与收盘价基本相等
df['values'] = talib.CDLDOJISTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 比如上吊线方法CDLHANGINGMAN、倒T十字CDLGRAVESTONEDOJI、向上/下跳空并列阳线CDLGAPSIDESIDEWHITE等
# 1, CDL2CROWS (Two Crows 两只乌鸦)
# 简介:三日K线模式,第一天长阳,第二天高开收阴,第三天再次高开继续收阴,收盘比前一日收盘价低,预示股价下跌。
# 例子:integer = CDL2CROWS(open, high, low, close)
df['values'] = talib.CDL2CROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# integer(values are -100,0 or 100)(以下指标如无特殊说明,返回值均为-100,0,100)
# 2,CDL3BLACKCROWS (Three Black Crows 三只乌鸦)
# 简介:三日K线模式,连续三根阴线,每日收盘价都下跌且接近最低价,每日开盘价都在上根K线实体内,预示股价下跌。
# 例子:integer = CDL3BLACKCROWS(open, high, low, close)
df['values'] = talib.CDL3BLACKCROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 3,CDL3INSIDE (Three Inside Up/Down 三内部上涨和下跌)
# 简介:三日K线模式,母子信号+长K线,以三内部上涨为例,K线为阴阳阳,第三天收盘价高于第一天开盘价,第二天K线在第一天K线内部,预示着股价上涨。
# 例子:integer = CDL3INSIDE(open, high, low, close)
df['values'] = talib.CDL3INSIDE(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 4,CDL3LINESTRIKE (Three-Line Strike 三线震荡)
# 简介:四日K线模式,前三根阳线,每日收盘价都比前一日高,开盘价在前一日实体内,第四日市场高开,收盘价低于第一日开盘价,预示股价下跌。
# 例子:integer = CDL3LINESTRIKE(open, high, low, close)
df['values'] = talib.CDL3LINESTRIKE(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 5,CDL3OUTSIDE (Three Outside Up/Down 三外部上涨和下跌)
# 简介:三日K线模式,与三内部上涨和下跌类似,K线为阴阳阳,但第一日与第二日的K线形态相反,以三外部上涨为例,第一日
# -*- coding: utf-8 -*-
import cross_order as order
import talib
symbol = 'BTC-USDT-SWAP' # okx
# symbol = 'BTCUSDT' # binance
# symbol = 'BTC_USDT' # gate.io
# 取个数据验证一下
df = order.get_candlesticks(symbol=symbol, interval='15m', limit=str(100))
# 倒锤头
# 既然有正锤头,那么肯定也有倒锤头,TA-Lib库提供给我们的方法为talib.CDLINVERTEDHAMMER(),它也是一日K线,定义为上影线较长,长度为实体的2倍以上,无下影线,
# 在下跌趋势底部,预示着趋势反转。
df['values'] = talib.CDLHAMMER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
pattern = df[(df['values'] == 100) | (df['values'] == -100)]
# 射击之星
# 射击之星是一日K线模式,定义为上影线至少为实体长度的2倍,同时没有下影线,预示着股票下跌。TA-Lib库提供给我们的方法为talib.CDLSHOOTINGSTAR()。
df['values'] = talib.CDLSHOOTINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 早晨之星
# 早晨之星为三日K线模式,定义为下跌趋势,第一日为阴线,第二日价格振幅较小,第三天阳线,预示着底部可能会有反转。TA-Lib库提供给我们的方法为#talib.CDLMORNINGSTAR()。
df['values'] = talib.CDLMORNINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 三只乌鸦
# 我们的K线图的乌鸦并不只有两只,还有三只的。三只乌鸦(Three Black Crows)的定义,也是看三日的K线,也就是连续三根阴线,而且每日收盘价都下跌且接近最低价
# 同时每日开盘价都在上根K线实体内,同样预示股价下跌。
# TA-Lib库提供给我们判断三只乌鸦的方法为talib.CDL3BLACKCROWS(),使用方法只需要将而只乌鸦的方法替换成CDL3BLACKCROWS即可
df['values'] = talib.CDL3BLACKCROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 乌云压顶
# TA-Lib库提供给我们的乌云压顶形态的计算方法:talib.CDLDARKCLOUDCOVER()。它是二日K线指标,定义为第一日长阳,第二日开盘价高于前一日最高价,
# 同时收盘价处于前一日实体中部以下,预示着股票下跌
df['values'] = talib.CDLDARKCLOUDCOVER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 十字星
# TA-Lib库提供给我们的十字星方法为talib.CDLDOJISTAR()。它是一日K线模式,定义为开盘价与收盘价基本相等
df['values'] = talib.CDLDOJISTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 比如上吊线方法CDLHANGINGMAN、倒T十字CDLGRAVESTONEDOJI、向上/下跳空并列阳线CDLGAPSIDESIDEWHITE等
# 1, CDL2CROWS (Two Crows 两只乌鸦)
# 简介:三日K线模式,第一天长阳,第二天高开收阴,第三天再次高开继续收阴,收盘比前一日收盘价低,预示股价下跌。
# 例子:integer = CDL2CROWS(open, high, low, close)
df['values'] = talib.CDL2CROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# integer(values are -100,0 or 100)(以下指标如无特殊说明,返回值均为-100,0,100)
# 2,CDL3BLACKCROWS (Three Black Crows 三只乌鸦)
# 简介:三日K线模式,连续三根阴线,每日收盘价都下跌且接近最低价,每日开盘价都在上根K线实体内,预示股价下跌。
# 例子:integer = CDL3BLACKCROWS(open, high, low, close)
df['values'] = talib.CDL3BLACKCROWS(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 3,CDL3INSIDE (Three Inside Up/Down 三内部上涨和下跌)
# 简介:三日K线模式,母子信号+长K线,以三内部上涨为例,K线为阴阳阳,第三天收盘价高于第一天开盘价,第二天K线在第一天K线内部,预示着股价上涨。
# 例子:integer = CDL3INSIDE(open, high, low, close)
df['values'] = talib.CDL3INSIDE(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 4,CDL3LINESTRIKE (Three-Line Strike 三线震荡)
# 简介:四日K线模式,前三根阳线,每日收盘价都比前一日高,开盘价在前一日实体内,第四日市场高开,收盘价低于第一日开盘价,预示股价下跌。
# 例子:integer = CDL3LINESTRIKE(open, high, low, close)
df['values'] = talib.CDL3LINESTRIKE(df['open'].values, df['high'].values, df['low'].values, df['close'].values)
# 5,CDL3OUTSIDE (Three Outside Up/Down 三外部上涨和下跌)
# 简介:三日K线模式,与三内部上涨和下跌类似,K线为阴阳阳,但第一日与第二日的K线形态相反,以三外部上涨为例,第一日