2010年7月 のアーカイブ

ストラクチャ作成入門 第11回:シグナル発動条件を変えてみる(操作編)

2010年7月20日 火曜日

開発チームです

今回はシグナル発動条件のカスタマイズ方法について説明します。

1.発動条件個数の設定

「発動条件個数」とは、上記のプルダウンメニューの「~つ満たしたら」で選択する数値のことです。

今までの例では、買い・売り、それぞれロジックが1つずつあった場合は「1」をセットしました。

同様に買い・売り、それぞれロジックが2つずつあった場合は「2」をセットし ました。

同様に買い・売り、それぞれロジックが3つずつあった場合は「3」をセットし ました。

では、発動条件個数=作成したロジックの個数でなければいけないのでしょうか?そんなことはありません。例えばロジックが3つあった場合で発動条件個数を「2つ」にすることは可能です。この場合、「3つのロジックのうち、2つ成立すればシグナルが発動」します。

作成するロジックの数を増やしていき、同時に発動条件個数も増やしていくと、シグナルの精度は上がるかもしれませんが、その一方発動条件が厳しくなりすぎてシグナルの発動数が少なくなってしまい、収益機会を逸してしまう、ということがあります。極端なケースではシグナルが全くでない、ということもあります。このような場合、発動条件個数を減らし、発動条件を緩和することでシグナル数を減らさないようにすることが可能です。

2.発動必須条件フラグ

「発動必須条件フラグ」は、シグナル発動時に絶対に満たしてほしいロジックがあるときにチェックを入れます。例えば「3つのロジックのうち、2つ満たしたらシグナル発動」と設定したとします。それぞれ、ロジックA, ロジックB, ロジックCという名前だったとして、シグナルの発動する組み合わせは以下になります。

・ロジックA、ロジックBが成立

・ロジックB、ロジックCが成立

・ロジックA、ロジックCが成立

しかしながら、ロジックAだけはどうしても満たしてほしい場合があると思います。すなわち、

・ロジックA、ロジックBが成立

・ロジックA、ロジックCが成立

のみシグナル発動させ、

・ロジックB、ロジックCが成立

はシグナルを発動させたくない、というケースです。この場合、ロジックAはシグナル発動のための「必須ロジック」と言えます。

ロジック作成画面の、「このロジックをシグナル発動の必須条件にする」にチェックを入れることで、チェックを入れたロジックが必須ロジックとなります。必須ロジックにはストラクチャ詳細画面に「必須」という文字が表示されます。

3.ロジック無効フラグ

ストラクチャを作成中に、作ったロジックを一時的に無効にしたい場合があると思います。このようなときはロジック作成画面を開き、「このロジックを有効にする」のチェックを外します。チェックを外したロジックは無効となり、監視対象外となります。ストラクチャ画面では「監視対象」という列に「対象外」という文字が表示されます。

以上です。次回は「発動条件個数」と「必須条件フラグ」の戦略的な使い方を、サンプルストラクチャを使って解説します。

ストラクチャ作成入門 第10回:複数通貨ペア監視

2010年7月20日 火曜日

開発チームです

今回は複数通貨ペア(複数指標)を監視しながら、1通貨ペアを売買するストラクチャを作ってみます。

まず、今まで通りの単通貨ペア監視のストラクチャをつくってみます。

売買ルール

・売買商品:EUR/USD

・短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上回ったら買い

・短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下回ったら売り

ロジック

バックテスト結果

ちょっと実用性に欠けるようです。シグナルの精度を高めるために複数指標をチェックしてみたらどうでしょうか。

例えば以下の仮説を立てたとします(あくまでも仮説です)。

・EUR/CHFはEUR/USDと強い相関があり、EUR/USDを取引するにあたり、先行指標としてEUR/CHFは有効

「相関性」があるとは、値動きが同じ動きをする、ということです。EUR/CHFが上がると、EUR/USDも上がり、EUR/CHFが下がると、EUR/USDも下がります。よってトレンドに従えば、EUR/CHFが上がったら買い、EUR/CHF が下がったら売りということになります。

この仮説が有効かどうかストラクチャを組んでみることにします。

売買ルール改

・売買商品:EUR/USD

・参照指標:EUR/USD, EUR/CHF

・EUR/USD 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上 回った、かつ

EUR/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上 回ったら買い

・EUR/USD 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下回った、かつ

EUR/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下回ったら売り

