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))

 

posted @ 2023-08-31 23:01  klchang  阅读(1194)  评论(1编辑  收藏  举报