エキスパートアドバイザーは操作にティックデータを使用するため、ティックは、エキスパートアドバイザーのテストと最適化で必要とされます。 テストはブローカーによって提供された、または、分足データをベースにしたストラテジーテスターによって生成されたティックで行われます。
実際ティックでのテストと最適化は実際の条件に最大限に近くなります。分足データをベースに生成されたものの代わりに金融商品ごとに証券会社によって収集された実際ティックが使用されます。これらのティックは、取引所や流動性プロバイダーからのものです。
実際ティックでのテストの際には、スプレッドは分足バーの領域内で変わることがあり、その場合、1分間の中でのティックティック生成時に相応するバーで決まっているスプレッドが使用されます。
もしシンボルによってマーケットデプスが中継される場合、バーはきっちりと最終取引(Last)実行価格で構築されます。そこにLast価格があったかどうかに関係なく、OnTickの発生は全てのティックで起こります。
チャートがLast値で構築されていたとしても、取引操作はいつもBidとAskの価格によって行われる点にご注意ください。例えば、バーの始値で動くエキスパートアドバイザは一つの価格(Last)に基づいてシグナルを取得しますが、取引の実行は他の価格(BidまたはAsk)で行われます。『全ティック』生成モード使用時には、バーはBid価格で構築され、取引はBidやAsk価格で実行されます。この時Askは、Bid+分足バーに相応する固定スプレッドで計算されます。
もしシンボルの履歴に分足バーがあるが、その分に対するティックデータがない場合、テスターは『全ティック』モードでティックを生成します。これによって、ブローカーに完全なティックデータがない場合の、計画した期間中におけるエキスパートアドバイザのテストをすることが可能になります。もしシンボルの履歴に分足バーがないが、その分に対するティックデータがある場合、これらのティックは無視されます。分足データはより信頼性が高いと考えられています。
ティックデータは分足データよりも遥かに大きいサイズを持っています。初めにテストを起動する際には、これらのダウンロードに時間がかかる場合があります。ダウンロードされたティックデータは、月ごとにTKCファイル\bases\[取引サーバ名]\ticks\[シンボル名]に保存されます。
ストラテジーテスターは、整数形式でキャッシュされた1分間の記録に基づいて、ティックデータを生成します。これは、テスターがプラットフォームから必要な履歴データをコピーし、計算をスピードアップするために整数形式に変換することを意味します。
ストラテジーテスターには複数のティック生成モードがあります。最も正確な「全ティック」モードは下に説明されています。 |
ティック生成手順は異なるティックボリュームを持つバーでは異なります。
ティックはボリュームが1のバーには生成されず、これらにはバーの終値を持つティックが書かれます。
また、ティックはティックが2つあるバーには生成されません。まず始値でのティック、次に終値でのティックが書かれます。
ティックを3以上持つバーでは、その数に応じて、異なるティック生成の方式があります。
ティックを3以上持つバーでは、4つの異なるティック生成の方式があります。
進捗オプション |
イメージ |
|
---|---|---|
価格が一方向に変動して始値レベルに戻ります。よってバーには高値と安値のみがあります。 |
||
価格は一方向に変動して始値レベルを超えます。この場合、バーはまた、高値または安値のみを持っていますが、始値と終値は等しくはありません。 |
||
価格は一方向に変動して始値レベルを超えません。 |
||
価格は一方向のみに何ポイントかで変動します。この場合、バーには高値や安値がありません。 |
ティックは基準点に基づいて生成されます。ポイントの数は、ティックボリュームを超えることはできませんし、11を超すことはできません(始値は考慮しない)。
基準点は、オープンのひげを形成するもの、ローソク足の範囲(高値と安値の間)及び終値のひげの3つの部分に分かれています。
ティックの数に応じて、基準点の分布の次の変異体が可能です。
基準点の数 |
オープンのひげ |
ローソク足の範囲 |
終値のひげ |
---|---|---|---|
11 |
3 |
5 |
3 |
10 |
2 |
6 |
2 |
9 |
2 |
5 |
2 |
8 |
2 |
4 |
2 |
7 |
2 |
3 |
2 |
6 |
1 |
4 |
1 |
5 |
1 |
3 |
1 |
4 |
1 |
2 |
1 |
3 |
1 |
1 |
1 |
|
基準点は、始値からポイント数として計算されます。ポイントの理想的な分布(3-5-3)は次のように計算されます。
強気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
弱気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
始値と終値が等しい同時ローソク足では1つ前のローソク足が分析されます。1つ前のローソク足が上昇した場合、次のローソク足は下落すると考えられ、その逆も当てはまります。
ひげが3つの基準点を使用して生成され、ひげの大きさの 3/4 と1/2の整数値が等しい場合(これは始値と安値または始値と高値の差が2ポイント以下である場合、つまり前後への価格ステップが等しい場合に起こります)、ひげが下記のように生成されます。
強気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
弱気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
終値のひげも同じように生成されます。 |
2つの点に基づいて生成された場合、生成は次のようにが実行されます。
強気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
弱気ローソク足
ポイントの計算 |
イメージ |
---|---|
|
終値のひげも同じように生成されます。 |
ローソク足の範囲はサイクルで波によって生成されます。Prev = Low (1つ前の価格が安値)の場合、次のサイクルが利用されます。
Prev = High(1つ前の価格が高値)の場合、次のサイクルが利用されます。
ここで
N1 と N2は1サイクルでの基準点、
Prevは一つ前の価格
Stepはステップサイズです。ステップは下記のように計算されます。(H - L -1)/(サイクル数) +1;
サイクル数は (範囲での基準点の数 +1)/2として計算されます。
基準点の中間のティックは次の規則に従って生成されます。
ティック生成モードはストラテジーテスター設定ウィンドウで選択できます。下記のオプションが利用できます。
このモードでは全てのティック、つまりOHLC及び中間ティックが生成されます。ティック生成の手順については上記で説明されました。
このモードでは1分足OHLCティックのみが生成されます。ローソク足のティックボリュームが4を超す場合、始値、高値、安値、終値の4価格のみが生成されます。ティックボリュームが4未満の場合、上記のローソク足生成ルールが適応されます。
このモードの選択は、テストや最適化がM1の時間枠で実行されることを意味するものではありません。例えばH1時間枠が「M1 OHLC」モードで選択されると、価格は始値、高値、安値、終値の一分足のそれぞれで生成されます。この場合、テストはH1で行われますがエキスパートアドバイザーの OnTick() イベントは一分足の始値、高値、安値、終値で毎分4回作動します。 |
実際には、OHLC価格は履歴データ内に存在します。よって、テスト中にはティックは高/低/始/終値でのみ生成され、価格値は履歴から収得されます。
このモードでは、テストのために選択された時間軸のOHLC価格が生成されます。エキスパートアドバイザーの OnTick() 関数はバーの初め(始値)で実行されます。この機能により、逆指値レベルや未決注文は(特に高い時間軸のテストで)指定とは異なる価格でトリガされることがあります。しかし、このてめにすぐにエキスパートアドバイザーの評価テストを実行することができます。
例外は、バーが週に一度または月に一度の代わりに一日一回生成される期間 W1 と MN1 です。 |
「始値のみ」モードには制限があります。
「全ティック」モードは3つのモードのうちで一番正確ですが、同時に一番時間がかかります。テスト/最適化の正確さより迅速さが求められる場合は、「オープン価格のみ」モードをご使用ください。 |
このモードでは、ストラテジーテスターを数学的計算のために使用することができます。履歴データや銘柄情報を必要でないので読み込まれず、ティックは生成されません。テストされたエキスパートアドバイザーでは OnInit()、OnTester() 及び OnDeinit()のみが順番に呼ばれます。
このモードでは、カスタム最適化基準が使用されます。最適化モードとエキスパートアドバイザー以外のテスター設定のフィールドはすべて無効にされます。
数学的計算は、その値が OnTester() から返されるべきである数学関数の極値を計算するために有用です。最適化関数の最大値を見つけることが目的です。数学関数の入力パラメータの組み合わせの数が多い場合は「遺伝的アルゴリズム」の使用をお勧めします。これによって、大幅に検索を高速化することができます。