背景

最近在自学《中级会计-实务》,“金融资产与金融负债”介绍了 摊余成本(债权投资)、公允价值其他综合收益(其他债权投资+其他债权投资工具)、公允价值当期损益(交易性金融资产)

其中最后一项目交易性金融资产,就是以“赚取差价”为目的股债基投资方式。

这让我想到了之前买过的“ZFB积存金”就是以“赚差价”为目的灵活投资方式,交易时间长(9点-23点)。4月金价1050元买过,结果高位套住,就没有再看它了。今天我打开账户看,发现金价比较低879.30,就又买了一笔进去,想博一个差价。,

我记得以前我都是等“买入价+10元”卖出(这个概率比较低,能成交情况较少,所以最后高位套牢),等所以这次,我想用Python计算卖出价,确定最小卖出价可以保本。

测试内容

购入金额:10000万

购入克数:一次性购入11.3753克

购入克数:11.3753G

一、卖出价是多少元,才能保住本金(第一版:保本盈亏平衡计算器)

输入好买入价和总克数

'''
第一版:保本盈亏平衡计算器(求上涨多少不亏)
1、ZFB积存金ZSYH能回本的最低卖出价
2、卖出手续费固定0.4%
豆包、阿夏
20260715
'''
def calc_gold_break_even():
    # 固定测试数值,取消注释下面两行即可手动输入
    # 1万
    buy_price =  879.1   
    weight = 11.3753
   
# #    10万
#     buy_price =  879.1
#     weight = 113.7528
    # 买入总本金
    total_cost = buy_price * weight

    # 保本卖出单价公式:卖出价 * (1 - 0.004) = 买入单价
    sell_break_price = buy_price / 0.996
    rise_per_gram = sell_break_price - buy_price
    rise_rate = rise_per_gram / buy_price * 100

    # 保本卖出总金额
    total_sell_break = sell_break_price * weight
    fee = total_sell_break * 0.004

    # 保本状态下总收益为0,收益率=0%
    total_profit = (total_sell_break - fee) - total_cost
    profit_rate = total_profit / total_cost * 100 if total_cost != 0 else 0

    print("===== 计算结果(仅0.4%赎回手续费,不含报价点差) =====")
    print(f"买入单价:{buy_price:.2f} 元/克")
    print(f"持有克数:{weight:.4f} g")
    print(f"投入总本金:{total_cost:.2f} 元")
    print("-" * 55)
    print(f"保本卖出单价:{sell_break_price:.2f} 元/克")
    print(f"保本净收益:{total_profit:.2f} 元")
    print(f"本金收益率:{profit_rate:.3f} %(保本收益趋近于0)")
    print("-" * 55)
    print(f"每克需要上涨:{rise_per_gram:.2f} 元")
    print(f"需要上涨幅度:{rise_rate:.3f} %")
    print(f"保本卖出总金额:{total_sell_break:.2f} 元")
    print(f"卖出扣除手续费:{fee:.2f} 元")
    

if __name__ == "__main__":
    calc_gold_break_even()

终端显示(虚线分割,重点突出)

也就是在879元的额度下,11.3G,最少要涨3.53元,卖出才能保本。收益率为0%

我发现实际支付了10000元,但是,根据克数和买入价,实际支付10000.03

属于正常误差,忽略不计

二、收益预期+105元/克(第二版:目标收益定价计算器)

我原来只卖1G,就是期待每克能涨10元。,通过预计收入额来判断卖出价是多少。

手动输入买入价、克数(保留小数点后4位)、每克预期收益

'''
第二版:目标收益定价计算器(指定每克纯利 5 元,求卖出价)
1、ZFB积存金ZSYH 每克有指定纯收入,计算卖出价点位
2、卖出手续费固定0.4%
新增:本金收益率=目标总纯利÷投入本金×100%
豆包、阿夏
20260715
'''

