玩家亏损混合计算,忽略交易费用

情景一:

假设股价初始价格为100元,
则第一次投入2000元买入的数量为20股,
第一次下降10%,价格变为90元,账户价值为20股 * 90元/股 = 1800元。
对股价来说下降了10%
对用户来说亏了10%
 
第二次投入3000元买入的数量为33.33股。
第二次下降12%,价格变为79.2元,账户价值为53.33股 * 79.2元/股 = 4223.36元。
对股价来说下降了20.8%
对用户来说亏了15.53%
 
第三次投入5000元, 买入了63.13股
第三次下降5%,价格变为75.24, 账户价值为(63.13+53.33) * 75.24 = 8762.4504
对股价来说下降24.76%
对用户来说亏了12.3755%
 
总结公式:
    lastPrices = [1]
    for i in range(len(bArr)):
        lastPrices.append(lastPrices[-1] * (1+bArr[i]))

    sum = 0
    for i in range(len(aArr)):
        sum +=  aArr[i]/lastPrices[i]
    return sum * lastPrices[-1] / np.sum(aArr) - 1, lastPrices[-1]-1

print('最终涨幅:', get_price([2, 3], [-0.1, -0.12]))
print('最终涨幅:', get_price([2, 3, 5], [-0.1, -0.12, -0.05]))
print('最终涨幅:', get_price([2, 3, 15], [-0.1, -0.12, -0.05]))

 

posted @ 2023-04-10 01:48  Please Call me 小强  阅读(27)  评论(0编辑  收藏  举报