トレーディングシステム入門:中編

私が使おうとしているのはトレードステーションセキュリティーズ社からTradeStation8.3を通して得られるRatioによるBack Adjusted Dataであるため、このデータがRADと同じ目的で使えるものかを確認する必要がある。

TradeStationBackAdjustedData.GIF

この画像はTradeStation8.3で特定のマーケットのヒストリカルデータの選択とその設定をするときの画面。ここではBack Adjustement MethodにRatioを選んでいる。
限月についてはMonths to Include:の項目で4つの月にチェックが入っているが、これはその上にあるSymbol Rootにシンボルを入力すると自動でそのシンボルに応じて設定される。

恥ずかしい話だが実は今まで先物についてよく考えたことがなく、本書を読んだときにつなぎ足とは単純にその種類(ポイントベースかRADか)を選択すればよいものと思っていた。
しかしこの設定画面を見てなぜこんなに複雑な設定が必要なのか、と戸惑うことになった。

そこでウェブを参考にこの設定画面のRollover TriggerのTimeの項で選べるメニューを調べてみると、

X trading days prior to Expiration Date
先物限月が満期日(Expiration Date)を迎えるX日前にロールオーバーを行う。当月限の最終取引日から指定した日数前に次の限月に乗り換える。

X trading days prior to Delivery Date
受け渡し日のX日前。Delivery Dateとは先物契約が納会を迎える日、上場されている商品先物の受渡しが行われる日を指す。

X trading days prior to First notice day
受渡通知開始日のX日前。満期を迎える先物契約を遂行するにあたって、商品の受渡し意向の通知が受渡通知開始日から売り手がクリアリング・ハウスに渡す(クリアリングハウスは買い手に割り当てられる)。受
渡通知開始日は商品により異なる。

X trading days prior to End of the Delivery Month
受け渡し月の月末のX日前。

X trading days Into the Delivery Month
受け渡し月のX日め。

と細かな設定ができるようになっている。
が、いったいどうすればいいのか?

どうやらつなぎ足にはいろいろな方法があるため、それを自分で決定するためにこれだけ詳しい設定ができるようになっているらしい。

本書68ページでは
「つなぎ足では、ひとつの銘柄が納会した時点で、チャートを描くのをやめる。
あるいは、妥当であると判断した時点で、チャートの線を次の限月に続ける。

その時点から、その限月が指標となる。
一般にその時点とは、新しい限月の建て玉が古い限月の建て玉を凌駕し、マーケット全体が次の限月へと切り替わっていくタイミングと一致する。
しかし、多くのトレーダーは、月の特定の日付か、古い限月の残存期間が一定の日数となったときに乗り換えることを好む」
と書いてある。

http://wiki.tradesignal.com/ja/index.php?title=1_%E9%99%90%E6%9C%88%E9%96%93%E5%BC%95%E7%B6%99%E3%81%8E%E8%B6%B3

このリンク先のページにある
「満期を迎える限月に一番近い限月を選択します 」
「ロールオーバーのトリガから後継の先物限月の出来高が多くなったらロールオーバーを行うのチェックを入れます 」
を参考にすれば、
このウィンドウでの設定はRollover TriggerのActivityの項でVolumeを選ぶ。

TradeStationBackAdjustedData2.GIF

このようになるのだろう。この例をA1とする。

また
http://www.dacharts.com/faq/futures-rollover.htm
このリンク先のページにある
「Rollover is 8 days before expiration. 」を参考にすると

TradeStationBackAdjustedData4.GIF

このような設定になるだろうか。
これをA2とする。
(ただしこの条件はCMEとCBOTの先物についてと書いてあるため、他のマーケットについては別途調べる必要がでてくる。)

これらの設定のデータがRAD(と同じ目的のデータ)であるかを判断する方法として本書74ページを参考にする。

その方法とは日足データをチャートで示し、適当な期間の最高値と最安値を選ぶ。
そしてパーセントベースのボラティリティの値を

(最高値-最安値)×100÷(最高値または最安値のどちらか発生時間の早いほう)

として計算する。
この値が無修正のデータのときと修正データのときの値が(ほぼ)同じであればその修正データは目的のRADとして機能する、といえるだろう。

 TradeStation8.3では無修正のデータの設定は次のようにUnadjustedを選択する。
(トレードステーションセキュリティーズから得られる通常のつなぎ足データは無修正ではない)

TradeStationBackAdjustedData3.GIF

TradeStationUnAdjustedData.GIF

上図をU1、下図をU2とする。

それではA1とU1、A2とU2のパーセントベースのボラティリティの値をそれぞれ比較してみる。
しかし本書に書いてある通りに自分でチャートを見て最高値と最安値から手計算させるのは面倒だ。

そこでEasy Languageを使い自動で計算させることにする。
プログラムをより簡単なものにするため、月足のチャートを使い連続した2本のバーから最高値と最安値を出しパーセントベースのボラティリティを計算する。

ここでもし最高値と最安値がどちらも同じバーに存在した場合はそのバーが始値<終値であれば

(最高値-最安値)×100÷最安値

を求め、
そのバーが始値>終値であれば

(最高値-最安値)×100÷最高値

を計算することにする。

この値をA1とU1、A2とU2について比較するために(A1-U1)、(A2-U2)を計算し更にその平均値を算出する。

こうして(A1-U1)の平均値Av1と、(A2-U2)の平均値Av2の合計2つの値が得られる。