【理财类-01-07】20260717 股票根据“股价*佣金费率大于等于5元”,推算最适合购买或卖出股数。(Python)
背景需求【理财类-01-06】20260716 股票“差价”收益计算和excel统计Pythonhttps://mp.csdn.net/mp_blog/creation/editor/162911231我发现有些股数少会导致佣金总额小于5元但是实际支付是5元就会损失佣金所以我要预先根据“买入价、卖出价”和“佣金比例”“预设100股-100000股整数股”来推算正好在大于等于5元的那个股数在107行写入股票代码和买入价或卖出价 输入“买入价*预设股数100-10000*佣金比例沪0.0001843深0.0001654”当佣金正好大于等于5“就确定用这个股数” 豆包、阿夏 20260716 def calc_min_shares(code: str, buy_price: float) - dict: 根据股票代码、买入价计算刚好佣金≥5元的最小股数100~10000100手递增 :param code: 股票代码字符串如600001、300001 :param buy_price: 买入单价 :return: 结果字典 # 1. 校验股票代码长度提取前两位 if len(code) ! 6 or not code.isdigit(): raise ValueError(股票代码必须是6位纯数字) code_prefix code[:2] # 2. 匹配市场与佣金费率 if code_prefix in (60, 68): market 沪市 commission_rate 0.0001843 # 0.1843‰ elif code_prefix in (00, 30): market 深市 commission_rate 0.0001654 # 0.1654‰ else: raise ValueError(仅支持60/68开头沪市、00/30开头深市A股代码) min_target_shares None target_commission 0.0 target_amount 0.0 # 3. 遍历100~10000股步长100A股1手100股 for shares in range(100, 100001, 100): trade_amount buy_price * shares real_commission trade_amount * commission_rate # 找到第一个佣金≥5元的股数直接跳出循环 if real_commission 5: min_target_shares shares target_amount trade_amount target_commission real_commission break # 4. 封装返回结果 result { 股票代码: code, 市场: market, 佣金费率: f{commission_rate * 1000}‰, 买入单价: buy_price, 搜索区间: 100 ~ 10000股(100股递增) \n--------------- } if min_target_shares is not None: result[满足佣金≥5元最小股数] min_target_shares result[计算佣金(未保底)] round(target_commission, 4) result[实际收取佣金(保底5元)] max(5, round(target_commission, 2)) result[]---------------------------------- result[对应成交总金额] round(target_amount, 2) else: result[提示] 区间100-10000股内所有持仓计算佣金均不足5元统一按5元收取 return result # ---------------------- 测试调用示例 ---------------------- if __name__ __main__: # 示例1沪市60开头股价10元 try: res1 calc_min_shares(600000, 10.0) print( 测试1 沪市600000股价10元 ) for k, v in res1.items(): print(f{k}: {v}) except Exception as e: print(错误, e) print(\n -*60 \n) # 示例2深市30开头股价5元 try: res2 calc_min_shares(300001, 5.0) print( 测试2 深市300001股价5元 ) for k, v in res2.items(): print(f{k}: {v}) except Exception as e: print(错误, e) print(\n -*60 \n) # 示例3低价股10000股佣金仍不足5 try: res3 calc_min_shares(000001, 0.5) print( 测试3 深市000001股价0.5元 ) for k, v in res3.items(): print(f{k}: {v}) except Exception as e: print(错误, e) # 交互式输入版本运行后手动输入 print(\n 交互式输入 ) # stock_code input(请输入6位股票代码) # price float(input(请输入买入单价)) stock_code 002229 # price 9.5 # 3200 5.03 price 9.7 # 3200 5.13 output calc_min_shares(stock_code, price) for key, val in output.items(): print(f{key}: {val})我再预设一笔9.8和10股价越高可以买的股数逐渐减少从3200到3100因为佣金总额高了但是如果差价过大9.5元3200股和10元3100股股价不一样两种情况以买入9.5元为主、3200股则卖出10元 3200以卖出10元为主、3100股则买入9.5元 3100低买3200高卖3200佣金都大于5高买3100低买3200低买的佣金小于5但是只是微微小于5以上需要分别输入买入价和卖出价现在我要同时计算买入和卖出价对应的最大股数 同时计算“买入价和卖出价*预设股数100-10000*佣金比例沪0.0001843深0.0001654”当佣金正好大于等于5“就确定用这个股数” 推算买入价最大股数卖出价最大股数 豆包、阿夏 20260716 def calc_min_shares(code: str, price: float) - dict: 根据股票代码、价格计算刚好佣金≥5元的最小股数100~10000100递增 :param code: 6位股票代码字符串 :param price: 买入/卖出单价 :return: 单组价格对应的计算结果字典 # 1. 校验股票代码 if len(code) ! 6 or not code.isdigit(): raise ValueError(股票代码必须是6位纯数字) code_prefix code[:2] # 2. 匹配市场佣金费率 if code_prefix in (60, 68): market 沪市 commission_rate 0.0001843 # 0.1843‰ elif code_prefix in (00, 30): market 深市 commission_rate 0.0001654 # 0.1654‰ else: raise ValueError(仅支持60/68开头沪市、00/30开头深市A股代码) min_target_shares None target_commission 0.0 target_amount 0.0 # 3. 遍历100~10000股步长100 for shares in range(100, 10001, 100): trade_amount price * shares real_commission trade_amount * commission_rate if real_commission 5: min_target_shares shares target_amount trade_amount target_commission real_commission break # 4. 组装结果 result { # 股票代码: code, # 市场: market, # 佣金费率: f{commission_rate * 1000}‰, 成交单价: round(price, 2), # 搜索区间: 100 ~ 10000股(100股递增) } if min_target_shares is not None: result[满足佣金≥5最小股数] min_target_shares # result[对应成交总金额] round(target_amount, 2) # result[理论计算佣金] round(target_commission, 4) # result[实际收取佣金(保底5元)] max(5, round(target_commission, 2)) else: result[提示] 100-10000股内全部佣金不足5元统一收5元保底佣金 return result # ---------------------- 测试调用 ---------------------- if __name__ __main__: # 测试案例 try: stock_code 002229 buy_price 9.5 # 买入单价 sell_price 10.0 # 卖出单价 # 分别计算买入、卖出两套数据 buy_result calc_min_shares(stock_code, buy_price) sell_result calc_min_shares(stock_code, sell_price) print( 买入计算结果 ) for k, v in buy_result.items(): print(f{k}: {v}) print(- * 60) print( 卖出计算结果 ) for k, v in sell_result.items(): print(f{k}: {v}) except Exception as e: print(程序异常, e) print(\n 交互式手动输入模式 ) try: # input_code input(请输入6位股票代码) # input_buy float(input(请输入买入单价)) # input_sell float(input(请输入卖出单价)) input_code 002229 input_buy 9.3 input_sell 10 res_buy calc_min_shares(input_code, input_buy) res_sell calc_min_shares(input_code, input_sell) print(\n 手动输入-买入结果 ) for k, v in res_buy.items(): print(f{k}: {v}) print(- * 60) print( 手动输入-卖出结果 ) for k, v in res_sell.items(): print(f{k}: {v}) except Exception as err: print(输入错误, err)做多低买股数 与高卖股数不一样做空高卖股数 与低买股数不一样低买的相同股数的佣金会小于5。所以高卖可以多加100股

