❶ 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])