上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

時間帯とボラティリティ (2017/12/04)

時間帯とボラティリティとの関係を調べてみる。

  • 通貨ペア:EURJPY、EURUSD、USDJPY
  • 期間:2012年1月1日〜2016年12月31日
  • 足の種類:60分
  • 時間帯の区分:0時から23時まで1時間刻み

なお、ボラティリティは各時間帯のATRの平均を全体のATRの平均で除したものとした。

検証

○以下のコマンドをIPythonコンソールで実行する。

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

fs.remove_folder('temp')

start = datetime.strptime('2012.01.01 00:00', '%Y.%m.%d %H:%M')
end = datetime.strptime('2016.12.31 23:59', '%Y.%m.%d %H:%M')
timeframe = 60

close = fs.i_close('USDJPY', timeframe, 0)[start:end]
index = close.index
hour = fs.time_hour(index)

n = 24
x = np.arange(n)
y = np.empty([n, 3])
plt.figure(figsize=(6, 12))
cnt = 0
for symbol in ['EURJPY', 'EURUSD', 'USDJPY']:
    plt.subplot(3, 1, cnt+1)
    atr = fs.i_atr(symbol, timeframe, 1, 0)[start:end]
    mean = atr.mean()
    for i in range(n):
        temp = atr[hour==i].mean()
        y[i][cnt] = temp / mean
    plt.plot(x, y[:, cnt])
    plt.title('Hour and Volatility (' + symbol + ')')
    plt.xlabel('Hour')
    plt.ylabel('Volatility')
    plt.axhline(y=1.0, color='black', linestyle=':')
    plt.tight_layout()
    cnt += 1
plt.savefig('hour_and_volatility.png', dpi=150)
plt.show()

df = pd.DataFrame()
df['EURJPY'] = y[:, 0]
df['EURUSD'] = y[:, 1]
df['USDJPY'] = y[:, 2]
print(df)

      EURJPY    EURUSD    USDJPY
0   0.826781  0.640181  0.846515
1   0.793721  0.599766  0.855468
2   1.030448  0.782120  1.193423
3   0.980855  0.766167  1.131828
4   0.832272  0.656800  0.942155
5   0.810685  0.581162  0.913225
6   0.780100  0.528205  0.886427
7   0.821699  0.638011  0.879218
8   1.037476  1.022195  0.991075
9   1.330279  1.378958  1.149425
10  1.340930  1.391855  1.120735
11  1.200517  1.246501  0.996245
12  1.080462  1.132956  0.893253
13  1.009897  1.103229  0.860897
14  1.313742  1.636213  1.326202
15  1.382428  1.697924  1.374079
16  1.394414  1.693869  1.405629
17  1.232568  1.451308  1.243473
18  0.986616  1.136340  0.987048
19  0.898855  1.006588  0.911971
20  0.843778  0.963688  0.925485
21  0.765300  0.820246  0.819648
22  0.700646  0.649198  0.728238
23  0.605533  0.476520  0.618337

結果

  • いずれの通貨ペアでも14〜16時のボラティリティが高い

14〜16時のボラティリティが高いのは米雇用統計の発表がある14時30分とその直後だからだろう。だが、米雇用統計は月に1回であり、それ以外の日では必ずしも高くない。それだけ米雇用統計のインパクトが強いのである。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。