イベントとディレクション (2017/08/06)

イベントの発生がディレクションにどのような影響を与えるかを調べてみる。

ここでは急騰、または急落が起きた時にイベントが発生したと考えることにする。イベントが発生した後の24時間でディレクションが上か下かを見てみる。

調べる前では①イベントの発生がトレンドを生んで急騰なら上、急落なら下、あるいは②反動で急騰なら下、急落なら上、のどちらかだろうかと予測していた。だが、いずれでもなかったようである。

検証

それでは検証してみる。

①この記事で使うライブラリをインポートする。

import forex_system as fs
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime

②設定を読み込む。

fs.remove_folder('temp')

timeframe = 5
start = datetime.strptime('2014.01.01 00:00', '%Y.%m.%d %H:%M')
end = datetime.strptime('2016.12.31 23:59', '%Y.%m.%d %H:%M')
n = 288
threshold = 2.0

ここでは5分足を使用し、期間は2014年初から2016年末までである。

③検証を実行し、グラフを表示する。

time = np.arange(n)
up = np.zeros(n)
down = np.zeros(n)
event = np.zeros([n, 3])
plt.figure(figsize=(6, 12))
cnt = 0
for symbol in ['EURJPY', 'EURUSD', 'USDJPY']:
    plt.subplot(3, 1, cnt+1)
    roc = fs.i_roc(symbol, timeframe, 1, 0)[start:end]
    mean = roc.rolling(window=n).mean()
    std = roc.rolling(window=n).std()
    z = (roc-mean) / std
    for i in range(n):
        up[i] = (roc-roc.mean())[z.shift(1+i)>=threshold].mean()
        down[i] = (roc-roc.mean())[z.shift(1+i)<=-threshold].mean()
    up = np.cumsum(up)
    down = np.cumsum(down)
    plt.plot(time, up, label='up')
    plt.plot(time, down, label='down')
    plt.title('Event and Direction (' + symbol + ')')
    plt.xlabel('Hour')
    plt.ylabel('Cumulative ROC')
    plt.legend()
    plt.xlim(0, 288)
    plt.ylim(-0.03, 0.01)
    plt.xticks([0, 48, 96, 144, 192, 240, 288], [0, 4, 8, 12, 16, 20, 24])
    plt.axhline(y=0.0, color='black', linestyle=':')
    plt.tight_layout()
    cnt += 1
plt.savefig('event_and_direction.png', dpi=150)
plt.show()

fs.remove_folder('temp')

通貨ペアはEURJPY、EURUSD、USDJPYを使用した。ROCを直近24時間の平均と標準偏差で正規化し、+2.0以上で急騰、-2.0以下で急落と見なすことにした。また、ROCの全期間の平均を減じてトレンドを除去している。

グラフを見ると、当初の予想とは違い、いずれの通貨ペアでも急騰、急落を問わずイベント発生後の24時間では下落の傾向があるように見える。

解釈

なぜこのような結果になるのか分からないが、ポジションの偏りが関係しているのだろうかと想像している。

ポジションは数カ月、または数年に渡ってロング、またはショートに偏った状態が継続することがよくある。これはスワップ狙いの長期保有者や中長期的な観点から売買を行うヘッジファンドなどの存在によるのだろう。

中長期的な保有者にすれば、急騰、または急落といったボラティリティの拡大はリスクの拡大となる。そしてリスクの拡大はポジションの解消につながるだろう。

したがって、ポジションがロングに偏っている場合、ポジションの解消は売りとなり、下落する傾向を持つ。逆にポジションがショートに偏っている場合、ポジションの解消は買いとなり、上昇する傾向を持つ、というわけである。

もちろん、これは単なる想像であって何の根拠もない。もっと厳密な検証が必要だ。