クロスプラットフォームグリッドEAの開発(パートII):トレンド方向のレンジベースのグリッド

12 8月 2019, 15:10
Roman Klymenko
0
195

イントロダクション

前回の記事では、MetaTrader4とMetaTrader5の両方で動作するシンプルなグリッドEAを開発しました。 その主な特徴は、グリッドを配置した後、現在のグリッドが利益または損失で閉じられるまで、新しいオーダーを追加しないことです。

今回のテストによると、グリッド戦略は2018年から利益を出しました。 残念ながら、一貫して2014-2018では損失が発生しました。 したがって、実際のアカウントで使用することは危険です。 この記事では、新しいトレードのアイデアに基づいてグリッドEAを開発します。

トレードシステム

この記事の最初の部分からEAの主なアイデアは、価格が最も頻繁に特定の方向に移動するという仮定に基づいています。 これは、間違った方向に複数のオーダーを開いた場合、正しい方向に開かれた新しいオーダーが損失を補うことができることを意味します。 したがって、遅かれ早かれ、すべてのオープンオーダーが必要な利益に達することができます。 このアイデアを実装する際には、現在の価格の上に N ロングオーダーのグリッドを設定し、同じ量の売りオーダーが現在の価格を下回るようにグリッドを設定します。

しかし、さらなるテストは、価格がしばしば上記のオーダーに触れ、その後、再び上がるためだけに下のオーダーに触れて下に移動することを示しました。 したがって、すべてのロングオーダーとショートオーダーを徐々に有効化し、すべての潜在的な利益をゼロにします。 明らかに、このようなトレードシステムは完璧ではありません。

しかし、この価格行動が頻繁で、為替価格が頻繁にレンジになる場合は、利益を出すことができそうではないでしょうか。 グリッドは現在の価格より上のロングに設定し、グリッドは引き続きその下にショートします。 しかし、2つの重要な変更を行います。

まず、ポジションチェーン全体ではなく、各ポジションにTPを設定します。 個別のオーダーごとに ストップロス を構成するための設定も実装する必要があります。 しかし、このテストは、たとえSLを適用しても利益がもたらされないことを示します。 したがって、今回は使用するつもりはありません。

第2に、現在の価格が前の価格と異なる場合、グリッドに常に新しいリミットオーダーを追加します。 価格が遠くに移動しすぎたリミットオーダーが削除されます。 したがって、価格が1グリッド上に移動した場合、価格の上に現在のグリッドの終値に新しいロングリミットオーダーを追加し、ショートリミットオーダーが最初の価格の下に追加され、現在の価格より下の直近のショートリミットオーダーが削除されます。 したがって、グリッドは資産価格に従います。

トレンドの間、トレンドの動きの間にオーダーによってTPを受け取ります。 訂正の場合は、トレンドに向かってTPを受け取ります。 したがって、大きな時間枠で、価格が変化する方向に移動する場合、価格方向に関係なく利益を回収できます。

では、実際の結果を確認してみましょう。

ベースとなるバージョンのEAの開発

最初の記事とは異なり、ここではEAのソースコードを分析しません。 ソースコードとMetaTrader4とMetaTrader5のコンパイル済みEAの両方が記事に添付されています。 この記事では、アルゴリズムを構築し、テストを実行します。

グリッドオーダー間の距離

グリッド内のリミットオーダー間の距離から始めます。 すべてのリミットオーダーは、互いに類似した距離で設定する必要があります。 価格が変更されたときにグリッド全体を編集せずに一度に設定した場合、これは問題ではありません。 ただし、今回のグリッドは "浮動"です。 新しいリミットオーダーを設定する前に、このグリッド ステップにリミットオーダーが存在するかどうかを何らかの方法で定義する必要があります。

リミットオーダーが同じ価格で存在するかどうかを確認することはできません。 オーダーの価格は、数ポイント高いか低い場合があります。 これを考慮しない場合、 このEAは、比較的似たような価格でリミットオーダーを大量に設定する可能性があります。

この問題を回避するために、ポイント単位でリミットオーダー間の距離を設定しません。 代わりに、10倍した値を使用してグリッド ステップ間の距離を設定します。 EAパラメータのリミットオーダーは10倍した値によって行われます。

