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

相关推荐
Kapaseker几秒前
Python 提速 — 惰性导入
python
杜子不疼.5 分钟前
Python + Ollama 本地跑大模型:零成本打造私有 AI 助手
开发语言·c++·人工智能·python
李昊哲小课5 分钟前
pip缓存配置
python·缓存·pip
belldeep6 分钟前
python:介绍 UV 安装,如何使用 UV 安装配置 OpenHarness
windows·python·环境变量·uv
计算机安禾8 分钟前
【数据结构与算法】第29篇:红黑树原理与C语言模拟
c语言·开发语言·数据结构·c++·算法·visual studio
理想三旬10 分钟前
Numpy 数据库
python·机器学习·numpy
生信研究猿15 分钟前
94. 二叉树的中序遍历 (二叉树遍历整理)
数据结构·算法
挂科边缘15 分钟前
image-restoration-sde复现,图像修复,使用均值回复随机微分方程进行图像修复,ICML 2023
算法·均值算法·ir-sde·扩散模块图像修复
2301_8227032015 分钟前
开源鸿蒙跨平台Flutter开发:血氧饱和度数据降噪:基于滑动窗口的滤波算法优化-利用动态列队 (Queue) 与时间窗口平滑光电容积脉搏波 (PPG)
算法·flutter·华为·开源·harmonyos
Vin0sen17 分钟前
算法-线段树与树状数组
算法