程式
用交易成本計算收益
這可能是在計算交易回報的同時包含交易成本的過度簡化。我做了一些假設——投資和提取投資的佣金分別是 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)
。本質上,交易成本與您的交易量成正比。
所以在你的情況下,這兩個答案都不是完全正確的。你的第一個很接近,因為你必須使交易成本的總和與你交易的資本成正比。