我很確定我正在為一些非常簡單的事情而苦苦掙扎,但我需要一些幫助......
我正在嘗試Portfolio根據股票的每日價格發展在該列中添加股票的總價值:
| 日期 | 關閉 | 改變 | 檔案夾 |
|---|---|---|---|
| 2018-12-27 | 10381.509766 | NaN | 1000.000000 |
| 2018-12-28 | 10558.959961 | 0.017093 | 1017.092908 |
| 2019-01-02 | 10580.190430 | 0.002011 | 1002.010659 |
| 2019-01-03 | 10416.660156 | -0.015456 | 984.543731 |
| 2019-01-04 | 10767.690430 | 0.033699 | 1033.698927 |
因此,我使用以下功能:
def XP_strategy(data):
#Starting capital
START = 1000
data['Change'] = data['Close'].pct_change()
data['Portfolio'] = START
data.loc[1:, 'Portfolio'] = data['Portfolio'].shift(1) * (1 data['Change'])
columns = ['Close', 'Change', 'Portfolio']
return data[columns]
如您所見,我無法根據前一天為一天應用組合離子的公式。有人可以幫助我嗎?
uj5u.com熱心網友回復:
我會對此采取更簡單的方法 - 您只需要建立一個比例投資組合/關閉一次,然后使用該比例從給定的關閉值中計算出投資組合的價值。像這樣:
start = 1000
proportion = start/df['Close'].iloc[0]
df['Portfolio'] = proportion * df['Close']
結果:
Date Close Portfolio
0 2018-12-27 10381.509766 1000.000000
1 2018-12-28 10558.959961 1017.092908
2 2019-01-02 10580.190430 1019.137935
3 2019-01-03 10416.660156 1003.385865
4 2019-01-04 10767.690430 1037.198892
uj5u.com熱心網友回復:
利用 pct_change
START = 1000
df['Portfolio'] = START START * df['Close'].pct_change().fillna(0)
print(df)
# Output:
Date Close Change Portfolio
0 2018-12-27 10381.509766 NaN 1000.000000
1 2018-12-28 10558.959961 0.017093 1017.092908
2 2019-01-02 10580.190430 0.002011 1002.010659
3 2019-01-03 10416.660156 -0.015456 984.543731
4 2019-01-04 10767.690430 0.033699 1033.698927
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/390598.html