単にEUR/USDの値動きだけでなく、相関性のあるEUR/CHFの値動きも同時にチェックし、双方でシグナルが出れば「より強いトレンド」だと判断しすることでシグナルの精度を上げることを目論みます。

ストラクチャは以下のように設定します

バックテスト結果

それらしくなってきました。

さらに精度を高めるためにルールを追加しましょう。指標はいくらでも追加できます。

ここでもう一つ仮説を立てておきます。

USD/CHFEUR/USDと強い逆相関があり、EUR/USDを取引するにあたり、 先行指標としてUSD/CHFは有効

「逆相関」なので、USD/CHFが上がると、EUR/USDは下がり、USD/CHFが下がると、EUR/USDは上がります。よってUSD/CHFが上がったら売り、USD/CHFが下がったら買いということになります。

売買ルール改その2

・売買商品:EUR/USD

・参照指標:EUR/USD, EUR/CHF, USD/CHF

・EUR/USD 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上 回った、かつ

・EUR/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上 回った、かつ

USD/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下 回ったら買い

・EUR/USD 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下回った、かつ

・EUR/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を下回った、かつ

USD/CHF 短期移動平均線(1時間足、9本)が長期移動平均線(1時間足、26本)を上回ったら売り

ストラクチャは以下のように設定します

バックテスト結果

先程の結果よりもいいですね。

複数指標を使ったストラクチャの作成方法、おわかりいただけたでしょうか。通貨ペア間の相関性についてはすべての期間で一様ではないので、マッチングに苦労するかもしれませんが、複数指標監視が非常に有効な場面があり、手法として一つの選択肢になります。

ストラクチャ作成入門 第9回:バックテストその2 スプレッドを加味

2010年7月16日 金曜日

開発チームです

バックテスト編のその2です。

その2:バックテストの損益に売買スプレッドは加味されていますか?

答:加味しないモード「mid」と、加味するモード「bid/ask」の2つを用意しています。

バックテスト設定画面の「適用プライス」に「bid/ask」を選ぶと、スプレッドを加味した損益を計上します。

デフォルトでは「Mid」になっています。「Mid」では損益の計算(例:売決済時約定価格 – 買新規約定価格)の約定価格にMidレートを使います。一方、「Bid/Ask」では買いか売りかに応じて、約定価格にAskレートとBidレートを使い分けます。

どれだけ結果に違いが出るかバックテストしてみましょう。

・ストラクチャ:EUR/JPY 移動平均(9, 26 時間足) 期間:2001/07 ~ 2010/07

・加味なしの結果(Midモード使用)

・スプレッドを加味(Bid/Askモードを使用)

スプレッドを加味したバックテストを行うことで、よりリアルなシミュレーションを行うことができます。

ちなみに、ロジック設定画面にある、「Mid」、「Bid」、「Ask」の設定、これは何を意味するのでしょうか?こちらはテクニカル指標の評価に使用するプライスに「Mid」、「Bid」、「Ask」、のどれを使うかの設定です。混同してしまいがちですが、バックテストの損益の計算に使用する「適用プライス」とは別物です。

ストラクチャ作成入門 第8回:バックテストその1 テストできる期間

2010年7月15日 木曜日

開発チームです

さて、毎回登場する「バックテスト」機能ですが、改めて機能について説明したいと思います。

その1:過去に遡ってテストできる期間はいつから?

答:通貨ペアおよび足種類により異なります。

メジャー通貨ペア(時間足~月足) ・・・ 2001年2月 ~ 現在

メジャー通貨ペア(1分足~30分足) ・・・ 2008年1月 ~ 現在

NZD/JPY, NZD/USD(時間足~月足) ・・・ 2003年2月 ~ 現在

NZD/JPY, NZD/USD1分足~30分足) ・・・ 2008年1月 ~ 現在

その他通貨ペア(1分足~月足) ・・・ 2009年10月5日 ~ 現在

※「メジャー通貨ペア」は以下のものとします。

AUD/JPY
AUD/USD
CHF/JPY
EUR/CAD
EUR/CHF
EUR/GBP
EUR/JPY
EUR/USD
GBP/CHF
GBP/JPY
GBP/USD
NZD/JPY
NZD/USD
USD/CAD
USD/CHF
USD/JPY

※「その他通貨ペア」以下のものとします

