本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣。主要用到numpy,pandas模块的一些基本用法。本文的所有数据,包含所有A股的日数据,在文末有下载。
我们先导入需要的模块,然后用pandas的read_csv方法载入数据集。
观察数据集,包含了代码为000001的股票(平安银行)从上市至今的共6000多天的交易记录,包括每个交易日的交易日期,四个价格(最高,最低,开盘,收盘),涨跌(比),以及交易量和交易额。可以说,有了上面这些数据,可以造出任意一个技术分析指标。
画个收盘价的均线图试试看:
上文代码解释:我们先把“trade_date“这一列调整为时间格式,再把它设置为index。然后用df.rolling().mean()计算移动平均数。最后为了现实清晰,选取6500行以后的三个数据进行可视化显示。
1.看一下目前的价格处于历史中的什么价位
知道了一只股票的价格目前相对最高最低价所处的位置,我们就可以据此对它有一个总体的认识。我们还可以把上面的代码封装成一个函数,函数的输入是股票代码,然后遍历所有的股票,这样我们就可以挑选出我们需要的股票进行进一步研究。比如你想要超低价股,那么可以把p小于5%的股票打印出来,如果想要历史最高价的股票,那就是p=1.
2.选择合适的移动平均数
有些散户喜欢利用移动平均线来判断买入卖出,比如常见的,五日ma5上穿十日均线ma10时买入股票,反之卖出股票。那我们接下来先看看,这样的策略效果怎么样。
上文代码解释:我们根据之前的df生成一个新的dataframe:signals。然后把ma5大于ma10的情况筛选出来,生成新的dataframe:upsig。再对所有ma5大于ma10的时候的涨跌绝对值进行一个简单的相加。可以看出,结果还是比较大的,说明这个策略在这只股票上其实还是有可行性的。
那么我们不禁要问,5和10这两个参数是不是最佳的呢?如果选5和20呢?结果怎么样?如果你能想到把上面的代码封装成函数,然后用这两个参数作为输入,用循环遍历的方法求出一个最大值,那么也是很可以的了。当然我们还有更加犀利的工具,那就是机器学习!
用上面的代码,一会儿就造出了接近500个特征,也就是我们机器学习重点的input_data,然后我们可以选取“change”作为我们的结果标签,需要优化的两个参数可以作为超参,使用LR,SVM,RF,ANN等模型把它们玩透。怎么玩?请听下回分解。
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码 即可领取↓↓↓
[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]](安全链接,放心点击)