English Русский 中文 Español Deutsch Português
実際ティックでの取引ストラテジーのテスト

実際ティックでの取引ストラテジーのテスト

MetaTrader 5 | 8 8月 2016, 10:45
2 926 0
MetaQuotes
MetaQuotes

この記事では、簡単な取引ストラテジーを3つのモード(分足バーの始値、高値、安値、終値だけを使用する『1 minute OHLC 』モード、 詳細なモデリングをする全ティック』モード、 履歴から記録したティックを使用する『リアルティックに基づいた全てのティック』モード)でのテスト結果をご紹介します。

このデータによって、様々なモードにおける質を理解し、素早くテスト結果を得る為にどのようにテスターを使用すべきかが見えてきます。『1分足OHLC』モードでは、素早くテストの評価を取得することができ、『全ティック』モードでのモデリングでは、現実に近いものを得ることができ、実際ティックでのテストでは最も正確な結果を得ることができますが、それに応じた時間が必要になります。また、トレードロボットのロジックのエラーは、取引操作数に影響を与え、履歴でのストラテジーのテストの結果が選択したテストモードに影響を受けることに繋がります。


どんな取引ストラテジーをテストしたか

私達は最新のRangeLength バーの範囲の突破をベースにした簡単な取引ストラテジーを作成しました。ここでの取引ルールは次の通りです。新しいつい先ほど開いたバーでは、最新のバーN本での最高値と最安値の範囲を計算します。添付したエキスパートアドバイザーでは、RangeLengthパラメータはデフォルトでバーは20本で、私達が範囲を構築するウィンドウの広さを意味します。

上または下への最初の範囲の突破後、受信されるティックの統計(いくつのティックが範囲を突破したレベルよりも上で、いくつか下か)が蓄積し始めます。受信したティックがTicksForEnter=30と同じもしくはそれ以上になると、現在価格での市場エントリーの決定が下されます。もし範囲が上に突破された場合、突破レベルよりも上のレベルのティック数が、このレベルを下回るティック数よりも多い必要があります。この場合には買いが実行されます。ショートポジションへのエントリーの為には、全てが逆になります。

保有ポジションの決済は、時間ごとにBarsForExitのバーを通して行われます。ご覧のように、取引のルールは簡単なものです。見やすくする為に、図に表しました。

3つの異なるティックのモデリングモードで、このストラテジーのテスト結果がどのように変わるかを見てみましょう。


テストした方法

取引ストラテジーは、EURUSD/H1/2016年の上半期の6か月(2016年1月1日から2016年6月30日まで)でテストされました。エキスパートアドバイザの全てのパラメータは、私達の課題は様々なモデリングモードでのストラテジーの簡単なテストだったので、デフォルト値が設定されています。



様々なテストモードでの結果の比較

様々なモードでのテスト結果は表をご覧ください。真っ先に目に飛び込んでくるのは、取引操作数の違いです。したがって、他の全てのテスト指標も同じく異なります。また、『1分足OHLC』モードでのテストにかかったのは1.57秒で、これは『全ティック』モードにかかった時間より23倍も速いものです。このような違いは取引システムの入力パラメータを最適化する際に、大きな意味を持ちます。

『リアルティックに基づいたすべてのティック』モードは、更に時間がかかり、『全ティック』モードでは36.7秒だったものが74秒もかかりました。これは『全ティック』モードよりも約2倍多い3400万ティック以上のモデリングが、リアルティックの使用時に行われたということです。したがって、テスト時に多くのティックを使用すればするほど、ストラテジーテスターでの一回のパスに多くの時間がかかるということです。

パラメータ
1分足OHLC
全ティック
リアルティックに基づいた
全ての
ティック
731 466
 18 983 485
34 099 141
純利益
169.46 -466.81
-97.24
トレード
96
 158156
取引
192
 316312
エクイティのドローダウン(%)
311.35 (3.38%)
 940.18 (9.29%)
625.79 (6.07%)
残高のドローダウン281.25 (3.04%)
882.58 (8.76)
591.99 (5.76%)    
収益性の高い取引(%)
50 (52.08%) 82 (51.90%)73 (46.79%)
平均連続勝利数
2
2
2
ティック生成時間を含めたテスト時間
1.6
36.7
74秒(1分14秒)

