❶ arima模型python 怎麼看平穩性
時間序列分析(一) 如何判斷序列是否平穩
序列平穩不平穩,一般採用兩種方法:
第一種:看圖法
圖是指時序圖,例如(eviews畫滴):
分析:什麼樣的圖不平穩,先說下什麼是平穩,平穩就是圍繞著一個常數上下波動。
看看上面這個圖,很明顯的增長趨勢,不平穩。
第二種:自相關系數和偏相關系數
還以上面的序列為例:用eviews得到自相關和偏相關圖,Q統計量和伴隨概率。
分析:判斷平穩與否的話,用自相關圖和偏相關圖就可以了。
平穩的序列的自相關圖和偏相關圖不是拖尾就是截尾。截尾就是在某階之後,系數都為 0 ,怎麼理解呢,看上面偏相關的圖,當階數為 1 的時候,系數值還是很大, 0.914. 二階長的時候突然就變成了 0.050. 後面的值都很小,認為是趨於 0 ,這種狀況就是截尾。再就是拖尾,拖尾就是有一個衰減的趨勢,但是不都為 0 。
自相關圖既不是拖尾也不是截尾。以上的圖的自相關是一個三角對稱的形式,這種趨勢是單調趨勢的典型圖形。
下面是通過自相關的其他功能
如果自相關是拖尾,偏相關截尾,則用 AR 演算法
如果自相關截尾,偏相關拖尾,則用 MA 演算法
如果自相關和偏相關都是拖尾,則用 ARMA 演算法, ARIMA 是 ARMA 演算法的擴展版,用法類似 。
不平穩,怎麼辦?
答案是差分
還是上面那個序列,兩種方法都證明他是不靠譜的,不平穩的。確定不平穩後,依次進行1階、2階、3階...差分,直到平穩位置。先來個一階差分,上圖。
從圖上看,一階差分的效果不錯,看著是平穩的。
❷ python 如何寫連續8個交易日低於均線
使用pandas可以快速計算
#引入pandas包
importpandasaspd
#模擬近10天的交易數據
days=[1,2,3,4,5,6,7,8,9,10]
#生成DataFrame
df=pd.DataFrame(days,columns=['a'])
#使用rolling函數生成5日平均
df['b']=df.rolling(5).mean()
#刪除空值
df=df.dropna()
#使用any函數判斷是否全為真
any(df['a']<df['b'])
不清楚您python的水平,做數據工作建議多使用pandas
V:Python碼農
❸ 怎麼用 python 把 1w 個 txt 文件平均分到 100 個文件夾中
enumerate 每個文件
按100取模分配
移動文件
搞定
❹ MACD計算詳解
正確的公式應該是:EMA(12)=今天收盤價*2/13 + 前天EMA(12)*11/13
EMA(26)=今天收盤價*2/27 + 前天EMA(26)*25/27
DIF=EMA(12)-EMA(26)
DEA=DIF*2/10 + 前天DEA*8/10
BAR=(DIF-DEA)*2
2/13跟2/27就是平滑系數.
另外很多關於前天EMA及前天DEA計算的說明都不清晰或是錯誤的.
這裡面關鍵是第二天過渡值的計算.
如一隻股票前天上市,或你要計算今天的MACD值.具體如下:
第一天: 由於剛上市所以5個參數均為0.
第二天:EMA(12)=今天收盤價*2/13 + 前天收盤價*11/13
EMA(26)=今天收盤價*2/27 + 前天收盤價*25/27
DIF=EMA(12)-EMA(26)
DEA=DIF*2/10 + 0*8/10(即0,因為前天DEA=0)
BAR=(DIF-DEA)*2
第三天:按先前提供的公式代入即可,因為前天EMA跟前天DEA這兩個參數已經出現.如果是中途計算結果會出現偏差但經過一段時間的累積後就可以得到修正.
❺ 使用python實現ema(指數移動平均的計算)
a=2/13
Prices=[0.0]#pricesofeveryday
EMAs=[0.0]#emsofeveryday
defema(N,Price):
Prices.append(Price)
ifN<=1:
EMAs.append(Price)
else:
EMAs.append((1-a)*EMAs[N-1]+a*Price)
ema(1,1)
ema(2,3)
print(EMAs[1])
print(EMAs[2])