無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
MetaTrader 5ターミナルからコードベースにアクセスしてください。
適切なコードが見つからなかったらフリーランスセクションで注文できます
エキスパートアドバイザーやインディケータを書く方法

MetaTrader 5のためのMQL5スクリプトソースコード

icon

スクリプトはMQL5プログラムを使ってMetaTrader 5の中で一度だけ実行し、その後は直ちにチャートから削除されます。機能の例には取引履歴のアップロード、レポートの作成とメールでの送付、ファイルからのデータのダウンロードと処理が含まれます。スクリプトはグラフィカルインターフェイスを作成したり、シングルタイプの取引操作(例: すべてのポジションを直ちに決済)をおこなったりするためにも使用できます。

提供されたエキスパートアドバイザーをMetaTrader 5からダウンロードし実行することができます。スクリプトのライブラリはMetaEditor開発環境から直接使用することもでき、MQL5プログラミングを学ぶことができます。

コードを投稿

MarketInfoは、MetaTrader 5用のシンプルな情報スクリプトです。このスクリプトは、現在の銘柄に関する主要データ(価格、スプレッド、ボラティリティ(ATR)、バーの終了までの残り時間、Nバー分の統計データ、トレンドの判定)を収集し、ログに出力します。

持続的なトレンドを見つけるための市場クイックスキャナー。「市場概況」に掲載されているすべての銘柄を1秒で分析し、線形回帰(R²)とADX指標を用いて、最も明確かつ力強い動きを見せている銘柄を特定します。

すべてのM1バーで仮想のブラケット取引を開き、実際のティック履歴に沿ってシミュレーションを進め、さまざまなストップ距離の範囲について、1分足OHLCモデリングが取引の結果を逆方向に予測してしまう頻度を報告します。

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

簡単なプロンプトファイルを使って、MetaTrader 5 AIアシスタントの言語、性格、メニュー、動作を自由にカスタマイズできます。

描画インジケーターが再描画されるかどうかを測定するものであり、再描画されないことを断言するものではない。 不変条件:バーが一度クローズされ、処理された後は、そのバー上に描画されたオブジェクトは一切変更されてはならない。つまり、移動、色変更、テキストの変更、消滅など、いかなる変更も許されない。 このスクリプトは、実際の履歴を持つカスタムシンボルを初期化し、テンプレートを通じてインジケーターをアタッチし、すべてのオブジェクトを記録し、バーを追加し、完全な再計算を強制し、オブジェクトごとに比較を行います。 変更と消失は別々にカウントされます。なぜなら、変更があった場合のみ、その主張が誤りであるとみなされるからです。比較対象がなかった実行結果は「INCONCLUSIVE」として報告され、「合格」とは決して報告されません。出力はCSV形式で、数値と共に公開することができます。

「Neural Loss-Pattern Auditor」は、ネイティブのMQL5で一から記述された小規模なフィードフォワード型ニューラルネットワークを、約定済み取引履歴を用いて学習させ、行動特性や市場状況の特徴量によって、どの取引が損失を被る可能性が高いかを予測できるかどうかを検証します。 このツールは、単純なベースライン、確率較正テーブル、順列による特徴量の重要度ランキング、および推奨事項付きの構成可能なA~Fの総合評価と比較して、精度の向上を報告します。 初回実行時には組み込みの合成デモデータを使用するため、設定なしで即座に出力を確認できます。入力の一つを「InpUseDemoData=false」に切り替えることで、実際の口座履歴を分析することも可能です。純粋なMQL5:外部ライブラリ、Python、およびいかなる種類のAIサービスも使用していません。

何週間もかけてそのシグナルを基にEAを構築する前に、そのエントリーシグナルが実際に取引コストを上回るかどうかを測定します。 コストを差し引いた純利益、重複しないサンプルに基づく信頼性の高いt統計量、およびランダムな対照群を報告します。注文は一切行いません。

