私たちのファンページに参加してください
- 発行者:
-
Mykyta Samoiliuk
I make indicators and Expert Advisors for MetaTrader 5 and write the tools around them in Python. Everything I publish comes with a way to check that it works, so you do not have to take my word for it. I convert TradingView indicators to MQL5 so they show the same values as the original, and I - ビュー:
- 20
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
これは、SuperTrendポートのエキスパートアドバイザー(EA)部分です。このEAが取引に用いるインジケーターは、「SuperTrend TV」として別途公開されており、その目的はTradingViewの機能をそのまま再現することでした。 ここでは、戦略そのものを意図的にシンプルにしています。ラインが上向きに反転したら買い、下向きに反転したら売るというものです。というのも、インジケーターをEAに組み込む際の興味深い部分は、決して戦略そのものではないからです。
問題となるのはタイミングです。 形成中のバーでインジケーターを読み取るEAは、数秒間だけ存在してバーが閉じる前に消えてしまうシグナルを拾ってしまいます。チャート上ではすべてが説得力があり、テスターレポートも楽観的な結果を示しますが、実際に発生するトレードは誰も目にしていないものになってしまいます。このEAはクローズ済みのバーのみを読み取り、それを証明する監査レポートが同梱されています。

XAUUSDのM15チャートにおけるSuperTrend TV。このEAはラインが反転するたびにエントリーし、一度に1つのポジションを保持します
動作概要
iCustomを通じてSuperTrend TVの方向バッファを読み取り、バーが形成されるたびに1回動作し、1つのポジションのみを維持します。 すべての注文にはマジックナンバーが付与されるため、EAが手動で開設したポジションには一切干渉しません。ストップはSuperTrendのラインそのものに設定され、ポイント単位のバッファをオプションで指定可能です。ラインが反対方向に反転した時点で、ポジションは決済され、逆方向のポジションが建てられます。
あるケースについて特筆すべき点があります。これは、単純な実装ではサーバーが注文を拒否せざるを得ない状況が生じるためです。ラインは形成されたバーの終値に基づいて計算されますが、エントリーは次に利用可能な価格で行われるため、注文が送信される時点で価格はすでにラインを越えてしまっている可能性があります。 その結果、ストップがエントリーとは反対側に位置することになります。ストップを無理に調整すると、ストップアウトまであと1ポイントという位置で取引が開始されてしまうため、代わりにシグナルは破棄され、ログに記録されます。EURUSDの1時間足チャートで8ヶ月間にわたり、117回のシグナルのうち1回、この現象が発生しました。
このインジケーターはリソースとしてエキスパートにコンパイルされるため、一度構築されれば単独で動作し、ターミナル上にインジケーターを別途表示しておく必要はありません。ただし、リソースはビルド時に.ex5ファイルから読み込まれるため、インジケーターを先にコンパイルしておく必要があります。
取引の検証方法
EAは、トレンド転換時だけでなく、クローズしたすべてのバーについてインジケーターの値をログに書き込みます。その後、Pythonスクリプトがそのログを読み取り、取引をデータ系列と照合します。したがって、この主張は「チャート上でEAが正しく見える」ということではなく、「すべてのトレンド転換において、正しい方向の注文が正確に1件生成されたこと」、および「トレンド転換を伴わない注文は一切発生しなかったこと」を保証するものです。
| バー数: 6616 (2026.07.31 .. 2026.09.03) フリップ数: 185 エントリー数: 185 シグナルあり・取引なし : 0 シグナルなし・取引あり : 0 1本のバーで2回の取引 : 0 逆サイド : 0 結果: フリップ1回につき1回の取引 |
ログがすべてのバーを記録する理由
監査の最初のバージョンでは、ライブターミナルからエクスポートされたインジケーターファイルと取引を照合したところ、シグナルを伴わない取引が93件報告されました。EA自体に問題はありませんでした。ライブターミナルには、テスターが1分足データから生成したM5バーのうち3,500本が欠落していたため、シグナルの半分は照合すべきバーが存在しなかったのです。
異なるデータに基づいて計算された2つのものを比較することは、正常に動作しているコードについてバグレポートを作成する最も簡単な方法であり、意図して探している場合でもこのような事態が発生し得ることを知っておく価値があります。実行中にデータ系列を記録することで、この問題は完全に解消されます。 監査では、依然として外部からのエクスポートデータをオプションのセカンドオピニオンとして受け入れており、両ソースが共有するバーについては、方向性が毎回一致しています。
入力
- ATRの期間と係数。これらはインジケーターにそのまま渡されます
- ロットサイズ:固定
- ストップラインを超えた追加ポイント数。デフォルトはゼロ
- マジックナンバーとスリッページ
- 決定ログのオン/オフ、およびそのファイル名
口座への影響
公開されているエキスパートに関する最も明らかな疑問は、それが利益を生むかどうかという点です。そこで、主観的な意見ではなく、実際の数値をご紹介します。両方の実行は1万から開始し、デフォルトの設定と固定の0.1ロットを使用しており、実際の履歴に基づくストラテジーテスターから取得したものです。 数値はポジション数を表しており、レポートの「Total Trades」行と一致します。一方、「Total Deals」行は、すべてのエントリーとエグジットを個別にカウントしているため、おおよそ2倍の数値が表示されます。
| 実行 | 期間 | 取引総数 | 最終残高 |
|---|---|---|---|
| XAUUSD M5 | 1ヶ月 | 185 | 10 662 |
| EURUSD H1 | 8ヶ月 | 116 | 9 736 |
この月は金相場がトレンドを形成しており、この結果はシステムというよりはトレンドに起因するものです。 ユーロでの損失は、反転そのもののコストに近い。これは、エキスパートが常に市場に参入しており、トレンドラインが反転するたびにスプレッドを2回支払うためである。フィルターなしの単純なトレンド反転では、その後に残る利益はごくわずかであり、これは正常な結果であり、ポートフォリオの欠陥ではない。
これが率直な実情であり、まさにこのため、本稿は戦略そのものではなく、シグナルの取り扱いについて論じているのです。ここで確認できるのは、ポートフォリオがオリジナルと一致しており、取引がシグナルと一致しているという点です。利益は保証されておらず、それを期待する人は、上記の表を生み出したのと同じ計算によって失望することになるでしょう。
ここに含まれていないもの
資金管理に関する記述はありません。ロットは固定されており、リスク比率、1日の損失上限、ドローダウンによる取引停止も設定されていません。なぜなら、本資料はシグナルの取り扱いについて扱っており、それらを追加すると、ここで示されている内容が曖昧になってしまうからです。これを起点として利用される方は、実取引口座で運用を始める前に、これらの要素を追加する必要があります。
もう一つ、明確に述べておくべきことがあります。「マジックナンバー」は、ヘッジ口座においてEAが手動取引と競合するのを防ぐ役割を果たします。 ネッティング口座では、ターミナルは設計上、1つの銘柄に関するすべてのポジションを1つのポジションに統合します。そのため、EAが稼働中に同じ銘柄を手動で取引すると、ポジションの分離ができなくなります。これは本コードの特性ではなく、ネッティングの特性によるものです。
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/77009
GridCapitalCalculator
グリッドトレードを行っている人なら誰もがこう自問するでしょう。「自分の口座残高は十分か?」。一般的な答え――つまり、最後のグリッドレベルでの損失額――は、間違った数値です。口座を破綻させるのは、ポジションがまだ保有されたままで、一見回復可能に見える状態であっても、証拠金水準がブローカーのストップアウト水準に達してしまったときなのです。 このEAは、実際の数値を算出し、その銘柄のM1チャート履歴において、それほどの規模の値動きがこれまでに何回発生したかをカウントします。 このEAが修正する3つの誤りは、いずれも「安心できる方向」に偏ったものです:N本のレッグからなるチェーンは、ステップx Nではなく、ステップx N(N-1)/2で浮動します(10本のレッグの場合、損失ステップは10ではなく45となります); 未決済ポジションは、浮動状態の間も証拠金を拘束します;そしてストップアウトはパーセンテージであり、ゼロではありません――50%の場合、エクイティの半分を失えば十分です。 「86ドルの余裕が必要」というのは抽象的な表現です。「「その規模の値動きが100日間で71回、1.4回に1回の頻度で発生した」というのは、意思決定です。 InpEquityを、まだ持っていない金額に設定して、その設定で実際にどれだけの余裕が必要になるかを確認してください。 厳密に読み取り専用です:ポジションの開設、決済、変更は一切行いません。
AI Prompt Writer - Simple AI Assistant Customization
簡単なプロンプトファイルを使って、MetaTrader 5 AIアシスタントの言語、性格、メニュー、動作を自由にカスタマイズできます。
Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed
チャートに追加し、任意のカスタムインジケーターの名前を入力するだけで、そのインジケーター独自のバッファーに基づいて、ポップアップ、サウンド、スマートフォンへのプッシュ通知、またはメールでアラートを受け取ることができます。iCustomを通じてインジケーターを読み込むため、ソースコードは必要ありません。ダウンロードしたコンパイル済みの.ex5ファイルがあれば十分です。 また、より高い時間足からそのインジケーターを読み取ることも可能で、クローズしたバーを再チェックして、インジケーターがリペイントしているのか、単に遅延しているのかを判断します。 このツールは「EXPLORE」モードで起動し、そのインジケーターが持つすべてのバッファと、各バッファの内容を一覧表示します。なぜなら、「どのバッファにシグナルが含まれているのか」という疑問こそが、多くのユーザーがiCustomの利用を諦めてしまう原因となっているからです。
Accelerator Oscillator (AC)
アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。