統計上の違いを見る為に、様々なモデリングモードのテストレポートを、GIF画像のアニメーションとして表示しました。


残高チャートと自身の資金のチャートにも違いがあります。しかし、この簡単なストラテジーは魅力的には見えず、成長期間は衰退期間に変わっていて、各テストのチャートは偶然の連鎖のように見えます。このようなシステムでは取引をすることはできないし、結果は賭けのようになってしまいます。



ティックの取得に依存する取引システム

シュミレーションした取引システムは、モデリングの方法(取得ティック数やその取得方法)に強く依存します。『1分足OHLC』モードでのテストの際には、最も少ないティックがモデリングされ、これが常に市場へのエントリーの為に十分なものであるとは言えません。『全ティック』や『リアルティックに基づいた全てのティック』モードでは、全く異なったティックの取得方法をしています。『全ティック』のモデリング時には、範囲の突破時に市場へのエントリーを保証する一連のティックの単調な成長か単調な衰退となるかもしれないし、『リアルティックに基づいた全てのティック』モードでのテスト時には、ティック履歴の記録が使用され、価格変動のダイナミクスは予想外のものになるかもしれません。

結果上は、テスト期間の始めにさえ、チャート上のエントリーやイグジットのレベル自体が異なっていて、いくつかのトレードの省略が発生していることがわかります。



ティック生成の4つのモード

MetaTrader 5のターミナルのストラテジーテスターによって、4つのティックモデリングモードで取引ストラテジーをテストすることができます。この事については、MetaTrader 5でのテストの基礎をご覧ください。最も早く粗いモードは、『始値のみ』モードで、取引操作は新しいバーの始まりにしか行われません。このモードでは、エキスパートアドバイザはバーの中で何のアクションも起こせないので、バーの中で価格が成長することを考慮していないストラテジーのテストには良く適しています。

つぎに精度の高いモードは『1分足OHLC』モードで、履歴のテスト範囲に入る各分足バーの始値、高値、安値、終値の価格がモデリングされます。このようにして、H1の時間軸での1時間のテストで、エキスパートアドバイザは240回呼び出されます(OnTick()ハンドラは60分の各バーのOHLCの各価格に1回ずつ4回呼び出されます)。このようなモデリング時には、既にトレーリングストップが使用でき、必要に応じて他の時間軸やインディケータでの価格の成長を見ることができます。例えば、『エルダーのトリプルスクリーン』タイプのストラテジーのテストです。

多くのトレーダーが始値で動作するロボットを作成しているので、これらの二つのモードは、多くの取引ストラテジーによく適していると言えるでしょう。しかし、取得ティックのより正確で詳細なモデリングを実行する必要がある場合には、『全ティック』モードが必要になります。このモードでは、各分足バー内の価格成長がモデリングされ、ティックの生成は十分に複雑かつ規則的に行われます。このモードに対する価格のモデリングメカニズムについては、METATRADER 5 ターミナルのストラテジーテスタ内でティック作成をするアルゴリズムに詳細が書かれています。

ストラテジーテスターで本格的で完全な履歴の再現が必要な場合には、『リアルティックに基づいたすべてのティック』モードを使用してください。このモードでは、テスターは記録されたリアルティックをブローカーの取引サーバーから自分でロードし、それに基づいて価格の成長を作成します。履歴のリアルティックのない部分に対しては、テスターは『全ティック』モードと同じように価格をモデリングします。このように、ブローカーに必要な銘柄の全ての記録がある場合、本当の履歴データのテストを行うことができます。しかし、3つのモードの比較結果の表を見てわかるように、このようなティック精度には相当なテスト時間がかかります。

『1分足OHLC』モードからシステムの開発を始めましょう

お分かりのように、全てに勝つことはできません。時間を短縮して取引アイディアをテストするなら、簡単なモデリングモードで精度を失うことになります。テストにはエントリー価格や取引シグナルの精度が保証される必要があるということであれば、精度はより高くなるが多くの時間がかかるモードを使用する必要があります。

取引ストラテジーのテストに移るまえに、結果の精度や結果を得るのにかかる時間は、選択したモデリングモードに依存するということを明確に認識しなければいけません。取引ストラテジーを素早く評価しテストする必要がある場合には、『1分足OHLC』モードを使用しましょう。このモードでは、素早く取引システムの可能性を評価することができます。