値が正の場合は、グリッドオーダーを設定する小数点以下の桁数を指定します。 たとえば、値 2 は、価格ステップの各 1/100 でグリッドが設定されたことを意味します。 たとえば、現在の価格が 1.1234 の場合、ロング グリッドは 1.13、1.14、1.15、および ...、ショートグリッドは 1.11、1.10、1.09、....です。 言い換えれば、グリッドオーダー間の距離は、4桁と5桁のシンボル(ほとんどの外国為替シンボル)で100ポイントになります。

3の場合、グリッドは小数点以下 3 番目の場所に配置されます。

  • ロング: 1.124, 1.125, 1.126, 1.127, …;
  • ショート: 1.122, 1.121, 1.12, 1.119, ….

したがって、10ポイントのオーダー間の距離があります。 パラメータ値が 0 の場合、グリッドのステップは 1 になります (たとえば、111、112、113、114)。

負の値もこのパラメータでサポートされます。 小数点から左に桁数をシフトします。 たとえば、-1 はグリッドが 10 のステップで設定され、-2 は 100 のステップを意味します。

このグリッド配置方法は、必要なグリッドステップでのリミットオーダーの存在のチェックを簡素化するだけでなく、トレードのラウンド価格によって形成されたレベルを考慮することができます。 実際、ラウンド価格でリミットオーダーを設定します。

グリッド ステップに影響を与える別のパラメータがあります 。 "ポイントのシフト"です。 これより、グリッドステップをラウンド価格から指定したポイント数にシフトすることができます。 たとえば、桁数2 およびシフト 1 の場合、グリッドは 1.12、1.13、1.14 ではなく、1.121、1.131、1.141 で配置されます(現在の価格より長いオーダーの場合は 1.119、1.129、1.139)。 これより、不利なシナリオでは、価格が反対方向に移動する前にリミットオーダーに触れないことを期待して、ラウンド価格を使用してさらにカバーすることができます。

"ポイントのシフト" パラメータに関しては、テストは必ずしもポジティブな結果につながるとは限りません。

メインEAパラメータ.

上記で考慮されたパラメータとは別に、EAには他にも複数のパラメータがあります。

EAパラメータ

その中で最も重要なものは次のものです。

  • "ロットサイズ"。 ロットサイズは、各リミットオーダーを設定する際に使用するロットボリュームを定義します。
  • "一方向のリミットオーダーの最大数パラメータ このパラメータは、価格の片側からグリッド内のリミットオーダーの数を定義します。 つまり、グリッドは常にこのパラメータの浮動小数点数で構成されます。 価格がリミットオーダーをオープンポジションに変えるグリッド方向のいずれかで移動するとすぐに、このEAは新しいリミットオーダーを開き(価格から遠すぎるものを閉じ)、価格の両側からの合計数がパラメータに対応するようにします。 より正確に言うと、EAが起動された時間枠に新しい足が表示されたときに、新しいリミットオーダーが設定されます。
  • "オーダーテイクプロフィット". このパラメータは、個別のリミットオーダーごとにTPを定義し、EAグリッドステップで指定します。 たとえば、値 2 は、価格がその方向に 2 つの次のグリッドリミットオーダーを移動したときにポジションがクローズされたことを示します。 リミットオーダーの 10が 3 の場合、実際のTPは現在の価格の 0.002 (利益の 20 ポイント) に設定されます。
  • "オーダーストップロス". このパラメータは、EAグリッドステップの各リミットオーダーに対して ストップロス を定義します。 テストによると、このタイプのグリッドEAにSLを配置することは非効率的であるため、使用しません。

個別のオーダーのTPは別途言及する必要があります。 このパラメータの最適な値は、主にシンボル価格の動きに依存します。 しかし、ほとんどの場合、1-5のレンジ内に位置します。 1に近い値と5に近い値の両方に利点があります。

値が小さいほどポジションの利益が小さくなり、決済が速くなります。 これには、次の 2 つの利点があります。

  • 小さなレンジであっても、ポジションは、方向のいずれかの各価格の動きで利益でオープン決済されます。
  • TPが小さいので、修正時の価格は、現在のものとは反対の方向に少ないオーダーを残し、したがって、残高への負荷が減少します。