def calc_gold_profit_target():
    # 手续费固定 0.4%
    sell_fee_rate = 0.004

    # ============ 模式1:固定你的持仓数据(直接运行) ============
    buy_price = 879.1
    weight = 11.3753
    target_profit_per_g = 10  # 目标每克纯收益5元 :0.569%  10:1.138 %
    # ==========================================================

    # ============ 模式2:手动输入(注释上面,取消下面注释即可) ============
    # buy_price = float(input("请输入买入单价(元/克):"))
    # weight = float(input("请输入持有克数:"))
    # target_profit_per_g = float(input("请输入目标每克纯收益(元):"))
    # ===================================================================

    # 实际投入本金,保留2位小数匹配支付金额
    total_cost = round(buy_price * weight, 2)
    # 需要到手的总资金 = 本金 + 目标总纯利润
    target_total_profit = target_profit_per_g * weight
    target_get_cash = total_cost + target_total_profit

    # 计算公式推导:卖出到手 = 卖出单价 * 克重 * (1-手续费率)
    need_sell_price = target_get_cash / (weight * (1 - sell_fee_rate))
    rise_per_gram = need_sell_price - buy_price
    rise_percent = rise_per_gram / buy_price * 100

    # 卖出成交额、扣除手续费
    total_sell_amount = need_sell_price * weight
    deduct_fee = total_sell_amount * sell_fee_rate

    # 新增:本金收益率(目标利润/本金百分比)
    if total_cost != 0:
        target_profit_rate = target_total_profit / total_cost * 100
    else:
        target_profit_rate = 0

    # 打印输出结果
    print("=" * 10)
    print("        支付宝浙商积存金盈利测算工具")
    print(f"手续费规则:卖出收取成交金额{sell_fee_rate*100}%")
    print("=" * 10)
    print(f"买入单价:{buy_price:.2f} 元/克")
    print(f"持有克数:{weight:.4f} g")
    print(f"实付总本金:{total_cost:.2f} 元")  
    
    print("-" * 55)
    print(f"必须达到的卖出单价:{need_sell_price:.2f} 元/克")
    print(f"目标每克纯收益:{target_profit_per_g:.2f} 元")
    print(f"目标整体纯收益:{target_total_profit:.2f} 元")
    print(f"目标本金收益率:{target_profit_rate:.3f} %(总利润÷投入本金)")
    print("-" * 55)
    print(f"金价需要上涨:{rise_per_gram:.2f} 元/克")
    print(f"对应涨幅:{rise_percent:.3f} %")
    print("-" * 10)
    print(f"卖出总成交额:{total_sell_amount:.2f} 元")
    print(f"卖出扣除手续费:{deduct_fee:.2f} 元")
    print(f"卖出后到手总金额:{target_get_cash:.2f} 元")
    print("=" * 10)
   

if __name__ == "__main__":
    calc_gold_profit_target()

如果每克要纯收入5元,就要涨8.55元,在887.65元时卖出

如果改成每克收入10元

计算后要涨13.57元,892.67元卖出才能获得,获益比例 1.138%

三、根据卖出价、买入价计算收入(第三版:持仓实际损益计算器(输入买卖价算盈亏,可负))

积存金价格大部分情况都是稳定不变的,偶尔上窜下跳,所以卖出的价格有时并非预期的价格,所以用Python根据(卖出价(扣除0.4%税费)-买入价)*克数来计算实际差价收益

输入买入价、实际卖出价格(假设)、克数

'''
第三版:持仓实际损益计算器(输入买卖价算盈亏,可负)
1、ZFB积存金ZSYH 买入单价、卖出单价、克数,自动算净收益
2、卖出手续费固定0.4%
新增:收益率 = 总净收益 ÷ 投入本金 × 100%
豆包、阿夏
20260715
'''
def calc_gold_actual_profit():
    sell_fee_rate = 0.004  # 卖出手续费0.4%

    # 手动输入数据
    buy_price = 879.1
    # float(input("请输入买入单价(元/克):"))
    sell_price = 883
    #     882.64# (假设)
    # float(input("请输入卖出单价(元/克):"))
    weight = 11.3753
    # float(input("请输入持有克数:"))
    # buy_price = 979.84
    # sell_price = 1010.84
    # weight = 1.0308 # 目

    # 投入本金
    total_cost = round(buy_price * weight, 2)
    # 卖出总成交额
    sell_total = sell_price * weight
    # 卖出扣除手续费
    fee = sell_total * sell_fee_rate
    # 卖出实际到手金额
    get_cash = sell_total - fee
    # 整体净收益(负数代表亏损)
    total_profit = get_cash - total_cost
    # 每克平均净收益
    profit_per_g = total_profit / weight
    # 本金收益率(利润/本金百分比)
    if total_cost != 0:
        profit_rate = total_profit / total_cost * 100
    else:
        profit_rate = 0

    print("=" * 10)
    print("        支付宝浙商积存金实际收益测算")
    print(f"卖出手续费:成交金额的{sell_fee_rate*100}%")
    print("=" * 10)
    print(f"买入单价:{buy_price:.2f} 元/克")
    print(f"卖出单价:{sell_price:.2f} 元/克")
    print(f"持有克数:{weight:.4f} g")
    print(f"投入总本金:{total_cost:.2f} 元")
    print("-" * 10)
    print(f"卖出总成交额:{sell_total:.2f} 元")
    print(f"卖出扣除手续费:{fee:.2f} 元")
    print(f"卖出到手总金额:{get_cash:.2f} 元")
    print("-" * 60)
    print(f"整体净收益:{total_profit:.2f} 元(负数为亏损)")
    # print(f"每克平均净收益:{profit_per_g:.2f} 元/克")
    print(f"本金收益率:{profit_rate:.3f} %(净收益÷投入本金)")
    print("=" * 60)


if __name__ == "__main__":
    calc_gold_actual_profit()

换一个卖出价格

为了回收投资成本,有时候也会折价卖掉,出现收益为负的情况(手续费4%不是吹的)。

统一三种计算方式的名称

四、测试正确性

曾经买过的积存金的测试

