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

EdgeMeter - does your entry signal beat the spread? - MetaTrader 5のためのスクリプト

ビュー:
14
評価:
(1)
パブリッシュ済み:
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動


EdgeMeterは、あらゆるエントリーシグナルについて、ある1つの疑問に答えます。


「取引コストを差し引いた後、このシグナルは利益を生むか?」

注文を発注することはありません。過去のデータを分析し、すべての約定した
バーごとにシグナルを評価し、結果を表示します。


なぜこれを作ったのか

私は1か月かけて、XAUUSDのM1チャートでグリッドEAを構築しました。ストップロスを固定し、
変動する損失上限、反転時の決済、バスケットの最大保持期間を設定しました。しかし、損失ばかりが積み重なっていました。

最終的にエントリーシグナルだけを単独で検証してみると、答えが出るまで30
秒で明らかになった:

シグナル後の平均値動き(15分):+0.04
1往復あたりのスプレッドコスト : 0.26

どんなエグジットロジックでもこれを挽回することはできない。資金はエントリー時点で失われており、エグジットに費やした1時間ごとに
出口の検討に費やした時間はすべて無駄だった。このスクリプトは、まさにそれを防ぐために存在する。


報告内容

指定した各保有期間について:

- グロス・エッジ:シグナル発生後の平均的な有利な値動き
- コストを差し引いた純利益(1ポジションずつシミュレーション)
- 重複しない取引に基づいて算出されたt統計量
- 利益が出た月の割合
- 最大ドローダウン

次に、ランダム対照群に対して同様の測定を行う:同じ発動頻度、
コイン投げで方向を決定。ランダムなエントリーは、取引コスト分だけ正確に損失を出し、
それ以上でも以下でもない。これにより2つのことが確認できる。シミュレータの正確性が証明され、
ノイズフロアが得られる。もしシグナルがそれらの
行を明確に上回らない場合、その信号には情報が含まれていないことになります。


オーバーラップの罠

これは私を陥れた部分であり、ほとんどの人が陥る罠です。

連続する信号は、前方ウィンドウの大部分を共有しています。60バーの期間を
を各バーごとにサンプリングすると、59通りの重なり方を持つウィンドウが得られます。これらを
独立したものとして扱うと、t統計量は期間の平方根分程度まで膨らんでしまいます。

私のシグナルでも、その方法で t = 3.32 という結果が出ましたが、一見説得力があるように見えます。しかし、真に
独立したサンプルではt = 1.20となり、ノイズと見分けがつかない。EdgeMeterは
は一度に1つのポジションをシミュレートするため、報告されるトレードは重複せず、
t統計量は正確な値となります。


合格基準

このスクリプトは3つの基準をチェックし、これら3つすべてが満たされる必要があります:

[1] コスト控除後の1取引あたりの純利益 > 0
[2] |t| > 2
[3] 4ヶ月のうち、少なくとも3ヶ月が黒字であること

数値を確認する前に、ご自身の基準を決めておいてください。事後に決めるのは、
、損失を出すシステムが実取引口座で運用される原因となります。


独自のシグナルをテストする方法

ファイルを開き、USER SECTION内の2つの関数を編集してください。それ以外は
変更する必要はありません。

bool UserInit() - インジケーターのハンドルを作成し、
buffers をロードします

int UserSignal(int i) - クローズしたバー i を評価し
買いの場合は +1、売りの場合は -1、見送りの場合は 0 を返す

すべての配列のインデックスは 0 = 最も古いバー です。これは通常の
時系列のインデックス順とは逆ですが、これは意図的な仕様です。これにより、戻り値は単に
インデックス + ホライズンとなり、これにより一連の符号誤差が排除される。

エントリーは、次のバーである Open(i+1) でシミュレートされます。UserSignal 内でバー i+1 以降を読み取らないでください
— これは先読みバイアスであり、その結果、無価値な
シグナルを、あたかも優れたもののように見せかけてしまいます。

デフォルトの UserSignal は、2 つのタイムフレームを用いた移動平均のクロスオーバーであり、
実用例として残されています。これを置き換えてください。


コストの設定

InpSpread、InpCommission、InpSlippage はポイントではなく PRICE 単位で指定され、
これらはスクリプトにおいて最も重要な入力値です。これらの値は、ブローカーが公表している数値ではなく、ご自身の
口座から取得してください。ブローカーが公表している数値からは取得しないでください。

実取引またはデモ取引の約定ログがある場合は、そこで測定された
値を使用してください。もしない場合は、チャート上で確認できる典型的なスプレッドに
スリッページをゼロと仮定するのではなく、許容範囲分を加算してください。デモサーバーでは
ゼロに近いスリッページを報告しますが、これはデモサーバーの特性であり、市場そのものの特性ではありません。


要件

実行する前に十分な履歴データを読み込んでおいてください:対象銘柄のチャートを開き、
時間枠でチャートを開き、一番左までスクロールしてください。履歴が
スクリプトが通知します。シグナルが30未満の場合、その結果は単なる逸話に過ぎず、証拠とはなりません。


使用および改変は自由です。

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

Adaptive Volume Profile Node Tracker Adaptive Volume Profile Node Tracker

設定可能なルックバック期間にわたって、変動性に適応するローリング式の出来高プロファイルを作成し、コントロールポイント(POC)、バリューエリアの高値・安値、および統計的に有意な高値・安値の出来高ノード(HVN/LVN)をチャート上に直接プロットします。

Multi-Symbol Correlation Divergence Meter Multi-Symbol Correlation Divergence Meter

現在のチャート銘柄と選択した参照銘柄との間のローリング相関を追跡し、価格スプレッドが統計的に拡大している状態で両者の相関が切れた瞬間を検知します。

Dynamic Session Range Sweep Detector with Liquidity Zone Marking Dynamic Session Range Sweep Detector with Liquidity Zone Marking

アジア、ロンドン、ニューヨークの各セッションの値幅を追跡し、各セッションの終了時にその範囲を固定します。また、真の流動性スイープ(固定された高値または安値を突き抜け、その範囲内に戻って引けたローソク足)を、矢印シグナルと陰影付きの反応ゾーンで示します。リペイントせず、あらゆる銘柄や時間足で動作します。

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

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