注文を黙って拒否する、目に見えない契約制限を表示します。ストップレベル、フリーズレベル、最小・ステップ・最大ロット、ティックサイズと値、スプレッドタイプ、執行モード、スワップ、および利用可能証拠金に対する最小ロットに必要な証拠金です。

現在のステータス、次の遷移、複数銘柄のスコープ、CSVエクスポート機能を備えた、読み取り専用のブローカーネイティブ取引セッションインスペクター。

ブローカーの出来高、価格、ストップ注文、フリーズ、スプレッド、および約定の制約を報告する、読み取り専用のMT5スクリプト。

MT5 EAのエントリー状態ロジックに対する決定論的な合成受け入れチェック。市場、口座、注文へのアクセスは一切行わない。

複数のEA(またはそれらと並行して行う手動取引)を実行している口座向けの、読み取り専用の監査スクリプトです。このスクリプトは、決済済み取引履歴をマジックナンバーごとにグループ化し、マジックナンバーごとに1行ずつ出力します: 決済済みの往復取引、取引の両サイドからのスワップおよび手数料を含む純損益、勝率、プロフィットファクター、平均勝額・損失額、現在オープン中のポジションおよび未約定注文、取引日および銘柄 — これらを純損益順に並べ替え、スプレッドシート用のCSVエクスポート機能も備えています。

複数のエキスパートアドバイザーを実行している口座向けの読み取り専用分析機能です。この機能では、決済済みの取引をマジックナンバーごとにグループ化し、これらのシステムを併用することで実際にどれだけの利益が得られたかを測定します。具体的には、単独運用時と併用時のドローダウンの比較、チャート上にヒートマップとして表示されたペアごとの相関行列、およびポートフォリオの期間別リターンをモンテカルロ法で再配置した結果などが確認できます。

このスクリプトは、M1バーの「spread」フィールドからご利用のブローカーの実際のスプレッドを収集し、中央値、 90パーセンタイルおよび99パーセンタイルを、価格単位、ポイント、ATRの割合で表示し、さらに1時間ごとの平均スプレッドと最大スプレッドをCSVファイルとして出力します。 これは、頭の中で想定した「典型的な」スプレッドではなく、自身の口座における実際のコストに基づいて戦略をテストするために必要です。

決済済みの取引履歴(CSVファイル、または付属のRuinsExport.mq5スクリプトによって現在の口座の取引履歴から自動的に生成されたもの)を読み取り、4つの独立したリスク指標を報告します: 損失後の取引量の増加、平均価格が不利になる同方向のエクスポージャーの重複、勝ちと負けにおけるペイオフの非対称性、および1取引あたりの指定リスクに基づく古典的な破綻リスクの推定値。 これら4つのスコアは、平易な言葉で書かれた推奨事項とともに、A~Fの単一の評価に統合されます。CSVファイルが見つからない場合、スクリプトは再現可能なデモ用取引記録を自動的に生成するため、初回実行時からレポートを確認することができます。

戦略の優位性が執行コストに対してどれほど堅牢であるかを測定する、純粋なMQL5スクリプトです。このスクリプトは、決済済み取引の「日付、利益、取引量」を記載したCSVファイルを読み込み、各取引のコストを「固定部分」と「ロット単位の費用」の合計としてモデル化します。 本スクリプトは、取引ごとの損益分岐コスト、クッション(想定される現実的なコストの何倍で純利益がゼロになるかを示す倍率)、想定コストで再評価した純利益と利益率、コストによって勝ちトレードが負けトレードに転じる割合、および推奨事項付きのA+~Fの複合コスト耐性スコアを出力します。 ファイルが存在しない場合は、再現可能なサンプルを生成して分析するため、初回実行時にも出力を確認できます。外部ライブラリ、Python、AIは一切使用していません。

リスク(資産の割合または固定金額)とストップロス距離(ポイントまたは価格水準)に基づいて、計画している取引に適したロットサイズを算出します。銘柄の契約仕様(ティックサイズとティック価値、取引量の最小・最大・ステップ)を反映し、必要な証拠金を推定します。

