Python操作股票,快速计算收益,批量做T必备!

简介: 赶紧试试

大家好,这里是程序员晚枫,小红薯也叫这个名字。

今天继续给大家分享Python金融相关的操作代码,上次给大家分享了:【金融】如何快速计算股票的收益?1行Python代码,高效做T

上次分享的技术有一个缺点:只能计算一笔买卖的收益情况,这是一种比较理想的情况。

然而现实世界中却是:我可能在不同的高价格卖出(买入)多次,然后在一个比较低的价格一次性买回来。

今天我们就来看一下,这种贴近真实情况的操作,如何用1行Python代码快速计算出批量做T的收益。

1、问题 & 解决思路

再上代码之前,先来描述一下我们的思考过程。因为我们最终解决问题的代码非常简单,但使用代码之前,你需要知道它计算的逻辑对不对。

问题

结合上一篇的做T原理,这次引申了一点,逻辑顺序如下:

  1. 对于同1支股票做T,我在12元的时候卖出了900股,在11元的时候卖出了300股,在10元的时候卖出了800股,3次交易一共卖出了2000股。
  2. 在什么价格把这2000股买回来,才能让我这次做T的收益 > 0 呢?

解决思路

我们可以设待求的价格为x,我们需要确保2个条件同时成立

  1. 3次操作单独在x价格的收益总和S > 0,
  2. 这个大于0 的 总收益S需要 > 在x价格一次性买入2000股的手续费,
  3. 同时满足以上2个条件,并且<= x的价格,一次性买入2000股就可以这次批量做T一定是赚的。

如果觉得以上这个思路有漏洞,请在评论区告诉我~

2、上代码

如果觉得以上思路没问题,我们就开始使用这段极简代码了。先上代码再解释:

# pip install pofinance
from pofinance import MakeT

# pip install pofinance

t = MakeT()
"""
加载手续费
Args:
    w_rate: 手续费,默认万2.5
    min_rate: 单笔最低手续费,默认5元
    stamp_tax: 印花税,默认千1
"""
sale_price_num = [(900, 12), (300, 11),(800, 10)]
res=t.batch_t(sale_price_num)
print(res)

运行以上代码,可以得到以下结果(数据是我模拟的):

(2000,11.87)

其中,这次代码中有2处需要注意的地方:

  1. 和上次单次做T的代码相比,这次基于面向对象的思想,多了一个对象MakeT(),用了初始化你自己的手续费参数。具体参数见上面代码中的注释。
  2. 你只需要修改sale_price_num中的数据,交易了几次,就增加几组:(数量,卖出价格)

3、写在后面

使用Python处理股票交易信息很方便,完全免费而且速度很快,但因为开源项目代码是人写的难免出bug,再加上Python本身的一些底层的原因,难免出现计算结果和预期不符的情况。

大家在使用的过程中,一定要对计算出来的结果进行多次验证后,再进行使用!

另外,如对本代码有疑问或者建议,你可以在pofinance这个开源项目的issue中和作者进行讨论~

相关文章
|
2月前
|
Python
【10月更文挑战第10天】「Mac上学Python 19」小学奥数篇5 - 圆和矩形的面积计算
本篇将通过 Python 和 Cangjie 双语解决简单的几何问题:计算圆的面积和矩形的面积。通过这道题,学生将掌握如何使用公式解决几何问题,并学会用编程实现数学公式。
168 60
|
19天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
43 18
|
22天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
24 7
|
1月前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
83 3
|
2月前
|
Python
【10月更文挑战第15天】「Mac上学Python 26」小学奥数篇12 - 图形变换与坐标计算
本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换,并学会用编程实现坐标变化。
69 1
|
2月前
|
机器学习/深度学习 移动开发 Python
【10月更文挑战第11天】「Mac上学Python 22」小学奥数篇8 - 排列组合计算
本篇将通过 Python 和 Cangjie 双语讲解如何计算排列与组合。这道题目旨在让学生学会使用排列组合公式解决实际问题,并加深对数学知识和编程逻辑的理解。
69 4
|
2月前
|
数据可视化 Python
【10月更文挑战第12天】「Mac上学Python 23」小学奥数篇9 - 基础概率计算
本篇将通过 Python 和 Cangjie 双语实现基础概率的计算,帮助学生学习如何解决简单的概率问题,并培养逻辑推理和编程思维。
56 1
|
2月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
51 0
|
2月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
99 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
Python 中的计算与应用
Python 中的计算与应用
35 0