외환 데이터의 자체 관련

6205 단어 FX

컨디션

  • Ubuntu 18.04LTC64 비트
  • Spyder 3.3.6
  • 소스 코드

    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までは逆相関だと言える。
    

    좋은 웹페이지 즐겨찾기