
炒股的成本到底有哪些
很多人买卖股票只看价格涨跌,账户里钱多了就高兴,钱少了就骂市场。压根没算过一笔账:每买一次、每卖一次,交易所和券商都要抽走一点钱。这些钱单笔看着不起眼,一年下来可能吃掉你不少利润。
股票交易的成本分三块:券商佣金、印花税、过户费。前两个所有人都要交,第三个只有买上海交易所的股票才收。
券商佣金
这是你开户的证券公司收的。国家规定最高不超过成交金额的千分之三,但那是上限,现在竞争激烈,普遍在万分之二到万分之三。资金量大或者谈判能力强,能拿到万分之一,甚至更低。
有个关键点:很多券商设有最低收费标准,通常是5元。你买1000块钱股票,按万分之一算佣金才0.1元,但券商照样收你5元。小额交易频繁的人,这个最低5元会狠狠咬你一口。

买卖双向都收佣金。买的时候收,卖的时候也收。
印花税
这是国家收的,只有卖出股票时才交。税率是成交金额的千分之零点五,也就是万分之五。买入时不收。
比如你卖出10万元股票,印花税就是100000×0.0005=50元。这笔钱跑不掉,全国统一。
过户费
这个名字听着像房产过户,其实是股票从一个人名下转到另一个人名下时,中国结算公司收的。
上海交易所的股票要收,深圳交易所的不收。费率是成交金额的万分之零点一,也就是0.001%。买卖双向都收。
你买10万元上海股票,过户费是100000×0.00001=1元。金额很小,但积少成多。
一笔交易到底花多少钱
拿具体数字算一遍。
假设你买入10万元上海股票,佣金万分之一,那么:
佣金:100000×0.0001=10元
印花税:0元(买入不收)
过户费:100000×0.00001=1元
合计:11元
等你卖出这10万元股票,价格没涨没跌,那么:
佣金:100000×0.0001=10元
印花税:100000×0.0005=50元
过户费:100000×0.00001=1元
合计:61元
一买一卖,总成本72元。相当于你10万元本金,来回一趟要赚0.072%才能回本。
如果佣金是万分之三,买入佣金变成30元,卖出佣金30元,加上印花税和过户费,总成本变成112元。来回一趟要赚0.112%才不亏。
别小看这点差别。一年交易50次,万分之一和万分之三的佣金差距,就能差出几千块钱。
期货的手续费逻辑完全不同
期货交易不收印花税,也没有过户费。期货的手续费分两种收法:按手数收,或者按成交金额收。
按手数收的品种,比如玉米,一手手续费可能就1.2元,开仓收一次,平仓再收一次。你交易10手玉米,开平仓总共24元。
按成交金额收的品种,比如螺纹钢,费率通常是万分之一。螺纹钢价格4000元,一手10吨,合约价值4万元,手续费就是4元。开平仓各收一次,共8元。
期货手续费里还有个“平今仓”的概念。有些品种当天开仓当天平仓,手续费会翻倍甚至更高。交易所这么设计是为了抑制过度投机。你做日内交易,必须搞清楚这个品种平今仓的手续费标准。
不同期货公司加收的佣金差别很大。交易所收1元,期货公司可能加收到3元、5元。开户前一定要谈,现在竞争激烈,加收几分钱甚至不加收的都有。
量化交易里的成本计算
做量化策略回测,手续费必须写进代码里。不然回测收益虚高,实盘一跑就亏。
下面是一段简单的Python代码,计算A股交易成本:
def a_share_cost(price, shares, is_buy, commission_rate=0.0001, min_commission=5):
amount = price * shares
commission = max(amount * commission_rate, min_commission)
stamp_tax = 0 if is_buy else amount * 0.0005
transfer_fee = amount * 0.00001 # 上海股票,深圳改为0
total = commission + stamp_tax + transfer_fee
return total
# 买入10万元上海股票
buy_cost = a_share_cost(10, 10000, True)
# 卖出10万元上海股票
sell_cost = a_share_cost(10, 10000, False)
print(f"买入成本:{buy_cost}元,卖出成本:{sell_cost}元")
回测时每次买卖都调用这个函数,从收益里扣掉。很多人的策略看似年化30%,扣完手续费和滑点,实际到手可能不到15%。
期货成本计算类似,但要区分按手数还是按金额,还要注意平今仓加收。
def futures_cost(price, hands, multiplier, is_open, fee_type='by_hands', fee_rate=0.0001, fee_per_hand=1.2, close_today_multiplier=1):
if fee_type == 'by_hands':
cost = hands * fee_per_hand
else:
amount = price * hands * multiplier
cost = amount * fee_rate
if not is_open:
cost *= close_today_multiplier
return cost
策略里把成本参数调准,回测结果才靠得住。
怎么降低交易成本
第一,谈佣金。开户前多问几家,现在万分之一是标配,资金量大还能更低。不要用默认的万分之三,那是给懒人准备的。
第二,减少无谓交易。每次买卖都有成本,来回折腾10次,光手续费就吃掉1%以上。看准了再动手,别手痒。
第三,注意最低5元佣金。小额交易尽量合并,买5000块和买10000块,佣金可能都是5元,分开买就是白送钱。
第四,期货选品种。日内高频选平今仓免费的品种,或者手续费低的品种。做趋势的可以忽略平今仓,但也要比较不同期货公司的加收标准。
第五,量化回测必须扣成本。别用零成本回测骗自己,实盘会教你做人。
交易成本就像开车时的风阻,速度越快影响越大。你做短线,成本就是生死线;你做长线,成本影响小,但也不能无视。算清楚这笔账,才知道自己到底在赚谁的钱。
