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

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

锤头


本篇接着上篇介绍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()


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


倒锤头


既然有正锤头,那么肯定也有倒锤头,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)]


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


射击之星


射击之星是一日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)]


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


早晨之星


早晨之星为三日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)]


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

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

相关文章
|
2天前
|
存储 数据采集 数据库
Python爬虫实战:股票分时数据抓取与存储
Python爬虫实战:股票分时数据抓取与存储
|
4月前
|
数据采集 人工智能 自然语言处理
AI Agent 金融助理0-1 Tutorial 利用Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股) AI Finance Agent
金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent
|
5月前
|
数据挖掘 Python
用python的tushare模块分析股票案例(python3经典编程案例)
该文章提供了使用Python的tushare模块分析股票数据的案例,展示了如何获取股票数据以及进行基本的数据分析。
240 0
|
6月前
|
数据采集 数据可视化 索引
【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】
【python】python股票量化交易策略分析可视化(源码+数据集+论文)【独一无二】
487 1
|
5月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能股票交易策略
使用Python实现智能股票交易策略
142 0
|
6月前
|
数据采集 数据可视化 数据挖掘
【python】python可口可乐股票历史数据分析与可视化(源码+数据集+论文)【独一无二】
【python】python可口可乐股票历史数据分析与可视化(源码+数据集+论文)【独一无二】
103 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
126 80
|
21天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章