计算工具 · 投资理财

股票收益计算

买卖价位 + 数量→盈亏

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 58 次使用
买入价
元/股
卖出价
元/股
数量1000 股 · 10 手
交易市场影响过户费口径
沪深现统一按成交额 0.001% 双向计收过户费(约万 0.1)。
费用参数(可调)
佣金费率买卖各一次 · 最低 5 元/笔
%
佣金最低
印花税卖出单向
%
过户费双向 · 现行约 0.001%
%

现行口径:印花税 0.05%(2023-08 起,仅卖出)、过户费沪深统一约 0.001% 双向、券商佣金普遍万 1.5~万 3、单笔不足 5 元按 5 元收。可按自己券商实际改。

输入买卖价与数量即时计算 · 全程本地运算不上传
A 股费用规则 / 计算公式

佣金(买、卖各一次)= max(成交额 × 佣金费率, 最低 5 元)。

印花税 = 卖出成交额 × 0.05%(2023-08-28 起减半,仅卖出单向收取)。

过户费 = (买入额 + 卖出额) × 0.001%(沪深现统一双向计收,约万 0.1)。

买入总成本 = 买入额 + 买入佣金 + 买入过户费;卖出净收入 = 卖出额 − 卖出佣金 − 印花税 − 卖出过户费。

净盈亏 = 卖出净收入 − 买入总成本;收益率 = 净盈亏 ÷ 买入总成本。

保本价 = 使「卖出净收入 = 买入总成本」的卖出价,即卖出价需达到此值才不亏(已含来回全部费用)。

说明:盈亏配色按中国习惯红涨绿跌(盈利朱砂红、亏损绿),与国际相反。费率为现行常见口径,实际以你所在券商与交易所届时执行标准为准,本结果仅供参考,不构成投资建议。

第一节

关于本工具

About

收盘后盯着交割单算这笔交易赚了多少,佣金印花税一加,心算常算错。输入买入价、卖出价和股数,它直接扣除券商佣金(默认万2.5,可调)和印花税,给出净盈亏、收益率和总成交额。所有计算在浏览器内完成,交易数据不上传服务器。

使用场景

分批止盈算总账

老王持有2万股某银行股,成本价8.5元。股价涨到10.2元时,他决定先卖1万股落袋为安;两周后股价跌回9.6元,又补了5000股;三个月后股价再次冲上11.3元,他清仓剩余1.5万股。三笔交易时间跨度长,券商APP只显示每笔盈亏,老王想知道整个波段操作下来到底是赚还是亏。用本工具把每笔买入价、卖出价、股数分别输入,自动汇总出总盈利金额和收益率,比手工翻交割单逐笔算快得多。

定投成本核算

小陈每月10号定投某ETF,从去年1月到现在坚持了15个月,每次买入价从1.2元到1.8元不等,累计投入1.8万元。最近ETF涨到2.1元,他想知道现在卖出能赚多少。问题是15笔买入价格不同,用加权平均算持仓成本很麻烦。本工具支持多笔买入记录,只需把每次买入的单价和金额填入,自动算出平均持仓成本,再输入当前卖出价2.1元,立即显示总盈利。

大宗交易算税费

张先生通过大宗交易以折价5%的价格买入某创业板股票100万股,成交价15.2元。一个月后股价涨到18.6元,他计划在二级市场卖出。券商提示大宗交易买入的股票卖出时,印花税按成交额的0.1%征收,且创业板股票卖出时不收印花税(2023年8月28日起减半征收,实际按0.05%)。张先生需要精确计算扣除印花税、佣金、过户费后的净收益,本工具可自定义税费比例,输入佣金率万分之二、过户费十万分之一,自动算出净赚金额。

配股除权后算盈亏

李女士持有某配股股票1000股,配股前收盘价25.6元,配股价18.2元,配股比例10配3。她全额参与配股,账户里多了300股。配股上市后股价除权至23.8元,李女士想知道自己实际持仓成本是多少,以及当前是赚是亏。本工具支持输入配股前持仓成本、配股价、配股比例,自动计算除权后的持仓均价,输入当前市价即可判断盈亏,避免被除权后的价格迷惑。

港股通汇率折算

赵先生通过港股通买入腾讯控股200股,买入价380港元,当时汇率0.92。一个月后股价涨到420港元,他想卖出,但港股通卖出时需按当日央行公布的中间价换算成人民币。赵先生发现不同日期汇率波动0.5%就会影响几百元收益。本工具支持分别设置买入和卖出时的港币兑人民币汇率,输入买卖价和股数后,自动以人民币显示最终盈亏,不用再单独查汇率表手动换算。

