2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您du
對(duì)兩個(gè)不同的概念(所有有效值的容器du
以及每次du
迭代的每個(gè)單獨(dú)值)使用相同的變量名稱。
將您的代碼更改為du_values = []
和du_values.append(N[j + 1])
,它應(yīng)該可以工作。
順便說(shuō)一句,您的代碼中似乎有一個(gè)錯(cuò)字 - 您將原始數(shù)組定義為NP
,但后來(lái)將其稱為N
。

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
請(qǐng)注意,因?yàn)槟銢](méi)有提供任何代碼,我要告訴你的代碼是不是FOR你,但代碼我已經(jīng)使用和天籟一樣,你可以很容易地采取以您的需求。
# this will simulate 1000 different combinations of my portfolio
for x in range(1000):
weights = np.random.random(len(tickers))
weights /= np.sum(weights)
portfolio_returns.append(np.sum(weights * log_returns.mean()) * 250)
portfolio_volatilities.append(np.sqrt(np.dot(weights.T, np.dot(log_returns.cov() * 250, weights))))
這段代碼所做的很短是 1000 倍,它為我的數(shù)據(jù)點(diǎn)創(chuàng)建隨機(jī)數(shù)和權(quán)重,然后附加結(jié)果。代碼不會(huì)統(tǒng)一,因?yàn)樗请S機(jī)的,但如果你真的想要統(tǒng)一,你可以簡(jiǎn)單地單步執(zhí)行增量。但是,我認(rèn)為您不需要統(tǒng)一,而是需要足夠大的樣本量,以免被異常值拋棄。
比較結(jié)果的一種方法是這樣的。
simple_return = (mydata / mydata.shift(1)) - 1
比較隨機(jī)樣本應(yīng)該非常簡(jiǎn)單,因此如果您確實(shí)需要幫助,請(qǐng)跟進(jìn)。使用 numpy 數(shù)組,您還可以根據(jù)條件過(guò)濾/刪除項(xiàng)目。
抱歉,如果這些不能完全回答您想要的,但它應(yīng)該讓您朝著正確的方向前進(jìn)。
添加回答
舉報(bào)