程式

用交易成本計算收益

  • May 30, 2020

這可能是在計算交易回報的同時包含交易成本的過度簡化。我做了一些假設——投資和提取投資的佣金分別是 1% 和 2%。佣金不會在交易期間發生變化,在這種情況下是 5 個時間步長。我使用 Python 程式碼來執行計算。

一組給定資產在 5 個時間步長內價格的正負百分比變化是{0.031% , 0.00121% , 0.0231% , -0.0213% , -0.0121%}

投資佣金為投資金額的1%,退出投資佣金為投資金額現值的2%。

如果我在該資產上投資 1 歐元,以下是否正確?

1.

如果我不交易投資,則最終投資金額直到 $ t=5 $ 是:最終百分比變化量 $ t=5 $ 即'initial invested amount' + '% change' - 'commission to enter' - 'commission to exit',因此:

initial_investment_amt = 1

comission_in_amt = 1

comission_out_amt = 2

price_change = -.0121

return_amt = (initial_investment_amt + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100) = 0.97 which represents a loss of 1 - .97 = .03

2.

如果我在每個時間步進行投資,則最終投資金額直到 $ t=5 $ 是:

initial_investment_amt = 1

comission_in_amt = 1

comission_out_amt = 2

price_change = .031

return_amt_1 = (initial_investment_amt + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100)

price_change = .00121

return_amt_2 = (return_amt_1 + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100)

price_change = .0231

return_amt_3 = (return_amt_2 + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100)

price_change = -.0213

return_amt_4 = (return_amt_3 + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100)

price_change = -.0121

return_amt_5 = (return_amt_4 + (price_change / 100)) - (comission_in_amt / 100) - (comission_out_amt / 100)

print(return_amt_1)
print(return_amt_2)
print(return_amt_3)
print(return_amt_4)
print(return_amt_5)

印刷 :

0.97031
0.9403220999999999
0.9105530999999999
0.8803400999999998
0.8502190999999998

這代表了損失 $ 1 - 0.85 = 0.15 $ .

考慮這一點的最簡單方法是按時間順序考慮這些事件。建議您投資 100 美元,購買佣金為 1%。

那麼你擁有的資產數量是((100) - (0.01 * 100)) / buy_price_of_asset

假設您隨後以 110 的價格出售資產。出售過程變為: (110 * quantity) - 0.02 * (110 * quantity)

本質上,交易成本與您的交易量成正比。

所以在你的情況下,這兩個答案都不是完全正確的。你的第一個很接近,因為你必須使交易成本的總和與你交易的資本成正比。

引用自:https://quant.stackexchange.com/questions/53631