用第一个代码测试保本卖出价

1克 1050元买入,卖出保本需要1054.22元,

1克 1070元买入,卖出保本需要1074.3元,

测试一笔已经完整交易(差价)的金额是否正确

第一块代码计算回本价格

第三块代码计算买入金额、卖出金额、手续费、实际利润

计算账面净利润:27.79

账面收益 1037.8-1010= 27.8

Python计算净利润:27.79

jcj账面净利润:27.8

相差0.01,这是计算导致的误差,可以忽略不计。

感悟:

在我写这个Python和CSDN记录时,积存金的价格在879.01-879.80之间徘徊了两一小时,始终没有达到三种计算的任何一个卖出点(最小卖出价“保本盈亏平衡价格882.63 元/克”)。

现在有一个预约单(4月份时还没有这个预约)

因为不知道要挂多久才能卖出(可能几天、十级点都到不了),所以我取了第二块代码(目标收益定价+10元),来设置卖单价格

挂单时长:选了最远的日期,大概最多24天

因此“交易性金融资产”的“赚差价”也是一种巨大的“风险投资”货币资产的流动性、时间成本都是需要考虑的要素。

20260716测试

测试买入1万和10万本金,回本价是否有差异

没有差异,买入1万和10万都需要上涨同样的价格,才能回本

测试不同价位回本

购买价格越低,同样金额可以买的克数越多,上涨金额会越来越少,也越来越难。从3.53 到3.52到2.01

假设购入价格是500元20克

20260715 20:43,此时金价上涨到886.62

如果此时卖掉(以实际成交价格为准),就有45.2元左右的收益.不过我当时没有卖,后续几天都是下跌。又套住了

20260717晚上终于成交了第一笔。都是通过“预约单”购买的,所以都是整数 

买入:870元*4.5977克

卖出:875元*4.5977克

'''
第三版:持仓实际损益计算器(输入买卖价算盈亏,可负)
1、ZFB积存金ZSYH 买入单价、卖出单价、克数,自动算净收益
2、卖出手续费固定0.4%
新增:收益率 = 总净收益 ÷ 投入本金 × 100%
豆包、阿夏
20260715
'''
def calc_gold_actual_profit():
    sell_fee_rate = 0.004  # 卖出手续费0.4%

    # # 手动输入数据
    buy_price = 870    
    sell_price =875

    # 892.10    # #     882.64# (假设)    
    weight = 4.5977
    
    # buy_price = 979.84
    # sell_price = 1010.84
    # weight = 1.0308 # 目

    # 投入本金
    total_cost = round(buy_price * weight, 2)
    # 卖出总成交额
    sell_total = sell_price * weight
    # 卖出扣除手续费
    fee = sell_total * sell_fee_rate
    # 卖出实际到手金额
    get_cash = sell_total - fee
    # 整体净收益(负数代表亏损)
    total_profit = get_cash - total_cost
    # 每克平均净收益
    profit_per_g = total_profit / weight
    # 本金收益率(利润/本金百分比)
    if total_cost != 0:
        profit_rate = total_profit / total_cost * 100
    else:
        profit_rate = 0

    print("=" * 10)
    print("        支付宝浙商积存金实际收益测算")
    print(f"卖出手续费:成交金额的{sell_fee_rate*100}%")
    print("=" * 10)
    print(f"买入单价:{buy_price:.2f} 元/克")
    print(f"卖出单价:{sell_price:.2f} 元/克")
    print(f"持有克数:{weight:.4f} g")
    print(f"投入总本金:{total_cost:.2f} 元")
    print("-" * 10)
    print(f"卖出总成交额:{sell_total:.2f} 元")
    print(f"卖出扣除手续费:{fee:.2f} 元")
    print(f"卖出到手总金额:{get_cash:.2f} 元")
    print("-" * 60)
    print(f"整体净收益:{total_profit:.2f} 元(负数为亏损)")
    # print(f"每克平均净收益:{profit_per_g:.2f} 元/克")
    print(f"本金收益率:{profit_rate:.3f} %(净收益÷投入本金)")
    print("=" * 60)


if __name__ == "__main__":
    calc_gold_actual_profit()

买入4000元,收回4006.9元

虽然积存金(公允成本下的当期损益的赚差价)套牢的概率很大,资金占用不生息。但是与支付活期(摊余成本下的一次性赚本金和利息)相比,一旦做成差价,其利润实在很高。

比如:支付宝活期现在40000元每天才有1元利息,而10000元,一天利息只有0.3元左右、而4000元做成功一次差价就有6.9元。但是套牢不生利息的风险也是很大。

在8月5日,趁着8月7日美国非农报告前期预热,我依靠7月15日(最早)买的一笔10000元879元,拉平了4月份买的1029元1克和1040.63元1克的差价,终于顺利解套。

黄金差价依赖于地缘政治、经济数据。做差价时,很容易资金被高位套牢(不能参与流动),所以只能小额参与,严控风险,

更多推荐