相关新闻

【Superset 汉化】完整解决方案 实测有效!

【Superset 汉化】完整解决方案 实测有效!

Superset2.0.1这个版本安装完是没有多语言选择功能的,所以我们通过文件配置增加这个功能: 找到自己的superset的目录,我的是在/opt/module/miniconda3/envs/superset/ 找不到目录的可以通过 locate /superset 命令查找 创建文件 superset_con…

2026/7/18 4:08:23 阅读更多 →
SQLite存储类与动态类型机制深度解析

SQLite存储类与动态类型机制深度解析

1. 项目概述:SQLite 的“类型自由”不是没规矩,而是换了一套更聪明的规矩你刚接触 SQLite 时,大概率会被它那句官方宣传语搞懵:“SQLite does not have a separate Boolean storage class.”(SQLite 没有独立的布尔存储…

2026/7/18 4:08:23 阅读更多 →
接了8个大模型API之后,我花一周时间算清了这笔AI账

接了8个大模型API之后,我花一周时间算清了这笔AI账

我是个产品负责人,不是技术出身。但过去半年,因为业务需要,我被迫成了一个"大模型API半个专家"。 起因很简单:老板让我评估一下公司的AI应用成本,看看有没有优化空间。我心想这不就是看看账单嘛&#xff0c…

2026/7/18 4:08:23 阅读更多 →

最新新闻

Ubuntu 24.04 生产环境 Adoptium Temurin JDK 8 安装与配置指南

Ubuntu 24.04 生产环境 Adoptium Temurin JDK 8 安装与配置指南

Ubuntu 24.04 生产环境 Adoptium Temurin JDK 8 安装与配置指南项目说明适用系统Ubuntu 24.04 LTSJava 版本8(Temurin 8u492)发行版Adoptium Temurin(Eclipse 基金会)安装路径/usr/lib/jvm/temurin-8-jdk-amd64包管理APT&#xff…

2026/7/18 4:52:39 阅读更多 →
MATLAB入门

MATLAB入门

1.powergui模块以及模式设置2..slxc文件是啥

2026/7/18 4:52:39 阅读更多 →
从零掌握JMeter性能测试:安装、HTTP压测与数据库连接实战

从零掌握JMeter性能测试:安装、HTTP压测与数据库连接实战

1. 项目概述:从零构建性能测试环境 性能测试,听起来是个挺唬人的词,很多刚入行的朋友可能会觉得这是测试工程师或者高级开发才需要掌握的技能。但实际上,无论你是后端开发、运维,还是想了解自己写的接口到底能扛住多大…

2026/7/18 4:52:39 阅读更多 →
VLA模型:从视觉语言对齐到机器人动作生成的工程实践

VLA模型:从视觉语言对齐到机器人动作生成的工程实践

1. 从“看”到“做”:VLA模型如何重塑机器人学最近几年,如果你关注AI和机器人领域,会频繁听到一个词:VLA,即视觉-语言-动作模型。这听起来像是一个技术术语的简单堆叠,但它背后代表的,是机器人从…

2026/7/18 4:52:39 阅读更多 →
Claude Code国内实操指南:CLI代理安装、WSL2配置与API密钥认证

Claude Code国内实操指南:CLI代理安装、WSL2配置与API密钥认证

1. 这不是另一个“AI编程插件”:Claude Code 的本质定位与国内实操前提 很多人看到“Claude Code”四个字,第一反应是:“哦,又一个 VS Code 插件?”——这恰恰是2026年国内开发者最容易踩的第一个认知坑。我去年在三个…

2026/7/18 4:52:39 阅读更多 →
企业认知基础设施怎么落地 —— 从 ERP 到企业思考系统的能力拼图

企业认知基础设施怎么落地 —— 从 ERP 到企业思考系统的能力拼图

ERP 解决了企业运营的"记录与执行"——订单流转、库存出入、财务记账,每一笔业务都被系统准确地记下来。但 ERP 没解决另一半问题:当 AI 需要理解"这笔订单为什么被延期"“这台设备该不该停机”"这个供应商为什么连续出问题&qu…

2026/7/18 4:51:39 阅读更多 →

日新闻

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:38 阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:38 阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:38 阅读更多 →

周新闻

月新闻