無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
スクリプトを気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
スクリプト

OHLC Reality Check - at what stop distance does your backtest start lying? - MetaTrader 5のためのスクリプト

Petr Kostal
Petr Kostal
  • Algorithmic trading developer (MQL5 / MQL4) において  Osvc
  • チェコ
  • 580
Petr Kostal — algorithmic trading developer, Czech Republic.
I trade on live accounts myself, so I build EAs the way I'd want to run them.
What I build:
• Expert Advisors and indicators for MetaTrader 4 and 5 (MQL4 / MQL5)
| Japanese English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
ビュー:
21
評価:
(2)
パブリッシュ済み:
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

1分足OHLCデータを用いたバックテストには、すべてある暗黙の前提があります。それは、1本のバー内において、強気のバーでは価格が「始値-安値-高値-終値」の順に推移し、弱気のバーでは「始値-高値-安値-終値」の順に推移するというものです。OHLCデータには価格の推移経路が記録されていないため、何かを仮定せざるを得ないのです。実際のティックデータにはその経路が記録されています。

この仮定が重要になるのは、取引を決済するバーがストップとターゲットの両方に接触した場合のみです。その時点で、注文によって取引が利益か損失かが決まるため、テスターは推測に頼らざるを得ません。このスクリプトは、その推測が間違っている頻度を測定します。

仕組み: すべてのM1バーにおいて、 仮想のブラケット取引(バーの始値より1レベル上、1レベル下、両方が同じ距離にある)を開き、 価格がそれらのいずれかに到達するまで順次処理を進めます。終値バーが1つのレベルにしか接触しなかった場合、判断すべき事項はありません。 両方のレベルに触れた場合、スクリプトはテスターの仮定と、その1分間の実際のティック値の動きとを比較します。

結果はブラケットの幅に完全に依存するため、スクリプトは複数の距離をスキャンして曲線を出力します。XAUUSDにおいて、30日間で27,844回の仮想取引を行った結果:

  • 20ポイントのストップ— 取引の62.6%が争点となり、23.84%が 予想と逆の結果となった
  • 50ポイントのストップ— 30.1%が争点となり、8.25% が誤った結果
  • 100ポイントのストップ- 8.9%が競合、1.66% が誤り
  • 200ポイントのストップ- 1.5%が争点となり、0.18% が誤り
  • 500ポイントのストップ- 0.1%が争点となり、0.00% が誤り
  • 1000ポイントのストップ— 争点となる取引なし、誤りなし

「異議あり」とは、取引を決済したバーが両方のレベルに触れたため、注文が結果を決定したことを意味します。「誤り」とは、解決済みの全取引のうち、テスターが想定した注文がティックの動きと正反対だった割合のことです。つまり、勝ちが負けとして記録されたり、その逆のケースです。

したがって、正直な結論は「OHLCは常に嘘をつく」でも「OHLCは問題ない」でもありません。その「嘘」には閾値があり、その閾値は銘柄ごとに異なり、議論する代わりに11秒で測定することができます。

入力引数。 InpSymbol(空 = チャートシンボル)、InpDays、InpBrackets(スウィープするストップ距離、ポイント単位)、InpHorizonBars(未解決とみなされるまでのポジションの保有期間)、 InpStepBars(Nバーごとに取引を開始。処理速度の遅いマシンではこの値を大きくしてください)、およびInpWriteCSV。これは、解決に失敗したすべての取引を、エントリー時刻、決済バー、モデルの予測値、実際のティックデータと共に一覧表示するため、個々のケースを確認できます。

本ツールは履歴の読み取りのみを行います。注文を発注したり、オープンポジションに介入したりすることは一切ありません。

対象銘柄の実際のティック履歴が必要です。まず「銘柄」ウィンドウからダウンロードしてください。そうしないと、係争中の取引を判定できません。

OHLCバックテストによる取引の割合が、ストップ距離によって逆の結果となるケース ― XAUUSD、30日間

MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77063

CGoldSymbol - find the broker's gold and size the position correctly on it CGoldSymbol - find the broker's gold and size the position correctly on it

ブローカーがどのような名称で呼んでいるかにかかわらず「ゴールド」シンボルを検出し、契約仕様を推測するのではなくターミナルから読み取り、口座通貨建てのリスクを、そのブローカーに適したロットサイズに変換します。

Trade Excursion Report: MFE and MAE of every closed trade, to CSV Trade Excursion Report: MFE and MAE of every closed trade, to CSV

決済済みの取引1件につき1行のCSVを出力します。このデータには、取引明細には記載されていない以下の数値が含まれます:その取引で記録された最大の未実現利益(MFE)、耐え抜いた最大の未実現損失(MAE)、MFEのうち実際に確保できた額、取引が及んだバー数、および保有期間。 これは「Trade Excursion」インジケーターと同じ測定基準ですが、チャート上に描画するのではなくファイルに書き出されます。なぜなら、このデータから導き出される価値ある問いは、チャートだけでは答えられないものだからです。例えば、「キャプチャー比率はエントリーした時間帯によって異なるのか?」といった問いです。 早期に決済したトレードは、最も長く保有していたものなのか?月曜日のロストトレードは、金曜日のものとは異なるMAEに達するのか?CSVファイルさえあれば、ピボットテーブルを1つ作成するだけでこれらの疑問に答えられます。 出力はヘッダー行付きのセミコロン区切り形式(MQL5\Files)で、どのスプレッドシートでも開くことができます。測定上の制限:エクスカーションは選択した時間枠のバーの高値と安値に基づいて算出されるため、バー内の価格推移は不明です。「バー」列は各トレードの解像度を示しており、集計では単一バーのトレードを平均化せずに個別にカウントしています。

Adaptive Moving Average (AMA) Adaptive Moving Average (AMA)

適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。