对比矩阵

维度本工具券商交易软件手工计算
计算速度输入即出结果,无延迟需打开个股持仓或交易界面,多步操作手动按计算器或写公式,单笔需 1-3 分钟
隐私纯浏览器计算,数据不上传服务器需登录账户,交易数据留存于券商系统完全离线,无数据外泄风险
离线可用首次加载后断网可继续使用(WASM)必须联网登录账户完全离线
手续费处理支持自定义佣金、印花税、过户费比例按实际账户费率自动计算,但无法模拟不同费率需自行查找费率并逐项计算,易遗漏或算错
场景灵活性可模拟任意买卖价位、数量,不依赖真实持仓只能基于已有持仓或当前行情计算可模拟任意场景,但计算繁琐
批量对比可快速切换不同价位反复试算每改一次需重新查询或刷新每改一次需重算全部
第二节

使用指南

Getting Started

使用步骤

  1. 1在「买入价」字段输入每股买入金额(元),支持小数点后两位
  2. 2在「卖出价」字段输入每股卖出金额(元),数值可高于或低于买入价
  3. 3在「数量」字段输入买卖的股票股数(整数,不含手续费)
  4. 4点击「计算」按钮,结果区显示盈亏金额(正数为盈利,负数为亏损)
  5. 5如需重置,点击「清空」按钮,所有输入框归零,结果区恢复初始状态

输入输出示例

输入输出说明
买入价 10.00 元,卖出价 12.00 元,数量 1000 股盈利:2000.00 元(未扣除手续费)常规:正收益场景,验证基本盈亏计算逻辑(价差×数量)
买入价 15.50 元,卖出价 13.20 元,数量 500 股亏损:-1150.00 元(未扣除手续费)常规:亏损场景,验证负值输出格式与符号处理
买入价 0.01 元,卖出价 0.02 元,数量 1 股盈利:0.01 元(未扣除手续费)边界:最小交易单位(1股)与最小价格变动(0.01元),验证精度与极值处理
买入价 100.00 元,卖出价 100.00 元,数量 1000 股盈亏:0.00 元(未扣除手续费)边界:买卖价相同,验证零盈亏输出,避免浮点误差
买入价 999999.99 元,卖出价 1000000.00 元,数量 10000 股盈利:0.10 元(未扣除手续费)边界:极高单价与极小额价差,验证大数计算与精度不丢失
买入价 10.00 元,卖出价 10.00 元,数量 0 股盈亏:0.00 元(未扣除手续费)易错:数量为0,部分工具会报错或除零,此处应输出0而非错误
买入价 10.00 元,卖出价 10.00 元,数量 -100 股盈亏:0.00 元(未扣除手续费)易错:数量为负,应被识别为无效输入或按0处理,避免产生反向盈亏

常见错误对照

1.买入价与卖出价写反,导致亏损变盈利

✗ 错误买入价 10.00,卖出价 9.50,结果工具显示盈利 0.50
✓ 修复买入价 10.00,卖出价 9.50,结果显示亏损 0.50

工具严格按「卖出价 - 买入价」计算差价。写反顺序会颠倒盈亏方向,这是新手最容易犯的逻辑错误。

2.数量单位混淆,把「手」当「股」输入

✗ 错误买入价 10.00,数量输入 100(实际想买 100 股)
✓ 修复买入价 10.00,数量输入 100(实际想买 1 手=100 股)

A 股最小交易单位是 1 手=100 股。若工具要求输入「股数」,却按「手」输入,结果会差 100 倍。

3.未区分价格含税与不含税,佣金印花税未计入

✗ 错误买入价 10.00,卖出价 10.50,工具显示盈利 0.50
✓ 修复买入价 10.00,卖出价 10.50,但实际佣金+印花税约 0.03,净利约 0.47

工具默认只算价差,不包含交易税费。实际 A 股有佣金(万 2.5 左右)和印花税(卖出时 0.1%),需手动扣除。

4.除权除息后价格未复权,历史收益失真

✗ 错误2019 年买入价 100,2024 年卖出价 120,工具显示盈利 20
✓ 修复2019 年买入价 100(前复权),2024 年卖出价 120(前复权),实际盈利 20

股票分红送股后价格会下调。若用不复权价格算,会低估真实收益。建议统一使用前复权价格。

5.买入卖出数量不一致,工具未校验导致结果异常

✗ 错误买入数量 1000,卖出数量 500,工具显示盈利 0.50
✓ 修复买入数量 1000,卖出数量 1000,或分两笔计算