大きなTPも有益です。

  • 大きなトレンドの動きの間に、大きなTPを使用する場合、全体的な利益は大きくなります。

したがって、小さなTPの場合、資産ドローダウン(および潜在的な利益)は低くなります。

すべてのポジションの決済. 個別のグリッドオーダーのTPとは別に、他の多くのパラメータを使用して、特定のイベントの場合にすべてのオープンポジションをクローズすることができます。 これらのパラメータはすべて、別の"すべてのポジションを決済" グループに集約されます。

  • "Profit, $". 全体的な利益が $で指定された合計に達した場合は、すべてのオープンポジションを閉じます。
  • "残高が増加した場合、 $". 残高が現在($で指定された値で)、最初のグリッドを開くときよりも大きい場合は、すべてのオープンポジションを閉じます。 すべてのポジションをクローズする場合は、このオプションの方が望ましいです。
  • "超える価格ですべて閉じる。 これは、価格が上方にトレードレンジを決済した場合、すべてのオープンポジションの決済を可能にする保護パラメータです。 価格であり、その上にすべてのオープンポジションがクローズされます。
  • "すべてを特定値以下の価格で閉じる" . 価格が下方にレンジ推移した場合、すべてのオープンポジションの決済を可能にする保護パラメータです。

最初は、レンジを決済するときにすべてのポジションを閉じることは魅力的に見えるかもしれません。 しかし、実際には、通常、前に得られた全体の利益をブレイクダウンにします。 以下に示すように、価格がそのレンジを決済し、強いトレンドが表示された後に何をすべきかを決定することは、このトレード戦略のキーストーンです。

その他のパラメータ. EAに存在するパラメータのほんの一部のみを分析しました。 以下の他のパラメータを見てみましょう。 ただし、適用しないパラメータがいくつかあります。 名前は(-)でマークされています。 それぞれは、特定のアイデアを実装しますが、そのアプリケーションはポジティブな結果をもたらしません。 役に立たない訳ではありますが、とりあえず見てみましょう。 戦略に使用したり、改善するためのヒントを見つけることができるかもしれません。.

テストツール

テストを開始する前に、EAが基づいている考え方と実装方法をもう一度見てみましょう。

相対的な確実性を持つほとんどの資産の価格変動を予測することは困難です。 価格は、最初に新しい高値を形成して上昇し、その後、新しい安値を形成することによって下がる可能性があります。 その後、動きが再び変化し、価格は以前の高値よりも少し低く閉じるか、新しいものを形成します。 長時間の単方向価格の動きは、通常、修正を伴います。 価格の方向性にかかわらず利益を得るために必要なものとはまったく同じです。

これを行うには、現在の価格の上下にリミットオーダーを設定します。 オーダーは、互いに類似した距離に配置されます。 価格が上がった場合、後で同様に行うことを前提にロングオーダーを設定します。 短期オーダーは価格の下に配置されます。

グリッド内のオーダー数は、"一方向のリミットオーダーの最大数" パラメータを使用して設定されます。 この値は、ここではさほど重要ではありません。 EAが起動される時間枠に新しい足が表示されたら、価格が現在のオーダーのいずれかに触れた場合、グリッドに新しいオーダーを追加します。

したがって、"一方向のリミットオーダーの最大数"パラメータは、価格が後で同じ方向に移動する単一の時間枠足内のすべてのグリッドオーダーを貫通する場合にのみ、速く、強い価格変動の間にのみ関連する可能性があります。

時間枠. このテストは、EAがM5でより良い結果を得ることを示しました。 したがって、すべてのテストを行いましょう。

マーケットの選択. EAが基礎としている考えは、レンジマーケット(外国為替を含む)の最良のものであることを明らかにします。 また、価格が位置するW1またはMN時間枠でレンジを見ることができれば良いでしょう。

例として、AUDCAD を見てみましょう。

AUDCAD MN

直近の5-10年はレンジにあります。 理論的には、選択したトレード戦略は、AUDCADと同様のシンボルに最適でなければなりません. 調べてみよう