次のステップ - 『全ティック』モードとデバッグ

予備的結果が十分なものである場合には、デバッグを続けてより正確なモデリングモードでの取引システムの分析を行うことができます。ここでは、テストモードのストラテジーデバッグが役立ち、ブレークポイントを設定して変数の状態やエキスパートアドバイザに設定された条件の実行を確認することができます。貴方が自分のシステムに何かしらのニュアンスを入れ忘れた場合には、ここで予期せぬ驚きに出くわすことがあります。



スピードに対するテスト精度

3つのモードでの取引システムのテスト結果からわかるように、トレーダーは常に彼の取引ストラテジーにとって適したティックのモデリングモードを選択しなければいけません。もし貴方がシステムを日足でテストする場合には、テストが高速で、取得する結果の質を犠牲にしない『始値のみ』モードが十分適しています。

もし貴方がスキャルピングやアルビトレージのストラテジーを作成している、または貴方のストラテジーがインデックスやリアルタイムモードの合成指標に基づくものである場合、『リアルティックに基づいたすべてのティック』モードが必要になります。この時、テストにはかなり時間がかかりますが、最大限に現実に近い結果を得ることができます。しかし、歴史は繰り返さないということを忘れずにおきましょう。したがって、最適化を使用したこのモードでの理想的な入力パラメータも、リアル口座でロボットを起動させたときの成功を保証するものではないのです。

1分足OHLC』と『全ティック』モードは、『リアルティックに基づいたすべてのティック』よりも速いが、テスト精度は低いものになります。概してテストの時間と精度の法則は次のようになります。

速くテストが行われれば行われるほど、取引のモデリングの精度は低くなる。履歴上の価格成長がより詳細に正確にモデリングされればされるほど、テストの実行時間は増大する。

取引サーバーは既に長年に亘って実際のティック履歴を蓄積しており、MetaTrader 5のストラテジーテスターは『リアルティックに基づいたすべてのティック』モードで自動的に必要な全ての履歴をダウンロードします。しかし、より正確なテストをするには、より多くのリソースを必要とします。したがって、精度と時間の間のバランスを見極めましょう。 

全てのストラテジーが開発の始めの段階で詳細なモデリングを必要とするわけではありません。テストモードを正しく選択することで、時間を節約し間違ったストラテジーの多くを振り分けることができます!

利益を生む自動売買システムの作成という主要な課題を解決した後にやっと、リアルティックでの最適化をすることができますが、この段階ではMQL5 Cloud Network分散計算ネットワークの能力が必要になります。


MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/2612

添付されたファイル |
SimpleBreakOut.mq5 (20.38 KB)
ユニバーサルEA:シグナルの標準メタトレーダーモジュールとの統合(その7) ユニバーサルEA:シグナルの標準メタトレーダーモジュールとの統合(その7)
このパートでは、シグナルモジュールとCStrategyエンジンの統合の可能性が、メタトレーダーの標準ライブラリにあることについて記述します。この記事では、カスタム戦略を作成するメソッドと同様に、シグナルの操作メソッドについて説明します。
ユニバーサルEA:カスタムトレーリングストップ(その6) ユニバーサルEA:カスタムトレーリングストップ(その6)
The sixth part of the article about the universal Expert Advisor describes the use of the trailing stop feature. The article will guide you through how to create a custom trailing stop module using unified rules, as well as how to add it to the trading engine so that it would automatically manage positions.
ビル・ウィリアムズのシステムに基づく取引システムモジュール ビル・ウィリアムズのシステムに基づく取引システムモジュール
この記事では、ビル・ウィリアムズの取引システムや、このシステムパターンをチャート上で発見しマーキングする為に開発されたMQL5モジュールの使用方法、見つけたパターンでの自動売買の原則、また様々な取引銘柄でのテスト結果を公開しています。
エリック・ナイマンの『チャネル』インディケータ エリック・ナイマンの『チャネル』インディケータ
この記事では、エリック・L・ナイマン氏の著書『トレーダーの小百科事典』を元に『チャネル』インディケータの作成について述べていきます。このインディケータは、指定した期間で計算したベアとブルの値に基づき、トレンドの方向を表示します。この記事では、サンプルコードと共にインディケータの計算と構築の原理を説明し、インディケータをベースにエキスパートアドバイザを作成し、外部パラメータの最適化について述べていきます。