設定可能な期間の決済済みポジションをCSVファイルにエクスポートし、ExcelやGoogleスプレッドシートで取引明細の分析に活用できます。エクスポートされる項目には、建玉開始・決済日時および価格(部分約定分については出来高加重平均)、出来高、ポイント換算の損益、手数料、スワップ、純利益、および取引期間が含まれます。

単なる「最大ドローダウン」という数値だけでなく、口座のドローダウンの構造を分析するネイティブのMQL5スクリプトです。日次のエクイティカーブ(Date,DailyPnL CSV)を読み込み、アンダーウォーターカーブを再構築し、それを個々のドローダウンエピソードに分割して、その深さ、継続期間、回復時間を算出します。 その後、「ウルサー指数」、「ペイン指数」、「回復係数」、およびアンダーウォーター状態の継続時間を算出し、これらを組み合わせて単一のレジリエンススコア(A+~F)と推奨事項を生成し、「エキスパート」タブに表示します。外部ライブラリは不要です。ファイルが見つからない場合はサンプルカーブを生成するため、インストール後すぐに実行可能です。

戦略の利益がどれほど集中しているか、つまり優位性が広範囲に及んでいるのか、それとも少数の幸運な取引に依存しているのかを測定する、ネイティブのMQL5スクリプトです。このスクリプトは、取引ごとのCSVファイル(日付、利益)を読み込み、最大規模の取引による純利益の割合、 勝ちトレードのジニ係数、集中度プロファイル、上位数件のトレードを除外して純利益と利益率を再計算するサバイバルテスト、および設定可能な一貫性限界値に対する最大単日利益を算出し、これらを「集中度・一貫性スコア」(A+~F)として統合し、推奨事項を提示します。 ファイルが見つからない場合はサンプルセットを生成するため、インストール後すぐに実行可能です。外部ライブラリ、Python、AIは一切不要です。ヘルパーのExportTrades.mq5が、取引履歴からファイルを書き出します。

XAUUSD/GOLDのシンボル設定、スプレッド、ティック値、契約サイズ、取引数量の単位、ストップ/フリーズレベル、スワップ、および口座コンテキストをログおよびオプションでCSVファイルに記録するオープンソースのMT5スクリプトです。

マーケットウォッチ内のすべての銘柄について、SYMBOL_TRADE_TICK_VALUE、SYMBOL_TRADE_TICK_VALUE_LOSS、およびSYMBOL_TRADE_TICK_VALUE_PROFITを比較する診断スクリプトです。 各銘柄を4つのカテゴリ(ALL_EQUAL、TV_MATCHES_PROFIT、TV_MATCHES_LOSS、ALL_DIFFER)のいずれかに分類し、集計された要約と解釈のヒントを提供します。 EAでリスクベースのロットサイズ設定を実装する際、どのティック値プロパティを基準にすべきかを確認するのに役立ちます。シンボルごとの詳細レポートを、MQL5/Files内のCSVファイルとしてエクスポートします。

口座の通貨建てで設定された目標損失額(例:1ポジションあたり50ドル)に基づき、すべてのオープンポジションにストップロスを設定するスクリプトです。あらゆる入金額通貨およびFX銘柄に対応しています。ブローカーのストップレベルやフリーズレベルを検証します。通貨換算は自動的に行われます。

トリプルバリア・ラベリング・パイプラインでは、min_retの閾値として、任意の定数(0.5~1.0%)や従来のスプレッドの仮定が頻繁に使用されます。実際の往復取引コストよりも低い閾値を設定すると、パイプラインはコストに起因するノイズを取引可能なシグナルとしてラベル付けしてしまいます。 その結果、ラベル付けされたデータセットはエッジを体系的に過大評価することになり、それらのラベルに基づいて学習されたモデルは、真の市場構造ではなく、ラベル付けスキームに起因する人工的な現象に過学習してしまう。 TransactionCostCollector.mq5は、この問題のデータ収集段階を解決するスタンドアロンスクリプトである。