次のシンボルでEAをテストします: EURUSD, AUDUSD及びAUDCAD. すべてのシンボルについて、10ポイント(桁数3)のグリッドステップをテストします。 100ポイント(桁数2年)のより大きなステップを使用してトレードすることができますが、年間トレードの少数で長期的なトレードになります。

テスト期間.

この記事では、1 年未満の期間には関心がありません。 テスト目的では、4年間(2015-2019年)の期間を見て、この期間の最も収益性の高い設定を正確に詳しく見ることができます。 このEAは、10年を超える期間のテストでは合格しません。 したがって、 "10年間放置できるような"EAではありません。

10ポイントのステップでEURUSDをテストします。

まず、トレード戦略の基本的な考え方を試してみましょう。 すべてのパラメータは、既に分析したパラメータを含め、デフォルトで設定されます。

  • ストップロスなし;
  • 条件によってすべてのポジションを閉じない。

最適化は、個別のオーダーのTPと "ポイントのシフト"パラメータによって実行されます。 最適化方法 — 1 分 OHLC. その後、最終的な結果は "すべてのティック"メソッドを使用してテストされます。 すべてのテストに関するレポートが記事に添付されます。

テストによると、最良の結果は2のTPおよび1点のシフトで得られました:

EURUSDの最初のテスト

最も重要なテスト結果:

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 EURUSD
 23 522
 20 641
 0.88
 1.39
 40 536

結局利益は出ましたが、満足のいくものではありませんでした。 これは、0.88に等しいリカバリーファクターによって明確に示されています。

実際、リカバリーファクターには最大ドローダウンに対する利益の比率が表示されます (利益は最大ドローダウンに分割されます)。 その値が1未満の場合、利益はEAのドローダウンよりも低くなります。

ほとんどは、年間資産の少なくとも100%の利益によって満足されると信じています。 4年間のテストを行っているので、4を超えればリカバリーファクターで満足するでしょう。 トレードシステムの改善を試みましょう。

近すぎるオーダーを行わない.

前述のように、EAは価格の動きに従って浮動グリッドを適用します。 価格が上向きに動く場合、EAは現在の価格に対して追加のリミットオーダーを設定します。

しかし、最も近いオーダーが修正中に頻繁に触れられ、TPによって閉じられていない場合はどうなるでしょうか。 価格に近すぎる追加のオーダーを行うことを無効にしましょう。 これは、" もっとも近いオーダーを配置しない" ブールパラメータで実現できます。 アクティベーション後に何が起こるかを見てみましょう:

EURUSDの2番目のテスト、桁数3

差はほど明白ではありません。 おそらく、テスト結果に表示されます。

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 EURUSD
 12 987
 15 302
 1.18
 1.64
 21 350

トレード回数をほぼ2倍に減りました。 これは、ブローカーのボーナスから利益を得たい場合, 良いニュースではありません. 利益水準も低下しています。 しかし、最大ドローダウンはほぼ2倍に減少し、リカバリーファクターは1を超えています。

このパラメータは、桁数3 の場合に他のツールでも同じように動作します (グリッドオーダー間の距離は 10 ポイントです)。 小さな価格の動きの修正がグリッドに到達しないため、トレードの数を減らけることができます。 価格が現在トレンドにある場合、このシナリオは有望です。 しかし、レンジ内にある場合(とにかく価格は以前に開かれたオーダーに戻っていた)、このパラメータを使用すると、潜在的な利益を減少させます。

足方向のエントリー

EAの改善を続けましょう。 多くの熟練したトレーダーは、ローカルトレンド方向にのみトレードすることを推奨しています。 このようなトレンドを定義する方法はなんでしょうか。 すべて簡単です。 価格が前の足で上向きに移動した場合は、ロングのみ、またはその逆です。

原則として、日足チャート上のローカルトレンドを分析することをお勧めします。 言い換えれば、価格が昨日上がった場合は、ロングします。 下に移動した場合は、ショートします。 この推奨事項に従いましょう。 D1 とは別に、他の時間枠もテストします。

