python数据分析-均线选股策略实践

山有扶苏,隰有荷华。

1 前言

在前文中已经讲述了Java爬虫-股票k线分析实践,在本文中将继续以此为基础分享另一种选股策略-均线选股策略。均线策略是一种慢周期的选股策略,可以剔除那些短期被操作的股票标的。可以选择长期趋势向上的股票择优投资,从概率上提高投资的成功率。

2 选股策略

均线选股策略,就是以股票的 K 线为基础,计算移动平均线,通常以 MA20 即月移动平均线为基准。MA20 可以代表股票的长期趋势,如果股票的价格在月内大部分的时间都在 MA20 之上,而且最近的交易量是逐渐放大的,那么就可以选择加入跟踪标的中。以上是根据定性分析,具体到选股策略上如下所示:

erlang 复制代码
1 最近的 20个交易日中,有 80% 的收盘价高于当日的 MA20 价格即可。
2 当日交易量 > 近3日交易日均量 > 近5日交易日均量 > 近20日交易日均量,则交易量逐渐放大。
3 当日收盘价 > 近5日收盘均价 > 近20日收盘均价, 可以说明价格正在逐步的爬坡。

以上是制定的选股策略,接下来将使用 python 脚本来实现以上的逻辑。

3 代码实践

首先我们需要寻找到所有的股票代码,这个股票代码已经在前文中有所介绍,这里就不再赘述,只是使用其股票代码。

在开始业务之前,需要打印业务的开始时间和结束时间,当业务执行完成之后,需要将选中的代码输出到文件中用于查看。这里使用了文件的读和写知识点,在读写文件时,需要使用默认的字符集 utf8, 防止中文乱码的情况出现。

在处理业务前,需要根据股票代码查询其 K 线数据,这里使用的是东方财富的k线数据,将获取到的数据组装成 pandas 格式,方便后续的数据处理。

在这里处理数据时只获取需要计算的数据,日期,收盘价,均线和交易量数据。然后根据时间倒序排列,首先需要计算的是最近 1/3/5/20 天的平均交易量,以及最近 1/5/20 天的日均收盘价。最后需要判断最近 20 日收盘价高于其 MA20 均线。

最终,我们的选择标准就是 80% 的收盘价高于其均线价格,并且 1/3/5/20的平均交易量逐渐放大,1/5/20 的日均收盘价逐渐抬升。

4 结果分析

根据以上的代码,可以获取到最终的运行结果,如下图所示: 可以看到在如今缅A下行的时间点,还是有一些股票是可以选择的,根据这个策略选择的代码是可以提高投资的成功率,通过筛选出来的数据,可以分析其关联关系,也可以通过筛选出来的代码多寡判断当前大盘的行情好坏,根据其数量趋势,可以分析其行情走势的方向。

5 总结

在本文中,介绍了如何使用 python 语言建立均线策略选股,通过 MA20 的月线趋势结合交易量和交易均价来选择股票,通过以上的方式可以从众多的股票中获取趋势走好的股票,从这种股票池中选择代码,可以获取更高的成功率。以上的策略选出的代码,可以分析出其中的关联,找出其共同的特点以及所处的板块。相关代码已经上传至 github, 欢迎大家 star, 项目地址 fund_python

相关推荐
咚咚王者8 分钟前
人工智能之RAG工程 第一章 RAG 基础与前置知识
人工智能·算法
handler0112 分钟前
【算法模板】最小生成树:稠密图选 Prim,稀疏图选 Kruskal
c语言·数据结构·c++·算法
飞Link12 分钟前
构筑你的数字第二大脑:Obsidian 深度解析与配置指南
开发语言·python
JaydenAI14 分钟前
[Deep Agents:LangChain的Agent Harness-02]构建抽象的文件系统
python·langchain·ai编程·ai agent·deep agents·harness
2403_8832610915 分钟前
如何用 nodeType 与 nodeName 准确判断当前节点的物理类型
jvm·数据库·python
qq_4135020220 分钟前
如何利用 Block Tree 避免不必要的子组件重渲染?Vue3 编译黑科技
jvm·数据库·python
m0_6245785931 分钟前
CSS定位如何实现多行文字垂直居中_通过绝对定位模拟表格
jvm·数据库·python
破无差40 分钟前
武术套路帖子
python
Chase_______1 小时前
LeetCode 2461 & 1423:定长滑窗变体精讲,从 HashMap 判重到正难则反的转化技巧
算法·leetcode·职场和发展
dfdfadffa1 小时前
mysql如何排查网络延迟引起的数据库连接问题_使用ping测试
jvm·数据库·python