利益確定のポジションを決済する

MQL5用NeuroPro動詞化コンバーター

このスクリプトは、開発者がMQL5を使用してプログラムでファイルを操作する方法の実践的な例として役立ちます。このスクリプトの主な目的の1つは、効果的なプロジェクト・ファイル編成を実証することです。これは、大規模なシステムに取り組む開発者や、ポータブルで自己完結型のプロジェクトを作成することを目指す開発者にとって不可欠です。このコンセプトは、より高度な開発ワークフローをサポートするために、さらに拡張して改良することができます。

バイナンス相場のリアルタイム表示

これは、非同期と同期の全閉を比較する簡単なプログラムです。 サンプルプログラムですので、条件を追加するなど、ご自由に改変してテストしてください。

この関数は、タイムフレームの短縮名を教えてくれる。 例:"PERIOD_M1 "の代わりに "M1"

このスクリプトはONNXモデルの構造を検査するのに便利で、入力と出力、それらの名前、およびそれらのプロパティに関する洞察を提供する。特に、機械学習アプリケーションで使用されるONNXモデルの特徴を理解し、デバッグするのに役立つ。

このスクリプトは、すべてのMQL5ビルトイン指標バッファを収集し、分析用にCSVファイルに保存します。

これは、履歴の特定の時間におけるすべての未決済取引とそのPnLを表示するスクリプトです。

この関数は、取引開始のメインロジックを実行します。 シンボル情報とユーザーによって提供されたパラメータに基づいて、開始価格、利食いレベル、損切りレベルを計算します。 シンボル、数量、注文タイプ、偏差、コメント、マジックナンバーなどの必要な情報を含む取引要求(MqlTradeRequest)を準備します。 OrderSend 関数を呼び出して操作要求を送信し、結果を取得します。 SetTypeFillingBySymbol 関数: シンボルのフィリングポリシーに基づいて、注文のフィリングタイプ(Fill または Kill、Immediate または Cancel、Return)を決定します。 GetMinTradeLevel 関数: フリーズレベルとシンボルのストップレベルに基づいて、最小操作レベルを計算します。 最小レベルが一定の範囲内に収まるように調整し、結果を返します。

Sec-WebSocket-Keyジェネレーター

このスクリーナーは、割引価格で取引されている資産を見つけるプロセスを簡素化するために作成されました。選択された全商品のデータ・ロード・プロセスのため、初期使用には若干時間がかかる場合があります。このツールは、利用可能なすべてのブローカー資産をスキャンすることも、特定の資産クラスに限定することもできます。

1つの取引のストップロスを建値に合わせて手動で調整するのは比較的簡単な作業ですが、多数のポジションを個別に管理するのは面倒で時間のかかる作業です。MT4/MT5用のTitik Impas Breakevenスクリプトは、このプロセスを合理化し、複数のポジションを扱うトレーダーに効率性と利便性を提供します。

包括的な取引統計をCSVファイルにエクスポート。

この関数は取引開始のメインロジックを実行します。ユーザーが提供したシンボル情報とパラメータに基づいて、始値、利益確定レベル、ストップロスを計算します。シンボル、数量、注文タイプ、スリッページ、コメント、マジックナンバーなどの必要な情報を含む取引リクエスト(MqlTradeRequest)を準備します。OrderSend 関数を呼び出して取引リクエストを送信し、結果を取得します。SetTypeFillingBySymbol 関数: シンボルの成行ポリシーに従って、注文の成行タイプ(Fill または Cancel、Immediate または Cancel または Return)を決定します。GetMinTradeLevel 関数: シンボルのフリーズレベルとストップレベルに基づいて最小取引レベルを計算します。最小レベルが一定の範囲内に収まるように調整し、結果を返します。

1234567