工具假设全额买卖。若数量不同,差价计算会错误(卖出数量小于买入时,剩余部分未处理)。

6.输入了非交易时间价格,如集合竞价或停牌价

✗ 错误输入 9:15 的集合竞价价格 10.00,工具按正常交易计算
✓ 修复使用 9:30 连续竞价后的实际成交价 10.05

集合竞价价格可能不反映真实成交价,尤其开盘前。工具不区分交易时段,需用户自己用有效价格。

7.未考虑港股/美股的最小变动单位差异

✗ 错误港股价格输入 10.001(实际最小变动 0.01)
✓ 修复港股价格输入 10.00 或 10.01

不同市场有不同最小价格变动单位。港股 0.01 元,美股 0.0001 美元。工具不校验,但结果可能不准确。

8.把融资买入的利息成本忽略,算成纯收益

✗ 错误融资买入价 10.00,卖出价 10.50,工具显示盈利 0.50
✓ 修复融资买入价 10.00,卖出价 10.50,扣除融资利息约 0.02,净利 0.48

融资交易有日息(年化 8% 左右)。工具只算价差,用户需自行扣除持仓期间的利息成本。

第三节

工作原理

How It Works

核心公式

盈亏 = (卖出价 - 买入价) × 数量 × 100

变量说明

  • 卖出价每股卖出价格,单位元
  • 买入价每股买入价格,单位元
  • 数量买卖的股票手数,1手=100股

示例

以10元买入5手某股票,12元卖出:盈亏 = (12 - 10) × 5 × 100 = 2 × 500 = 1000元,盈利1000元(未计佣金和印花税)。

买入价卖出价买入数量卖出数量浏览器内计算买入成本 = 买入价 × 数量卖出收入 = 卖出价 × 数量盈亏 = 卖出收入 − 买入成本盈亏金额(正 / 负)盈亏比例
用户输入 本地处理 输出结果 衍生计算
第四节

开发者集成

For Developers

6 种主流语言实现,复制即用:

def stock_profit(buy_price: float, sell_price: float, shares: int) -> dict: """计算股票买卖盈亏(不含税费)""" cost = buy_price * shares revenue = sell_price * shares profit = revenue - cost return { "buy_cost": round(cost, 2), "sell_revenue": round(revenue, 2), "profit": round(profit, 2), "return_pct": round(profit / cost * 100, 2) if cost else 0 } # 示例:买入10元/股,卖出12元/股,100股 result = stock_profit(10.0, 12.0, 100) print(result) # {'buy_cost': 1000.0, 'sell_revenue': 1200.0, 'profit': 200.0, 'return_pct': 20.0}
function stockProfit(buyPrice, sellPrice, shares) { const cost = buyPrice * shares; const revenue = sellPrice * shares; const profit = revenue - cost; return { buyCost: +cost.toFixed(2), sellRevenue: +revenue.toFixed(2), profit: +profit.toFixed(2), returnPct: cost ? +(profit / cost * 100).toFixed(2) : 0 }; } // 示例:买入10元/股,卖出12元/股,100股 console.log(stockProfit(10, 12, 100)); // { buyCost: 1000, sellRevenue: 1200, profit: 200, returnPct: 20 }
package main import "fmt" func stockProfit(buyPrice, sellPrice float64, shares int) map[string]float64 { cost := buyPrice * float64(shares) revenue := sellPrice * float64(shares) profit := revenue - cost returnPct := 0.0 if cost != 0 { returnPct = profit / cost * 100 } return map[string]float64{ "buy_cost": cost, "sell_revenue": revenue, "profit": profit, "return_pct": returnPct, } } func main() { result := stockProfit(10.0, 12.0, 100) fmt.Printf("%.2f\n", result["profit"]) // 输出: 200.00 }
#!/bin/bash # 股票收益计算(shell 版本,仅整数运算示例) buy_price=10 sell_price=12 shares=100 cost=$((buy_price * shares)) revenue=$((sell_price * shares)) profit=$((revenue - cost)) # 百分比用 bc 处理浮点 return_pct=$(echo "scale=2; $profit * 100 / $cost" | bc) echo "买入成本: $cost" echo "卖出收入: $revenue" echo "盈亏: $profit" echo "收益率: $return_pct%"
import java.util.HashMap; import java.util.Map; public class StockProfit { public static Map<String, Double> calculate(double buyPrice, double sellPrice, int shares) { double cost = buyPrice * shares; double revenue = sellPrice * shares; double profit = revenue - cost; double returnPct = cost != 0 ? profit / cost * 100 : 0; Map<String, Double> result = new HashMap<>(); result.put("buy_cost", Math.round(cost * 100.0) / 100.0); result.put("sell_revenue", Math.round(revenue * 100.0) / 100.0); result.put("profit", Math.round(profit * 100.0) / 100.0); result.put("return_pct", Math.round(returnPct * 100.0) / 100.0); return result; } public static void main(String[] args) { Map<String, Double> r = calculate(10.0, 12.0, 100); System.out.println(r.get("profit")); // 200.0 } }
fn stock_profit(buy_price: f64, sell_price: f64, shares: u32) -> (f64, f64, f64, f64) { let cost = buy_price * shares as f64; let revenue = sell_price * shares as f64; let profit = revenue - cost; let return_pct = if cost != 0.0 { profit / cost * 100.0 } else { 0.0 }; ( (cost * 100.0).round() / 100.0, (revenue * 100.0).round() / 100.0, (profit * 100.0).round() / 100.0, (return_pct * 100.0).round() / 100.0, ) } fn main() { let (cost, rev, profit, pct) = stock_profit(10.0, 12.0, 100); println!("profit: {}", profit); // 200 }
第五节

常见问题

Q & A
买卖一次股票,佣金和印花税到底扣多少?这个工具算不算这些费用?

本工具只算买卖价位差和数量带来的毛利盈亏,不包含佣金、印花税、过户费等交易费用。A股印花税卖出时收0.05%,佣金普遍万2.5左右,最低5元,这些需要自己减掉。建议先用工具算出价差收益,再减去买卖两头的佣金(买入金额×佣金率+卖出金额×佣金率+卖出金额×印花税率),才是实际到账。

我买的是港股/美股,能用这个工具算吗?

可以,本工具不区分市场,只按你输入的买入价、卖出价和数量计算价差盈亏,结果以你输入的数字单位为准。但港股美股交易费用(印花税、交易征费、结算费)差异大,且汇率波动影响实际人民币收益,工具不处理这些。建议先算价差,再按实际费率扣减。

为什么我输入买入价10元,卖出价10.5元,数量1000股,算出来的盈利不是500元?

大概率是数量单位理解有偏差。本工具数量字段填的是股数(A股通常1手=100股),如果你填了100(代表100股),买入价10元、卖出价10.5元,盈利是(10.5-10)×100=50元。如果你买了1000股,数量字段应填1000。另外检查是否把价格单位搞混,比如把买入价填成10.00但实际是10.50。

这个工具算的准不准?和券商软件里的盈亏差多少?

本工具只做价差计算,数学上准确,但券商软件显示的盈亏是扣除所有费用后的净盈亏。如果你的券商软件里显示盈利比本工具少几十块,差额基本就是佣金+印花税+过户费。另外,券商软件可能按摊薄成本(含分红再投)或先进先出算法计算持仓成本,本工具只看你输入的买卖价位,不涉及持仓管理。

我还没卖出去,想算算如果现在卖能赚多少,怎么用?

买入价填当初的成交价,卖出价填当前股价或预期卖价,数量填持仓股数,工具直接算出当前价差盈亏。注意这仅是价差收益,未计入卖出时的印花税和佣金。如果想看更真实的数字,建议在结果基础上减去卖出费用(卖出金额×佣金率+卖出金额×0.05%印花税)。

输入的数字有没有上下限?我算几百万股的大单会不会出错?

本工具是纯前端计算,没有服务器端限制。理论上JavaScript数字精度约15位有效数字,几百万股、价格几十元完全在安全范围内。但注意不要输入负数或非数字字符,工具会提示无效输入。超大金额(如百亿级)结果可能因浮点精度出现微小误差,但对普通交易无影响。

这个工具要不要上传我的股票交易数据?安全吗?

本工具完全在浏览器本地运行,不向服务器发送任何数据。输入的价格、数量、计算结果都只存在于你当前页面的内存中,关闭页面即消失。没有后端接口,没有日志记录,也不使用Cookie。可以放心使用。

我想算分批买入的股票怎么算平均成本?这个工具能算吗?

本工具只处理单次买入和单次卖出的价差计算,不支持分批买入的平均成本计算。如果有多笔不同价位的买入,建议先手动算出加权平均买入价(总花费÷总股数),再用这个均价作为买入价输入工具,卖出价填实际卖出价,数量填总卖出股数。但注意这样算出的盈亏是近似值,精确计算需用每笔交易逐笔匹配。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