足の移動方向のトレードを設定するには、"足方向"グループのEAパラメータを使用します。

  • "足のみでエントリーを使用" 関数を有効にするには true を設定します。
  • "足アカウントタイプ"。 今回、足に対してエントリーしたり、最小TPでエントリーすることを避けようとしました。 最小TPのオプションは常に悪化していたため、デフォルトのパラメータ値は "インプットしないでください。
  • "バーインデックス". 一部のトレードシステムでは、昨日と今日の足の両方を使用してローカルトレンドを定義することをお勧めします。 言い換えれば、価格が昨日上がり、今日の足も強気である場合は、ロングのみエントリーしてください。 このオプションも確認してみましょう。 このパラメータには、足 1 (前の足のみを確認)、足 0 (現在の足のみをチェック)、足0 足0と 足1 (前と現在の足の両方が同じ方向に移動する必要があります) の値があります。 このテストは、足1オプションが常により良い結果を得るであることを示しました。 よって、このパラメータをそのままにしておくことお勧めします。
  • "時間枠". 足をチェックする時間枠を選択します。

様々な時間枠で足でエントリーをテストした後、MN時間枠がEURUSDに最適であることが判明しました。

EURUSD の足によるテストエントリー

テーブルとして表示されるテスト結果:

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 EURUSD
 13 044
 19 227
 1.48
 1.8
 23 445

足でエントリーすると、すべてのシンボルの結果が向上します。 ただし、ほとんどの場合、D1 は完全に機能するため、MN の足でエントリーすることはおそらく例外です。 特定の瞬間に一方向にのみグリッドを設定するので、"最も近いオーダー"パラメータを使用しても意味がありません。

レンジトレード. 記事の主題で指定されているように、このEAはレンジ内のトレードに設計されています。 したがって、価格がW1またはMNチャート上のレンジ内にある場合、そのトレード結果はより良いはずです。 トレードレンジを設定して確認してみましょう。 次のパラメータが必要です。"価格が指定値以下の場合はロングを開かない", "価格が指定値以上の場合はロングを開かない", "価格が指定値以下の場合はショートを開かない" 及び"価格が指定値以上の場合はショートを開かない"

価格が超えた場合はロングを開かない"と価格が超えた場合はショートを開かないパラメータを1.17849に設定します。 残りの 2 つのパラメータを 1.09314 に設定します。

EURUSDでのレンジ内でのトレード

結果は間違いなく改善されました:

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 EURUSD
 2 412
 10 964
 4.55
 6.16
 6 974

残高が増えたとき、すべてのポジションをクローズ

記事の冒頭で、"すべてのポジションを閉じる " パラメータ グループについて説明しました。 これには残高が増加したとき$パラメータが含まれます。 このロジックは、パラメータは、現時点で開かれたすべての損失を作るポジションを閉じ、新たにトレードを開始することができるので、結果を改善する必要があることを教えてくれます。 これを行うには、価格がレンジに入り、アカウントの資本が指定された値によって増加するまで待ちます。 トレードの熟練者によると、価格は全体の時間の70%のレンジ内で移動します。

実際には、このパラメータを使用しても必ずしも結果が向上するとは限りません。 おそらく、価格の反転中に収益性の高いものに変わる可能性のある損失を出すトレードをクローズするためです。

ただし、この場合、"残高が増加したとき、 $" パラメータが実際に結果を改善します。 $2 000 の値が最高であることが判明しました。

EURUSDで残高を増やす際にすべてのポジションの決済をテスト

テスト結果:
シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 EURUSD
 3 200
 18 532
 5.79
 3.8
 6 954

これは、EURUSDでの直近のテストですので、結論を導き出しましょう。 固定ロットを使用しながら、年間約150%の収益性を得ることができました。 言い換えれば、口座残高を増やす際にロットを増やせば、はるかに多くの利益を上げることができます。

しかし、この結果はそれほど印象的ではありません。 ドローダウンはほぼ100%ですが、年間150%のリターンです。 ほとんどの投資家は、入金額の20%を超えるようなドローダウンは希望しないでしょう。 バランスの80%がその場合にアイドル状態にあるので、かなり奇妙な要件だと思います。 同様にトレードに残りの20%を残して銀行に預けることができます。 しかし、このような要件が存在するので、20%のドローダウン内にとどまるにはトレード量を5倍減らす必要があります。 したがって、予想利益は150%ではなく、年間30%です。 結果は完璧とは程遠い。

