Vincent
2022-02-05 10:35老師,均值回歸里有兩個問題: 1)關(guān)于是圖1里面的代碼,基礎(chǔ)課只講到matplotlib.pyplot,里面用到 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False 可以在圖中顯示中文。那圖1里面的代碼有什么意義,不能直接plt嗎?有什么區(qū)別嗎? 2)關(guān)于圖2的ix[SMA:],我發(fā)現(xiàn)不能用了。網(wǎng)上說可以用iloc/loc代替,我改成data['position'].iloc[SMA:].plot(ylim=[-1.1, 1.1], figsize=(10, 6))能用,但為什么要加ix或者iloc[SMAl:] 直接data['position'].plot(ylim=[-1.1, 1.1], figsize=(10, 6)) 也能顯示,而且data['position']里面除了信號沒有其他的列了,為什么要加一個索引。能解釋下ix[SMA:]的含義嗎?
所屬:AQF > AAQF 視頻位置 相關(guān)試題
來源: 視頻位置 相關(guān)試題
1個回答
高志萍助教
2022-02-05 11:17
該回答已被題主采納
同學(xué)你好,
問題1:
可以使用的,兩種方法都可以。
字體是matplotlib中的默認(rèn)屬性,是可以修改的
直接導(dǎo)入matplotlib作為mpl,然后用rcParmas修改字體可以
也可以導(dǎo)入matplotlib.pyplot作為plt,然后用rcParmas修改字體也是可以
區(qū)別是,用mpl的話,那matplotlib下的所有模塊都是修改了字體
但是用plt的話,只是matplotlib下的pyplot這個模塊修改了字體,如果用到其他模塊字體是沒有修改的
(因?yàn)槲覀兊恼n程用matplotlib就是用pyplot這個模塊,其實(shí)兩者在效果上來說是一樣的)
-
追答
同學(xué)你好,
問題2:
ix停用了
iloc,loc都是切片用的,是從數(shù)據(jù)源中選出符合要求的數(shù)據(jù)
iloc是索引名來切,也就是從0開始的數(shù)字
loc是索引值來切,也就是對應(yīng)的名字來
之前的ix是索引名和索引值都可以
iloc[SMA:] 表示的是從SMA開始的到最后的數(shù)據(jù)
因?yàn)榫€是有時間要求的,20日的移動均線要經(jīng)過20天,才有第一個均值數(shù)據(jù),50天的移動均線要經(jīng)過50天才有第一個均值。
所以在均值回歸這個策略下,計算position的時候,要在有第一個均值的SMA的時候才產(chǎn)生。
這個SMA給定的是50
那iloc[SMA:],就是從第50天,也就是有第一個均值的時候開始選取數(shù)據(jù),之前的數(shù)據(jù)沒有意義,因?yàn)榫刀紱]有產(chǎn)生 -
追問
謝謝老師,再問下我試了data['position'].loc[data['returns']>0].plot(ylim=[-1.1, 1.1], figsize=(10, 6)) 也可以,是不是條件語句這種也是loc?
-
追答
同學(xué)你好,
是的,
但是你這個數(shù)據(jù)切出來不對,是把hs300日收益大于0的選出來,不是50天后的數(shù)據(jù)選出來
data['position'].loc[data['return']>0] ,是263個數(shù)據(jù)
data['position'].iloc[SMA:],是436個數(shù)據(jù)
(2年的交易時間,再減去50天,應(yīng)該是4百多天,不是2百多天)
