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。

相关推荐
把我格子衫拿来2 小时前
误差预算怎么做?从雅可比到蒙特卡洛的三维定位不确定度分析
python·蒙特卡洛·三维定位·误差分析·不确定度
文章永久免费只为良心3 小时前
Ctfshow_Web应用安全与防护_第二章_无字母数字命令执行
前端·python·安全·网络安全·渗透测试·ctf·红队渗透测试
2601_962885723 小时前
如何用 Python 获取上证指数、沪深300、中证500 等指数行情?
开发语言·python
昔我往昔3 小时前
LangChain_RAG_学习小结
后端·python
Logic1013 小时前
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
程序猿阿森3 小时前
【机器学习实战】朴素贝叶斯算法详解:从概率基础到商品评论情感分析
算法·机器学习·概率论
张张123y3 小时前
后端第六课:Python 语法速通(0 基础入门,AI 应用开发的第一门语言)
开发语言·人工智能·python·ai·后端开发
小马不起床3 小时前
Django 后端实战指南_10:用户扩展档案信息表
python·django·sqlite
Want5953 小时前
Python跳动的爱心①
开发语言·python·数学建模
SamChan903 小时前
PDF 翻译后 1,250 变成 1.250,是错了吗?用 Python 核对数字格式
python·pdf·ocr·数据校验·文档翻译