AUD/CAD
AUD/NZD
CAD/JPY
EUR/AUD
EUR/NZD
GBP/AUD
GBP/NZD
HKD/JPY
NOK/JPY
NZD/CAD
SEK/JPY
SGD/JPY
ZAR/JPY

メジャー通貨ペアで、時間足以上であれば長期のテストができる、ということです。ためしにEUR/JPY時間足移動平均(9,26)でテストしてみます。テスト期間は2001/1 ~ 2010/7としました。

グラフは2001年1月からの損益を表示しています。ここで、「最近1年の損益だけ見たい」場合はどうすればよいでしょうか。もう一度期間を指定してバックテストをする必要があるでしょうか?その必要はありません。「直近1年」の行をクリックしてください。

以下のようにグラフの形が変わります

・直近1年の損益グラフ

同様に6カ月、3か月、1か月、1週間を見たい場合も、それぞれ「直近6カ月」、「直近3か月」、「直近1か月」、「直近1週間」の行をクリックしてください

・直近6か月の損益グラフ

・直近3か月の損益グラフ

・直近1か月の損益グラフ

・直近1週間の損益グラフ

では「直近3年」はどうすればよいでしょうか。損益指標表の右端のスクロールバーを下げると、「直近3年」が出てきます。

・直近3年の損益グラフ

元の期間 2001~2010年に戻したい場合は「指定期間」をクリックすれば戻ります

・指定期間の損益グラフ

さて、過去に遡るときに注意したいことがあります。例えば過去のある時点の移動平均値(26本)を求める場合は、その時点からさらに指定本数(26本)前のデータが必要となります。時間足ならば開始日時のさらに26時間前、日足ならば26日前、週足は26週前までの過去データが必要となります。これらのデータがそろっていないとバックテストはできません。もし下記のようなエラーが出た場合は、テスト開始日時を少し遅らせて、計算に必要なデータがそろうようにしてください。

ストラクチャ作成入門 第7回:マルチタイムスケール

2010年7月14日 水曜日

開発チームです

今回は「マルチタイムスケール」なストラクチャを作ります。「マルチタイムスケールなストラクチャ」とは異なる足種類(5分足、時間足、日足等)のロジックを組み合わせたストラクチャを意味します。例えば時間足の移動平均線ロジックと5分足のMACDロジックを組み合わせるケースを考えてみましょう。

ロジック

・短期移動平均線(1時間足)が長期移動平均線(1時間足)を上回る かつ、

・MACD(5分足)が0以下の場合、買い

・短期移動平均線(1時間足)が長期移動平均線(1時間足)を下回る かつ、

・MACD(5分足)が0以上の場合、売り

このような複数の異なる足種類(時間足と5分足)を組み合わせたストラクチャの場合、評価タイミングは短い足種類のサイクル毎となります。上記例の場合は5分足が評価サイクルとなります。つまり5分おきにMACD(5分足)と移動平均(1時間足)それぞれを評価し、両方のロジックが満たされた場合にシグナルが出ます。5分足の評価は5分おきに行うのはわかりますが、「1時間足を5分おきに評価する」とはどういうことでしょうか?答えは簡単で、「評価タイミングでできている、直近の最新足を評価する」です。

評価例:

14:00 -> 時間足(13時~14時) と、 5分足(13:55~14:00)を評価

14:05 -> 時間足(13時~14時) と、 5分足(14:00~14:05)を評価

14:10 -> 時間足(13時~14時) と、 5分足(14:05~14:10)を評価

~略~

14:55 -> 時間足(13時~14時) と、 5分足(14:50~14:55)を評価

15:00- > 時間足(14時~15時) と、 5分足(14:55~15:00)を評価

このようなストラクチャを作ることで、時間足でトレンドを見つつ、短い足でタイムリーに売買ポイントを補正する、といったことが可能となります。組み合わせの例として

・時間足の移動平均+5分足のMACD

・時間足の移動平均+5分足RSI

・時間足の移動平均+5分足のストキャスティクス

などが挙げられます。実際どういう効果があるかバックテストをしてみましょう。

時間足の移動平均のみのロジック(5分足補正なし)

時間足の移動平均+5分足のMACD

時間足の移動平均+5分足RSI

時間足の移動平均+5分足のストキャスティクス

パラメタの調整が必要になるケースもありますが、移動平均の時間足+オシレータ系の5分足が有効であることがお分かりいただけたでしょうか。