証券価格の計算では、しばしば価格差分の計算が必要です。例えば、Pt-Pt-1 または log(Pt)-log (Pt-1) などです。私たちが得るデータは通常、完全な時間価格の系列ですが、上記の価格差分を計算する際にはやや不自然です。このような場合、pandas の shift () と diff () 関数を使用すると、価格差分の計算機能を一度に実現することができます。
例えば、中国銀行(601988.XSHG)の時間価格系列は以下の表に示す通りです。また、下の表からもわかるように、diff () 関数は実際には shift () 関数を適用した後に元の数字との差を計算しています。
PAflog.df.diff ()[1:0] は価格差分の時間系列として使用でき、ADF 検定などのより複雑な時間系列分析にも利用できます。
連続した上昇または下落する株式を判断するための diff () を使用したサンプルプログラム(JoinQuant で実行)は以下を参照してください:
# 過去 5 日間の価格データを取得する
hist = attribute_history('000001.XSHG', 5, unit='1d',
fields=['open', 'close', 'high', 'low', 'volume', 'money'],
skip_paused=True, df=True, fq='pre')['close']
if all(np.diff(hist)>0):
print ('5 日連続上昇の強気株 ')
elif all(np.diff(hist) < 0):
print ('5 日連続下落の弱気株 ')
else:
print (' 強気株でも弱気株でもありません ')