他のシンボルをテストしてみましょう。

テスト結果. 既に述べたように、各中間テストのすべてのレポートは、EURUSDおよび他の記述されたシンボルの両方で最終テストのSETファイルと一緒に記事に添付されています。

10ポイントのステップでAUDUSDをテスト (桁数 3)

基本的な設定でもAUDUSDのテストを始めましょう:

  • ストップロスなし;
  • 条件によってすべてのポジションを閉じない。

最適化は、TPと "ポイントのシフト"パラメータによって実行されました。 最良の結果は、3のTPと0のシフトで得られました:

AUDUSDでの基礎テスト
シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDUSD
 21 468
 -546
 -0.03
 0.99
 18 104

近すぎるオーダーは配置しない.最高の基本的なパラメータを持っていても利益を得ることができませんでした。 しかし、"近すぎるオーダーは配置しないパラメータを有効にしてみましょう。

近いオーダーを出さない、AUDUSD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDUSD
 14 701
 14 415
 0.98
 1.54
 15 049

足方向のエントリー

少し改善されたように見えます。 さまざまな時間枠で前の足でエントリーをテストしてみましょう:

日の足方向では、AUDUSD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDUSD
 9 186
 8 364
 0.91
 1.56
 8 573

レンジトレード

D1は、少し悪化したが、最高であることが判明しました。 とにかく、レンジ内で動作をテストしてみましょう。 レンジの境界線を現在の価格より 0.79728、その下に 0.70417 を大まかに設定してみましょう。

レンジ内AUDUSD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDUSD
 6 769  11 937
 1.76
 2.35
 7 591

残高が増えたとき、すべてのポジションをクローズ

予想通り、結果は改善されました。 リカバリーファクタはほぼ倍増しました。 最後に、残高を増やしてすべてのポジションをクローズするテストを行います。

残高が増加した場合のクローズポジション、AUDUSD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDUSD
 4 270
 8 552
 2
 1.74
 7 593

1 000で残高を増やすとポジションをクローズすると、リカバリーファクターを2まで増やすことが可能です。 これは、最終結果の小さな利益です。 おそらく、AUDCADはより良くなります。..

10ポイントのステップでAUDCADをテスト(桁数3)

記事の冒頭で、EAに適合する価格の動きを説明するためにAUDCADチャートを言及しました。 そのMN時間枠は、価格が動いているレンジを明確に示しています。 今では、このシンボルがどのように収益性の高いトレードになるかを確認する時間です。

基本的なテストは、テイクプロフィット4と0のシフトで最良の結果を示しました:

AUDCADでの基礎テスト
シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 8 216
 16 149
 1.97
 1.53
 17 852

同じ価格で最大オーダー.

基本的な設定を使用して、約2のリカバリーファクターに達しました, すなわち、AUDUSDで最終設定を使用したときと同じ結果です。

この結果は、まだ記事で説明していない最大オーダーを同じ価格"パラメータで変更すると、さらに改善できます。 デフォルト値は 33 です。 これは、EAが単一の方向に同じ価格で33ポジションまで開くことが許可されていることを意味します。 実際には、テスト中に単一の価格で10以上のポジションを開いたことがないため、単一の価格でポジションの無制限の数を意味します。

ポジションは単一の価格でどのように開かれるでしょうか。 すべて簡単です。 価格が上がり、最も近いオーダーに触れるとします。 その後、価格はロールバックされ、EAは上記の新しいリミットオーダーを同じ価格で設定します。 その後、価格は、配置されたオーダーに再び触れるレベルをテストします。

同じ価格で無制限の数のポジションを開くとEAの収益性が向上したので、単一の価格で最大オーダーするとは考えられません。 しかし、このケースはAUDCADとは異なります。 おそらく、シンボル価格の動きと関係がありますが、ポジションを開くために既に使用されていた価格にリミットオーダーを出すことを無効にすると、結果はより良くなります。 したがって、"単一の価格で最大オーダーを1に設定します。 

レベルがポジションがある場合は、オーダーを行わない AUDCAD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 5 896
 18 087
 3.07
 2.63  10 821

近すぎるオーダーを行わない.

