Python富途普通交易者交易费用计算脚本

[本文出自天外归云的博客园]

用途:交易费用计算

原理:根据富途app的港股费用说明开发

适用于:普通交易者——平台收费固定式

脚本如下:

"""根据股数和股价计算 futu 交易费用"""
import argparse
import math
from typing import Union

from loguru import logger


class Futu:
    def __init__(self) -> None:
        pass

    @staticmethod
    def calc_trade_pay(stock_count: int, price: Union[int, float]) -> float:
        """计算交易费用

        Args:
            stock_count (int): 股数.
            price (Union[int, float]): 股价.

        Returns:
            float: 交易费用
        """
        佣金 = (
            price * stock_count * 0.03 * 0.01
            if price * stock_count * 0.03 * 0.01 >= 3
            else 3
        )
        平台使用费 = 15
        交收费 = (
            0.002 * 0.01 * stock_count * price
            if 0.002 * 0.01 * stock_count * price >= 2
            else 2
        )
        交收费 = 交收费 if 交收费 <= 100 else 100
        印花税 = math.ceil(0.13 * 0.01 * price * stock_count)
        交易费 = (
            0.00565 * 0.01 * price * stock_count
            if 0.00565 * 0.01 * price * stock_count >= 0.01
            else 0.01
        )
        证监会交易征费 = (
            0.0027 * 0.01 * price * stock_count
            if 0.0027 * 0.01 * price * stock_count >= 0.01
            else 0.01
        )
        财务汇报局交易征费 = 0.00015 * 0.01 * price * stock_count
        交易费用 = 佣金 + 平台使用费 + 交收费 + 印花税 + 交易费 + 证监会交易征费 + 财务汇报局交易征费
        交易费用 = math.ceil(交易费用 * 100) / 100
        logger.warning(f"共需缴纳: {交易费用} 港币")
        return 交易费用


# 测试数据
# python futu.py 100 332 —— 73.79
# python futu.py 400 330 —— 240.46
if __name__ == "__main__":
    # 创建参数解析器
    parser = argparse.ArgumentParser(description="根据股数和股价计算交易费用")

    # 添加参数
    parser.add_argument("stock_count", type=int, help="股数")
    parser.add_argument("price", type=float, help="股价")

    # 解析命令行参数
    args = parser.parse_args()

    # 获取参数值
    stock_count = args.stock_count
    price = args.price

    # 计算交易费用
    Futu.calc_trade_pay(stock_count=stock_count, price=price)

运行结果:

posted @ 2023-08-16 10:11  天外归云  阅读(78)  评论(0编辑  收藏  举报