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

相关推荐
梦幻精灵_cq2 分钟前
《双征color》诗解——梦幻精灵_cq对终端渲染的数据结构设计模型式拓展
数据结构·python
jiang_changsheng8 分钟前
comfyui节点插件笔记总结新增加
人工智能·算法·计算机视觉·comfyui
TracyCoder1238 分钟前
LeetCode Hot100(7/100)—— 3. 无重复字符的最长子串
算法·leetcode
重生之我是Java开发战士12 分钟前
【优选算法】双指针法:移动0,复写0,快乐数,盛水最多的容器,有效三角形个数,二三四数之和
算法
喵手20 分钟前
Python爬虫零基础入门【第八章:项目实战演练·第3节】上线与运维入门:定时运行、日志轮转、失败告警(轻量版)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·定时运行·日志轮转
weixin_6600967832 分钟前
flash-attention总是安装失败
python·flash-attention
yaoxin52112334 分钟前
303. Java Stream API - 查找元素
java·windows·python
客卿12342 分钟前
力扣二叉树简单题整理--(包含常用语法的讲解)
算法·leetcode·职场和发展
hrrrrb42 分钟前
【算法设计与分析】递归与分治策略
算法
We་ct1 小时前
LeetCode 28. 找出字符串中第一个匹配项的下标:两种实现与深度解析
前端·算法·leetcode·typescript