リカバリーファクタを1.5倍以上に増やすことに成功しました。 次に、トラックに戻り、"最も近いオーダーを配置しない" パラメータを有効にするテストを行います。

近すぎるオーダーを行わない、AUDCAD
シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 5 656
 13 692
 2.42
 2.61
 8 306

結果が少し悪化したことを認めざるを得ません。 ただし、このパラメータを考慮してテストを再開してみましょう。

足方向のエントリー

前の足の動きの方向によるエントリーをテストすると、D1がその最良の時間枠であることが証明されました:

D1 足に続いて、AUDCAD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 3 857
 8 848
 2.29
 2.58
 5 487

しかし、結果の改善に役立ちませんでしました。 実際、悪化しました。

レンジトレード.

EAが動作するレンジを設定してテストを続けましょう。 上側の境界線の価格は 1.02603 で、下側の価格は 0.93186 です。

レンジ内のトレード, AUDCAD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 2 684
 9 692
 3.61
 3.33
 5 224

レンジでは、わずかに結果が改善されました。

残高が増えたとき、すべてのポジションをクローズ

標準セットからの直近の最適化オプション:

資本を増やす際にすべてのポジションをクローズ AUDCAD

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 利益率  取引
 AUDCAD
 2 818
 6 022
 2.14
 1.74
 5 479
最良の結果(1 000ドルの残高で決算)であっても、最初のテスト結果に近いリカバリーファクターしかありません。

代替テスト.リカバリーファクターを悪化させたパラメータを破棄し、それらを排除してテストを行いましょう。 つまり、近すぎるオーダーは出さない"を無効にし、足の移動方向にエントリーします。 また、残高を増やす際に、すべてのポジションをクローズするわけではありません。

AUDCADでの代替テスト

シンボル 
 最大ドローダウン
利益 
 リカバリーファクター
 利益率  取引
 AUDCAD
 5 124
 19 121
 3.73
 3.17
 10 301

結果は改善されましたが、ほんの少しだけです。 年間約100%の利益があります。

価格がレンジを離れる場合に何をすべきでしょうか

すべてのテストの後、結果に達しました。 ほとんど有望とは言えないが、まだ利益があります。 にもかかわらず、あまりにも欺瞞的です。

EAの収益性は、トレードレンジを制限することによって達成されました。 このようなレンジはヒストリーから取られており、価格がそこに残るかどうかはわかりません。 数回幸運があり、価格がレンジの境界線からロールバックしました。 しかし、最終的に運は尽きるでしょう。 どうするべきでしょうか。

選択肢の 1 つは、すべてのポジションをクローズすることです。 これは、良いオプションのように聞こえます。 しかし、実際には、ほとんどあるいはすべての利益を失うことを意味します。 追い打ちをかけるように、価格は翌日に反転するかもしれません。

テストによると、最良の選択肢は、価格がレンジに戻るまで待つことです。 または、価格が新しいレンジを見つけるまで待って、価格が前のものに戻る前に、その上でトレードすることができます。

これには何年もかかる場合があります。 しかし、価格は遅かれ早かれ戻ってきます。

5年以上待たない場合は、手に持っているカードを使って相場に優位に立つことを楽しもうとするだけです。

その他のEAパラメータ

これまでは、収益性を向上させることができるEAパラメータについてのみ説明しました。 各パラメータは、特定の考え方を表します。 EAの開発中にテストされたアイデアがたくさんありました。 残念ながら、ほとんどは、EAの結果をさらに悪化させただけです。 したがって、適切なコードが削除されたか、アイデアを実装するパラメータが名前の先頭に "-" でマークされています。

ここではパラメータを見てみましょう。テストに従って、値を変更すると何も良い結果はもたらされません。

リミットオーダータイプ. デフォルトでは、EAは現在の価格の上にロングオーダーを設定し、ショートオーダーは現在の価格より下に設定します。 オーダーは、買いストップと売りストップと呼ばれています。 パラメータのデフォルト値はSTOPです。

