直前のTRと現在のTRの関係

直前のTRと現在のTRは比例関係

直前のTR(トゥルー・レンジ)と現在のTRがどのような関係にあるか調べてみた。足の種類は5分足である。TRは標準化している。

グラフを見ると、直前のTRと現在のTRとは比例関係にあることが分かる。

サンプルプログラム

TRは正の値しか取らないためか、そのまま標準化すると正のほうに偏る。そこで、先ず対数変換し、それから標準化している。

○以下のコマンドを「IPython console」にコピー&ペーストして「Enter」キーを2回押す。

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

fs.remove_temp_folder()

timeframe = 5
n = 6
x = np.empty(n)
y = np.empty(n)
plt.figure(figsize=(6, 20))
cnt = 0
for symbol in ['AUDUSD', 'EURUSD', 'GBPUSD', 'USDJPY', 'RANDOM']:
    cnt += 1
    plt.subplot(5, 1, cnt)
    for year in [2012, 2013, 2014, 2015, 2016]:
        start = datetime.strptime(str(year) + '.01.01 00:00',
                                  '%Y.%m.%d %H:%M')
        end = datetime.strptime(str(year) + '.12.31 23:59',
                                '%Y.%m.%d %H:%M')
        ret = fs.i_atr(symbol, timeframe, 1, 0)[start:end]
        ret[ret==0] = np.nan
        ret = ret.dropna()
        ret = np.log(ret)
        mean = np.mean(ret)
        std = np.std(ret)
        ret = (ret - mean) / std
        for i in range(n):
            x[i] = i - 2.5
            y[i] = np.mean(ret[(ret.shift(1) >= x[i] - 0.5) &
             (ret.shift(1) < x[i] + 0.5)])
        plt.plot(x, y, label=str(year))
    plt.title('Previous True Range and Current True Range (' + symbol + ')')
    plt.xlabel('Previous True Range')
    plt.ylabel('Current True Range')
    plt.xlim(-2.5, 2.5)
    plt.ylim(-1.75, 1.75)
    plt.legend(loc='upper left')
    plt.axvline(x=0, color='black', linestyle=':')
    plt.axhline(y=0, color='black', linestyle=':')
    plt.tight_layout()
plt.savefig('previous_true_range_and_current_true_range.png', dpi=150)
plt.show()

fs.remove_temp_folder()
(2017/02/12更新)

コメント

非公開コメント