【Python 金融 -002】快速计算收益,批量做 T 必备!
大家好,这里是程序员晚枫,小红薯也叫这个名字。
今天继续给大家分享 Python 金融相关的操作代码,上次给大家分享了:【金融】如何快速计算股票的收益?1行Python代码,高效做T
上次分享的技术有一个缺点:只能计算一笔买卖的收益情况,这是一种比较理想的情况。
然而现实世界中却是:我可能在不同的高价格卖出(买入)多次,然后在一个比较低的价格一次性买回来。
今天我们就来看一下,这种贴近真实情况的操作,如何用 1 行 Python 代码快速计算出批量做 T 的收益。
1、问题 & 解决思路
再上代码之前,先来描述一下我们的思考过程。因为我们最终解决问题的代码非常简单,但使用代码之前,你需要知道它计算的逻辑对不对。
问题
结合上一篇的做 T 原理,这次引申了一点,逻辑顺序如下:
对于同 1 支股票做 T,我在 12 元的时候卖出了 900 股,在 11 元的时候卖出了 300 股,在 10 元的时候卖出了 800 股,3 次交易一共卖出了 2000 股。
在什么价格把这 2000 股买回来,才能让我这次做 T 的收益 > 0 呢?
解决思路
我们可以设待求的价格为 x,我们需要确保 2 个条件同时成立:
3 次操作单独在 x 价格的收益总和 S > 0,
这个大于 0 的 总收益 S 需要 > 在 x 价格一次性买入 2000 股的手续费,
同时满足以上 2 个条件,并且<= x 的价格,一次性买入 2000 股就可以这次批量做 T 一定是赚的。
如果觉得以上这个思路有漏洞,请在评论区告诉我~
2、上代码
如果觉得以上思路没问题,我们就开始使用这段极简代码了。先上代码再解释:
运行以上代码,可以得到以下结果(数据是我模拟的):
其中,这次代码中有 2 处需要注意的地方:
和上次单次做 T 的代码相比,这次基于面向对象的思想,多了一个对象
MakeT()
,用了初始化你自己的手续费参数。具体参数见上面代码中的注释。你只需要修改
sale_price_num
中的数据,交易了几次,就增加几组:(数量,卖出价格)
3、写在后面
使用 Python 处理股票交易信息很方便,完全免费而且速度很快,但因为开源项目代码是人写的难免出 bug,再加上 Python 本身的一些底层的原因,难免出现计算结果和预期不符的情况。
大家在使用的过程中,一定要对计算出来的结果进行多次验证后,再进行使用!
另外,如对本代码有疑问或者建议,你可以在pofinance
这个开源项目的 issue 中和作者进行讨论~
🙋issue 链接:https://github.com/CoderWanFeng/pofinance/issues
版权声明: 本文为 InfoQ 作者【兆锋】的原创文章。
原文链接:【http://xie.infoq.cn/article/bcfc10b4e918373bbd04c5f0a】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论