LIMITに設定すると、EAは[買いリミット]と[売りリミット」のオーダーを使用します。 言い換えれば、その行動は劇的に変化します。:価格の上に売りオーダーを設定し、その下にオーダーを買い、したがって、トレンドに対してトレードします。 また、利益をもたらすかもしれませんが、ドローダウンに比べてはるかに低くなります。

チェーンのロットを増やす. デフォルトでは、グリッド内のすべてのオーダーのボリュームは同じです。 ただし、このパラメータを使用すると、グリッド内の各新しいオーダーのボリュームが前のオーダーを超える可能性があります。 このような増加は、算術と幾何学的進行の両方で起こる可能性があります。

このテストは、得られた利益を増加させる可能性があることを示していますが、最大ドローダウンを増加させることによってのみです。. したがって、リカバリーファクターは常に固定ロットを使用する場合よりも低くなります。

トレーリングストップを使う. パラメータのグループ全体を使用すると、個別のオーダーごとにトレーリングストップを有効にできます。 残念ながら、このテストによると良い考えではありません。

結論

この記事では、グリッドの別の可能性を検討しました。 前の記事で分析したものよりも優れています。 しかし、まだ遅かれ早かれ破産するかもしれない危険なトレード戦略です。

これは、グリッドを使用して比較的良好な低リスクのEAを開発することが不可能ということでしょうか。 グリッドEAをするまた別の方法があるので、まだそのような結論には飛躍しません。

これについては、次の記事で説明します。 いつものように、クロスプラットフォームEAに焦点を当てます。 2010年から2019年までの結果を固定ロットで表示できます。

シンボル
 最大ドローダウン
利益
 リカバリーファクター
 取引
 USDCAD
 953
 7 328
 7.69
 3 388
 NZDUSD  1 404
 11 288
 8.04  2 795
 SBUX (2013-2019)
 140  1 890
 13.5  442

MetaQuotes Software Corp.によりロシア語から翻訳された
元の記事: https://www.mql5.com/ru/articles/6954

添付されたファイル |
trendmeEA.ex5 (157.19 KB)
trendmeEA.mq5 (140.84 KB)
trendmeEA.ex4 (66.98 KB)
trendmeEA.mq4 (140.84 KB)
SET_files.zip (25.38 KB)
微分とエントロピー解析によるGrokking市場の「記憶」 微分とエントロピー解析によるGrokking市場の「記憶」

分数階微分は十分に広い範囲で使用されています。例えば、機械学習アルゴリズムには通常微分された級数が入力されます。 問題は、機械学習モデルが認識できるように、利用可能な履歴に従って新しいデータを表示する必要があることです。本稿では、時系列の微分に対する独自のアプローチを検討します。本稿にはさらに、この微分された級数に基づく自己最適化取引システムの例が含まれています。

MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第8部): 注文およびポジション変更イベント MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第8部): 注文およびポジション変更イベント

前の記事では、MetaTrader 5とMetaTrader 4プラットフォーム用のプログラムの開発を単純化するための大規模なクロスプラットフォームライブラリの作成を始めました。第7部では、StopLimit注文の発動の追跡を追加し、注文とポジションを含む他のイベントを追跡するための機能を準備しました。本稿では、注文とポジションの変更イベントを追跡するためのクラスを開発します。

新しいレールへの第一歩: MQL5内のカスタムインディケーター 新しいレールへの第一歩: MQL5内のカスタムインディケーター

新しいターミナルと言語のすべての可能性と特徴をリストすることはしません。それらはあまりにも多くありすぎ、新規の特徴によっては別の記事で説明するに値します。またここにはオブジェクト指向プログラミングで書かれたコードがありません。開発者にとってさらに有利になる点として、ただ単に言及するにはあまりにも真剣なトピックです。本記事ではインディケーターとその構造・図面・タイプ・プログラミング の詳細についてMQL4と比較しながら考察します。初心者にも経験のある開発者にも本記事が有益となる事を願います。おそらく何か新しく学べることがあると思います。

新しいMetaTrader 5 とMQL5の登場 新しいMetaTrader 5 とMQL5の登場

これはMetaTrader5のただの簡単なレビューです。このような短い時間でシステムのすべての特徴を述べることはできません。2009年9月9日に試用を開始しました。これはシンボル的な日付でラッキーナンバーになると信じています。ベータ版のMetaTrader5とMQL5を手に入れて数日が経ちました。まだ全ての特徴を使ってはいませんが、すでに関心させられました。