バックテストにおける「全ティック」「コントロールポイント」「始値のみ」の各モードの違いを理解していますか。
モデルの理解をなんとなくですませていると、バックテストをしてもいまいち実戦と結果が一致しなかったり、バックテストのみ利益がでるシステムを作ってしまいがちです。
各モデルの違いと、どのようなシステムにすればそのモデルで耐えられるバックテストができるのかを考えます。
Contents
1. 各モードの解説
MT4ではバックテストの際にモデルを選択することができます。
そのモデルに応じて使用するヒストリカルデータの扱い方がかわるため、
バックテストの結果や精度に大きな影響を与えます。
ひとつずつ順番に各モードに関して見ていきましょう。
1-1. 全ティック
1-2. コントロールポイント
1-3. 始値のみ
1-1. 全ティック
全ティックは1分足から擬似ティックを生成し、バックテストするモデルです。
MT4上では最も正確な方法と表示されています。
しかし、実際は最も細かい時間枠で見ることができるが、それが正確とは限らないという現実があります。
1分の中の値の動きは、実際におこった動きではなく、始値、高値、安値、終値を一定のアルゴリズムで生成しているためです。
このアルゴリズムはざっくり言うと、陽線では始値→安値→高値→終値、陰線では逆に始値、高値、安値、終値へと値が動くようになります。
詳細は後述しますが、モデリング品質が90%となっていても、厳密に精度をあらわしているわけではありません。
1-2. コントロールポイント
コントロールポイントはひとつ下の足で擬似ティックを生成し、バックテストするモデルです。
自分が使っている足のひとつ下の足、つまり日足を使っていれば4時間足を、1時間足を使っていれば30分足をべースに擬似ティックを生成してバックテストを行います。
全ティックと同様に、ひとつ下の足内で起こっている動きは実際におこった動きではなく、始値、高値、安値、終値を一定のアルゴリズムで生成したものになります。
1分足よりも大きな値幅で擬似ティックを作成することになるため、全ティックよりも当然精度は落ちます。
1-3. 始値のみ
始値のみを用いるモデルでは、実際につけた始値、高値、安値、終値だけを使用します。
擬似ティックを生成しないため、まったく足内の動きはわかりません。
ただし、確定足の動きを参考にシステムを作る場合は、実際の値動きしか使っていないためバックテストと実戦の結果が一致するメリットがあります。
また、大変高速なため最適化の際の速度を気にする必要がほとんどありません。
2. 擬似ティックの生成方法
記録されていないはずのティックを始値、高値、安値、終値から作り出す擬似ティックとはなにか、その生成方法を解説します。
この生成方法がわかれば、自分のバックテストの結果が信頼に足るものか確認できるようになります。
2-1. 1分足によるコントロールポイント
2-2. ボリュームによる擬似ティックの生成
2-1. 1分足によるコントロールポイント
まず、擬似ティックの生成アルゴリズムは3-5-3波モデルによって、コントロールポイントと呼ばれるポイントを作成することから始まります。
陽線ならば。始値→安値→高値→終値になるように、始値から安値に向かって3点、安値から高値に向かって5点、高値から終値に向かって3点のコントロールポイントが作製されます。
これは図のように決まった点にふられており、最初の3点は下ヒゲの3/4→1/2→安値。
次の5点は安値と高値の1/3まで上昇し、1ポイント下げ、2/3まで上昇し、1ポイント下げ、高値まで上昇します。
高値から終値にかけての3点はまた上ヒゲの3/4→1/3→終値とポイントを順に打っていきます。
陰線についてはこれの逆を考えればよく、始値→高値→安値→終値と順にサポートポイントを打っていきます。
2-2. ボリュームによる擬似ティックの生成
サポートポイントを打ち終わると、各サポートポイントの間をうめるようにティックデータが配置されます。
このティックデータは1分足のボリュームによって数が変わり、1ティックのボリュームが5を超えないように行われます。
例えば1分足のボリュームが100であれば、サポートポイントを含めて100/5=20以上の擬似ティックが作成されます。
ティック数が少なければコントロールポイントを直線的につなぐように、ティック数が多い場合はある程度コントロールポイント感でジグザクにつながれるようです。
以前の記事で書いたDukascopyの全ティックを用いたバックテストに時間がかかるのは、ボリューム数が多く、擬似ティックを膨大に作製してバックテストを行っているためです。
3. どのようなバックテストをすればよいか
擬似ティックが必ずしも実際の値動きを反映しているわけではないことがわかっていただけたと思います。
このことから、どのようなバックテストは信頼できないかや、どのようにバックテストを組み立てればよいかを考えていきます・
3-1. 短い足での全ティックを用いたバックテストは精度が低い
3-2. 大きな時間足で全ティック
3-3. バックテストと完全一致は始値のみ
3-1. 短い足での全ティックを用いたバックテストは精度が低い
まず、一番やってはいけないバックテストは超短期スキャルピングのシステムです。
擬似ティックは一分足の中で作られますが、この値動きの作られ方を見ても、とても現実に即しているとは考えられないでしょう。
実際の相場では1方向に素直に動くことは少なく図のように高値や安値を足の中で何度も更新するような動きが行われると思います。
そのため、1分以内に売買を行うようなシステムでは、その動きによって利確の前にロスカットにかかることも起こるようになります。
例えば何かのラインからの反発を考えます。
平均線でもボリンジャーバンドでもかまいません。
この線を上回った時に購入することを考えると、これを上回ったら上昇しかしません。
かなりタイトなロスカット幅を指定してもかかることはないでしょう。
しかし、実際には反発後も安値をつけることは容易に考えられます。
このことから超短期のスキャルピングシステムなどでは、バックテストでの偽りの利益をうみやすくなってしまいます。
一分足の中で売買が完結してしまうようなシステムをバックテストするのは避けるのが賢明です。
3-2. 大きな時間足で全ティック
それでは、どのようなシステムなら擬似ティックの影響を受けにくいのでしょうか。
長い時間足を使った全ティックによるバックテストでは、目標の利確幅や損切り幅が擬似ティックによって影響を受ける値幅よりも大きくなるため、影響は少なくなっていくと考えられます。
大まかな目安になりますが、1時間足以上で行うようなシステムだと影響を受けにくくなるのではないでしょうか。
ただし、極端に利確や損切の幅を小さくしているようなシステムでは、擬似ティックに左右されてしまいます。
3-3. バックテストと完全一致は始値のみ
ただ、どれだけ時間足を大きくして値幅を大きくしても、実際の取引とバックテストを一致させるのは難しいのが現状です。
一度自分が実戦を行った期間と同じ期間同じシステムでバックテストを行ってみてください。
全ティックで完全に一致することは稀なはずです。
これを一致させようと思うと確定足を使ったシステムを作る必要があります。
「一本前の足が〇〇を××したら」というようなシステムです。
メリットは実戦と同じ期間でバックテストした時全く同じ挙動を示すため、バックテストの精度は一番良いと考えられます。
一方で足内での急騰急落時には、足が確定するまで、損切りが行えません。
各モデルによって一長一短ありますが、特性を知って自分のシステムに合ったバックテストが行えることを願っています。