A 股交易手续费(2023年8月)及 Python代码实现
A股交易手续费构成
A股股票交易手续费主要有3个部分:印花税、过户费、券商佣金。
其中,
印花税 单向收取,卖出时按交易金额的1‰ 计算,自2023年8月28日起,证券交易印花税实施减半征收;
过户费 自2015年8月1日起,沪深市场A股交易过户费的收费标准,统一调整为按照成交金额0.02‰向买卖双方投资者分别收取。交易过户费为中国结算收费,证券经营机构不予留存;自2022年4月29日起,中国结算决定将股票交易过户费总体下调50%,即股票交易过户费由现行沪深市场A股按照成交金额0.02‰、北京市场A股和挂牌公司股份按照成交金额0.025‰双向收取,统一下调为按照成交金额0.01‰双向收取。
券商佣金 为买卖时双向收取,具体费率,各家券商不同,最高为交易金额的3‰,一般单笔交易佣金不满5元按5元收取。
交易所规费 包括经手费和证管费,其中经手费交交易所,证管费交证监会(由交易所代收)。交易所规费包含在交易券商佣金里,不单独收取。自2015年8月1号起,上海交易所A股规费为:经手费0.00487% (双向收),证管费0.002% (双向收),合计为交易金额的0.00687%;自2015年8月1号起,深圳交易所A股规费为:经手费0.00487% (双向收),证管费0.002% (双向收),合计为交易金额的0.00687%;
Python 代码实现
# 费率 Fee Rate
TRANSFER_FEE = 1 * 10**-5 # 过户费,0.001%
STAMP_DUTY = 0.001 * 0.5 # 印花税减半: 0.1% * 0.5
BROKERAGE_COMMISSION = 0.0001 # 券商佣金:0.01%
# 函数 compute_transaction_fee 计算交易手续费
def compute_transaction_fee(amount, buy=True, stamp_duty=STAMP_DUTY, brokerage_commission=BROKERAGE_COMMISSION, transfer_fee=TRANSFER_FEE):
transaction_fee = amount * (transfer_fee + brokerage_commission)
transaction_fee = round(transaction_fee, 2)
print('过户费+券商佣金:{}'.format(transaction_fee))
if not buy:
transaction_fee += amount * stamp_duty
return transaction_fee
if __name__ == '__main__':
# stock transaction
stock_hands = 1 # 股票手数
stock_price = 30.08 # 股票价格
transaction_amount = stock_price * stock_hands * 100 # 交易金额
# compute transaction fee
transaction_fee = compute_transaction_fee(transaction_amount, buy=False)
print('交易金额:{}'.format(transaction_amount))
print('交易费用:{}'.format(transaction_fee))