외환 데이터의 자체 관련
6205 단어 FX
컨디션
소스 코드 import matplotlib.pyplot as plt
import statsmodels.api as sm
import forex_system as fs
# 為替データの自己相関を調べてみる。
# 例として通貨ペアはUSDJPY、足は5分を用いる。
# また、期間は2014年1月1日から2018年12月31日までの5年間とする。
symbol = 'USDJPY'
timeframe = 5
start = '2014.01.01 00:00'
end = '2018.12.31 23:59'
# 先ずは変化率で調べてみる。
# 為替データのようなランダムウォークに近いデータは見せかけの相関が生じる。
# このため、階差、または変化率にデータを変換する必要がある。
# ここでは変化率を用いる。
roc = fs.i_roc(symbol, timeframe, 1, 0)[start:end]
# 「zero=False」はlag=0のときの自己相関を表示しないという意味。
# lag=0のときの自己相関が1.0であるのは分かりきったことである。
# また、lag=1以降の自己相関が0前後と非常に小さいのでlag=0があると見づらい。
sm.graphics.tsa.plot_acf(
roc, lags=40, title='Autocorrelation '+symbol+str(timeframe)+' ROC',
zero=False)
plt.savefig('Autocorrelation_'+symbol+str(timeframe)+'_ROC'+'.png', dpi=150)
plt.show()
# 次に方向性(上昇か下落か)で調べてみる。
direction = (roc>0.0).astype(int) - (roc<0.0).astype(int)
sm.graphics.tsa.plot_acf(
direction, lags=40,
title='Autocorrelation '+symbol+str(timeframe)+' Direction',
zero=False)
plt.savefig('Autocorrelation_'+symbol+str(timeframe)+'_Direction'+'.png',
dpi=150)
plt.show()
# 先ずは変化率のグラフを見てみる。
# lag=3までは比較的大きな逆相関であることが分かる。
# 時間にすると5分から15分である。
# lag=4以降でも比較的大きな正相関、逆相関が所々ある。
# だが、これは異常値などが原因だろう。
# 次に方向性のグラフを見てみる。
# lag=17までは比較的大きな逆相関であることが分かる(例外もあるが)。
# そして、lagが大きくなるに連れて逆相関が次第に失われていく様子がよく分かる。
# これは異常値が存在しないので比較的きれいな曲線を描かれるのだろう。
# 逆に言えばlag=3までは異常値にも掻き消されない強い逆相関があるのだろうか。
# なお、他の通貨ペアでも少し調べてみた。
# すると、通貨ペアによっては変化率ではlag=3で逆相関が消える場合がある。
# したがって、多くの通貨ペアで見られる傾向としてはlag=2までは逆相関だと言える。
Reference
이 문제에 관하여(외환 데이터의 자체 관련), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fxst24/items/f47eef9f47ac20224953
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import matplotlib.pyplot as plt
import statsmodels.api as sm
import forex_system as fs
# 為替データの自己相関を調べてみる。
# 例として通貨ペアはUSDJPY、足は5分を用いる。
# また、期間は2014年1月1日から2018年12月31日までの5年間とする。
symbol = 'USDJPY'
timeframe = 5
start = '2014.01.01 00:00'
end = '2018.12.31 23:59'
# 先ずは変化率で調べてみる。
# 為替データのようなランダムウォークに近いデータは見せかけの相関が生じる。
# このため、階差、または変化率にデータを変換する必要がある。
# ここでは変化率を用いる。
roc = fs.i_roc(symbol, timeframe, 1, 0)[start:end]
# 「zero=False」はlag=0のときの自己相関を表示しないという意味。
# lag=0のときの自己相関が1.0であるのは分かりきったことである。
# また、lag=1以降の自己相関が0前後と非常に小さいのでlag=0があると見づらい。
sm.graphics.tsa.plot_acf(
roc, lags=40, title='Autocorrelation '+symbol+str(timeframe)+' ROC',
zero=False)
plt.savefig('Autocorrelation_'+symbol+str(timeframe)+'_ROC'+'.png', dpi=150)
plt.show()
# 次に方向性(上昇か下落か)で調べてみる。
direction = (roc>0.0).astype(int) - (roc<0.0).astype(int)
sm.graphics.tsa.plot_acf(
direction, lags=40,
title='Autocorrelation '+symbol+str(timeframe)+' Direction',
zero=False)
plt.savefig('Autocorrelation_'+symbol+str(timeframe)+'_Direction'+'.png',
dpi=150)
plt.show()
# 先ずは変化率のグラフを見てみる。
# lag=3までは比較的大きな逆相関であることが分かる。
# 時間にすると5分から15分である。
# lag=4以降でも比較的大きな正相関、逆相関が所々ある。
# だが、これは異常値などが原因だろう。
# 次に方向性のグラフを見てみる。
# lag=17までは比較的大きな逆相関であることが分かる(例外もあるが)。
# そして、lagが大きくなるに連れて逆相関が次第に失われていく様子がよく分かる。
# これは異常値が存在しないので比較的きれいな曲線を描かれるのだろう。
# 逆に言えばlag=3までは異常値にも掻き消されない強い逆相関があるのだろうか。
# なお、他の通貨ペアでも少し調べてみた。
# すると、通貨ペアによっては変化率ではlag=3で逆相関が消える場合がある。
# したがって、多くの通貨ペアで見られる傾向としてはlag=2までは逆相関だと言える。
Reference
이 문제에 관하여(외환 데이터의 자체 관련), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fxst24/items/f47eef9f47ac20224953텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)