python k线图_python股票量化交易(8)—K线图:锤头,射击之星,早晨之星_李元静的专栏-CSDN博客...

原文作者:李元静

原文标题:python股票量化交易(8)---K线图:锤头,射击之星,早晨之星

发布时间:2021-01-31 19:06:28

人之有志,如树之有根,立定此志,须念念谦虚,尘尘方便,自然感动天地,而造福由我。

锤头

本篇接着上篇介绍K线形态。

首先,我们今天介绍的第一个K线形态是锤头,TA-Lib库提供给我们的方法为talib.CDLHAMMER(),它是一日K线形态,实体较短,无上影线,同时下影线大于实体长度的两倍,预示着趋势反转。

完整绘制标记锤头的代码如下:

import pandas as pd

import talib

import matplotlib.pyplot as plt

import matplotlib.ticker as ticker

import mpl_finance as mpf

fig = plt.figure(figsize=(12, 8))

plt.rcParams['font.sans-serif'] = ['SimHei']

ax = fig.add_subplot(111)

df = pd.read_excel("歌尔股份year.xlsx")

df['date'] = pd.to_datetime(df['date'])

df['date'] = df['date'].apply(lambda x: x.strftime('%Y-%m-%d'))

df['hammer_head'] = talib.CDLHAMMER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)

pattern = df[(df['hammer_head'] == 100) | (df['hammer_head'] == -100)]

mpf.candlestick2_ochl(ax, df["open"], df["close"], df["high"], df["low"], width=0.6, colorup='r',

colordown='green',

alpha=1.0)

for key, val in df.items():

for index, today in pattern.iterrows():

x_posit = df.index.get_loc(index)

ax.annotate("{}\n{}".format("锤头", today["date"]), xy=(x_posit, today["high"]),

xytext=(0, pattern["close"].mean()), xycoords="data",

fontsize=18, textcoords="offset points", arrowprops=dict(arrowstyle="simple", color="r"))

ax.xaxis.set_major_locator(ticker.MaxNLocator(20))

def format_date(x, pos=None):

if x < 0 or x > len(df['date']) - 1:

return ''

return df['date'][int(x)]

ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_date))

plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')

plt.show()

锤头的形态很多股票都有,你可以随便自己找股票测试,这里还是用的歌尔股份。运行之后,显示效果如下图所示:

d0ed203d686e72f003243d03b5f9b354.gif

倒锤头

既然有正锤头,那么肯定也有倒锤头,TA-Lib库提供给我们的方法为talib.CDLINVERTEDHAMMER(),它也是一日K线,定义为上影线较长,长度为实体的2倍以上,无下影线,在下跌趋势底部,预示着趋势反转。

既然上面完整代码都有,这里同上一篇博文一样,只需要更换二行代码:

df['Inverted_hammer_head'] = talib.CDLHAMMER(df['open'].values, df['high'].values, df['low'].values, df['close'].values)

pattern = df[(df['Inverted_hammer_head'] == 100) | (df['Inverted_hammer_head'] == -100)]

同时还要更改文字标识“锤头”为“倒锤头”,运行之后效果如下图所示:

d0ed203d686e72f003243d03b5f9b354.gif

射击之星

射击之星是一日K线模式,定义为上影线至少为实体长度的2倍,同时没有下影线,预示着股票下跌。TA-Lib库提供给我们的方法为talib.CDLSHOOTINGSTAR()。

同样的,射击之星的代码也只需要更换2行:

df['shoot_star'] = talib.CDLSHOOTINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)

pattern = df[(df['shoot_star'] == 100) | (df['shoot_star'] == -100)]

运行之后,显示的效果如下图所示:

d0ed203d686e72f003243d03b5f9b354.gif

早晨之星

早晨之星为三日K线模式,定义为下跌趋势,第一日为阴线,第二日价格振幅较小,第三天阳线,预示着底部可能会有反转。TA-Lib库提供给我们的方法为talib.CDLMORNINGSTAR()。

同样的,早晨之星的代码也只需要更换2行:

df['morning_star'] = talib.CDLMORNINGSTAR(df['open'].values, df['high'].values, df['low'].values, df['close'].values)

pattern = df[(df['morning_star'] == 100) | (df['morning_star'] == -100)]

运行之后,显示的效果如下图所示:

d0ed203d686e72f003243d03b5f9b354.gif

当然,对于K线图的指标其实还有很多,比如上吊线方法CDLHANGINGMAN、倒T十字CDLGRAVESTONEDOJI、向上/下跳空并列阳线CDLGAPSIDESIDEWHITE等,使用方式与这2篇博文完全一样、只是替换了方法。所以,为了不讲解毫无营养的股票量化交易,其他的指标博主这里省略了,具体你需要哪个指标,自己查询开发文档直接按这2篇调用即可。

Post Views:

12

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

weixin_39929813

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值