MQL5言語のプログラミング例に関する記事

icon

MQL5言語でMetaTraderプラットフォームのインジケータと自動売買ロボットを作成する方法を示すコード例を含む膨大な記事のコレクションにアクセスします。ソースコードは記事に添付されているので、MetaEditorで開いて実行して、アプリがどのように機能するかを確認できます。

これらの記事は自動取引初心者にも、プログラム経験があるプロのトレーダーにも役に立つでしょう。それらは単に例を特徴とするだけではなく、新しいアイデアも含んでいます。

新しい記事を追加
最新 | ベスト
preview
学習中にニューロンを活性化する関数:高速収束の鍵は?

学習中にニューロンを活性化する関数:高速収束の鍵は?

本記事では、ニューラルネットワークの学習における異なる活性化関数と最適化アルゴリズムの相互作用に関する研究を紹介します。特に、古典的なADAMとその集団版であるADAMmを比較し、振動するACONやSnake関数を含む幅広い活性化関数での動作を検証します。最小構成のMLPアーキテクチャ(1-1-1)と単一の学習例を用いることで、活性化関数が最適化に与える影響を他の要因から切り離して観察します。本記事では、活性化関数の境界を利用したネットワーク重みの管理と重み反射機構を提案し、学習における飽和や停滞の問題を回避できることを示します。
preview
市場シミュレーション(第10回):ソケット(IV)

市場シミュレーション(第10回):ソケット(IV)

本記事では、MetaTrader 5を管理するためにExcelを活用する方法を、興味深い形で解説していきます。そのために、組み込みVBAを使わずに済むよう、Excelアドインを使用します。アドインが何を意味するのか分からない場合、本記事でExcelで直接Pythonをプログラミングする方法を学ぶことができます。
preview
MQL5 MVCパラダイムのテーブルのビューコンポーネント:基本グラフィック要素

MQL5 MVCパラダイムのテーブルのビューコンポーネント:基本グラフィック要素

本記事では、MQL5におけるMVC (Model-View-Controller)パラダイムでのテーブル実装の一環として、ビューコンポーネント向けの基本的なグラフィック要素を開発するプロセスを扱います。本記事はビューコンポーネントに関する最初の記事であり、MetaTrader 5クライアントターミナル向けテーブル作成に関する連載の第3回目です。
preview
取引におけるニューラルネットワーク:シャープネス低減によるTransformerの効率向上(最終回)

取引におけるニューラルネットワーク:シャープネス低減によるTransformerの効率向上(最終回)

SAMformerは、長期の時系列予測におけるTransformerモデルの主要な欠点、すなわち学習の複雑さや小規模データセットでの汎化性能の低さに対して解決策を提供します。その浅いアーキテクチャとシャープネス認識型最適化により、不適切な局所解に陥ることを防ぎます。本記事では、MQL5を用いたアプローチの実装を続け、実際的な価値を評価していきます。
preview
初心者からエキスパートへ:イントラデイ戦略の自動化

初心者からエキスパートへ:イントラデイ戦略の自動化

EMA-50リテストの考え方を、日中取引向けの動作ベースのエキスパートアドバイザー(EA)へ変換します。この研究では、トレンドバイアス、EMAとの相互作用(EMAを貫き、所定の側で引ける動き)、反応の確認、オプションのフィルタを体系化し、それらをモジュール化された関数と安全なリソース管理を意識したハンドル運用を使用してMQL5で実装します。ストラテジーテスターでのビジュアルテストにより、シグナルの正確性を確認します。その結果、裁量判断による反発手法をコード化するための明確なテンプレートが完成します。
preview
初級から中級まで:構造体(V)

初級から中級まで:構造体(V)

本記事では、構造体をどのようにオーバーロード(拡張)するかについて探っていきます。特に初めて目にする方にとっては、最初は理解するのがかなり難しいかもしれません。より複雑で高度なトピックに踏み込む前に、これらの概念をしっかりと理解しておくことが非常に重要です。
preview
市場シミュレーション(第8回):ソケット(II)

市場シミュレーション(第8回):ソケット(II)

ソケットを使って何か実用的なものを作ってみましょう。今回の記事では、ミニチャットの作成を始めます。一緒にどのようにおこなうかを見ていきましょう。とても面白い内容になるでしょう。ここで提供するコードは教育目的のみの使用を想定しています。商用目的や既製のアプリケーションでの使用には適していません。ソケット上で送信されるデータは安全に保護されず、内容が第三者からアクセス可能になる可能性があるためです。
preview
リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

本記事では、これまで開発したリスク管理システムを実装し、さらに別記事で解説したOrder Blocksインジケーターを追加します。加えて、バックテストを実行し、リスク管理システムの有無による結果の違いを比較することで、動的リスク管理の影響を評価します。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(X) - ニュース取引のための多銘柄チャート表示

初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(X) - ニュース取引のための多銘柄チャート表示

本日は、チャートオブジェクトを用いたマルチチャート表示システムを開発します。本システムの目的は、MQL5アルゴリズムを活用して、重要なニュース発表時などの高ボラティリティ期間におけるトレーダーの反応時間を短縮し、ニュース取引を支援することです。複数の主要通貨ペアを、統合的に監視できる、オールインワンのニュース取引環境を提供します。News Headline EAの開発は継続的に進化しており、完全自動システムを使用するトレーダーはもちろん、アルゴリズム補助による手動取引をおこなうトレーダーにとっても実用的な機能が追加されています。さらに知識や洞察、実践的なアイデアを深めたい方は、ぜひ本ディスカッションに参加して詳細をご覧ください。
preview
MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続

MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続

本記事では、MQL5標準ライブラリを用いてエキスパートアドバイザー(EA)を効率的に構築するために、クラス構造をどのように読み解くべきかを整理します。標準ライブラリは高い拡張性と機能性を備えていますが、その全体像が見えにくく、体系的な指針がないまま複雑なツールキットを渡されたように感じることも少なくありません。そこで本記事では、実際の開発現場でクラスを確実に連携させるための、簡潔かつ再現性の高い統合手順を紹介します。
preview
古典的な戦略を再構築する(第17回):テクニカル指標のモデリング

古典的な戦略を再構築する(第17回):テクニカル指標のモデリング

金融における古典的機械学習手法によって課されている「ガラスの天井」をいかに打ち破るかに焦点を当てます。統計モデルから引き出せる価値に対する最大の制約は、モデルそのもの、すなわちデータやアルゴリズムの複雑さではなく、それらを適用する方法論にあるようです。言い換えれば、真のボトルネックはモデルの内在的能力ではなく、私たちがそれをどのように運用しているかにあるのかもしれません。
preview
市場シミュレーション(第4回):C_Ordersクラスの作成(I)

市場シミュレーション(第4回):C_Ordersクラスの作成(I)

本記事では、取引サーバーに注文を送信できるようにするためのC_Ordersクラスの作成を開始します。これは少しずつ進めていきますが、目的は、メッセージングシステムを通じてこれがどのようにおこなわれるのかを詳細に説明することです。
preview
市場シミュレーション(第5回):C_Ordersクラスの作成(II)

市場シミュレーション(第5回):C_Ordersクラスの作成(II)

本記事では、Chart Tradeとエキスパートアドバイザー(EA)が連携して、ユーザーが保有しているすべてのポジションを決済する要求をどのように処理するのかを解説します。一見すると単純な処理に思えるかもしれませんが、実際には注意すべきいくつかの複雑な点があります。
preview
初級から中級まで:定義(II)

初級から中級まで:定義(II)

本記事では、前回に引き続き#defineディレクティブについて理解を深めていきますが、今回はその第2の使用形態、すなわちマクロの作成に焦点を当てます。このテーマはやや複雑であるため、これまで学習を進めてきたアプリケーションを題材として取り上げながら説明していきます。この記事も楽しんでいただけたら幸いです。
preview
初級から中級まで:構造体(VI)

初級から中級まで:構造体(VI)

本記事では、共通の構造化されたコード基盤をどのように実装していくかについて解説します。目的は、プログラミングの作業負担を軽減し、使用しているプログラミング言語(ここではMQL5)そのものが持つ潜在能力を最大限に活用することです。
preview
初級から中級まで:インジケーター(IV)

初級から中級まで:インジケーター(IV)

本記事では、ローソク足に色を付ける実践的なアプローチを簡単に作成および実装する方法を解説します。このコンセプトは、トレーダーから非常に高く評価されています。実装する際には、バーやローソク足が元の見た目を保持し、ローソク足ごとの視認性を妨げないよう注意する必要があります。
preview
データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

MQL5においてSQLiteデータをORMレイヤーを通して管理する方法を体系的に紹介します。エンティティモデリングとデータベースアクセスのためのコアクラス、フルエントなCRUD API、OnGet/OnSetによるリフレクション的フック、そしてモデルを簡単に定義するためのマクロなどを取り上げます。実用的なコード例として、テーブル作成、フィールドのバインド、データの挿入、更新、取得、削除を示します。これにより開発者は、SQLを繰り返し記述することなく、再利用可能で型安全なコンポーネントを利用できるようになります。
preview
古典的な戦略を再構築する(第20回):現代のストキャスティクス

古典的な戦略を再構築する(第20回):現代のストキャスティクス

本記事では、古典的なテクニカル指標であるストキャスティクスを、従来の平均回帰ツールとしての使い方にとどまらず、どのように再解釈および再活用できるかを解説します。異なる分析視点からこの指標を捉え直すことで、慣れ親しんだ手法が新たな価値を生み出し、トレンドフォロー型の解釈を含む代替的な売買ルールの構築にも応用できることを示します。最終的に、MetaTrader 5ターミナルに搭載されているあらゆるテクニカル指標には未開拓の可能性が潜んでおり、試行錯誤を慎重に重ねることで、従来の見方では気づきにくい有意義な解釈を発見できることを示します。
preview
MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

本記事では、MQL5言語を用いた自動売買戦略における建値(損益分岐点)機能の実装について解説します。まず、建値モードとは何か、その仕組みや実装パターンについて簡単に説明します。 その後、前回のリスク管理に関する記事で作成したOrder Blocksエキスパートアドバイザーに、この機能を統合していきます。さらに、その有効性を検証するため、同一条件下で2種類のバックテストを実施します。1つはブレイクイーブン機能を有効化した場合、もう1つは無効化した場合です。
preview
MetaTrader 5とMQL5経済指標カレンダー:ニュースを再現性のあるトレードシステムに変える方法

MetaTrader 5とMQL5経済指標カレンダー:ニュースを再現性のあるトレードシステムに変える方法

MetaTrader 5に組み込まれている経済指標カレンダーを利用したニューストレードの体系的アプローチを紹介します。対象となる内容には、データ構造、API関数、時間同期ルール、イベントフィルタリングが含まれます。また、サーバーへ過度な負荷をかけることなく履歴を管理するためのキャッシュ機構および増分更新方式についても解説します。さらに、同一アルゴリズムを用いた決定論的テストを実現するために、履歴データを.EX5リソースとしてエクスポートする実用的な仕組みも提供します。
preview
リスク管理(第4回):主要クラスメソッドの完了

リスク管理(第4回):主要クラスメソッドの完了

MQL5におけるリスク管理に関する連載の第4回です。本連載では、取引戦略を保護しつつ最適化するための高度な手法を段階的に解説しています。前回までの内容で重要な基礎はすでに整っており、本記事では第3回で後回しにしていた残りの実装をすべて完結させます。具体的には、設定された利益および損失の上限に到達したかどうかを判定するための各種関数を完成させます。さらに、より高精度かつ柔軟なリスク制御を実現するための新しいイベント機構についても導入します。
preview
初心者からエキスパートへ:流動性ベースの取引戦略の構築

初心者からエキスパートへ:流動性ベースの取引戦略の構築

流動性ゾーンは一般的に、価格がそのゾーンへ戻ってリテストするのを待つことで取引されます。この際、これらの領域内に指値注文を配置する手法がよく用いられます。本記事では、MQL5を用いてこのコンセプトを具体化し、こうしたゾーンをどのようにプログラム的に識別できるか、そしてリスク管理をどのように体系的に適用できるかを示します。流動性ベースの取引ロジックとその実装について、実践と理論の両面から解説していきます。
preview
MQL5でのスイング極値とプルバック(第1回):マルチタイムフレームインジケータの開発

MQL5でのスイング極値とプルバック(第1回):マルチタイムフレームインジケータの開発

Swing Extremes and Pullbacksインジケータを自動化します。このインジケータは、下位足(LTF)生の値動きを、市場の意図を構造化して示すマップへと変換します。リアルタイムでスイングハイ・スイングロー・調整フェーズを正確に検出し、マイクロストラクチャーの変化をプログラムによって追跡することで、完全な反転が形成される前に潜在的な転換ポイントを予測します。これにより、市場ノイズを実用的なシグナルへ変換し、より精度の高い意思決定を可能にします。
preview
初級から中級まで:関数ポインタ

初級から中級まで:関数ポインタ

プログラミングにおいて「ポインタ」という概念について聞いたことがある方は多いと思います。しかし、MQL5でもこの種のデータを利用できることをご存じでしょうか。もちろん、これは実行時の挙動を適切に制御し、不可解な動作を回避できるよう慎重に扱う必要があります。ただし、この機能は非常に限定的な用途に向けたものであり、特定のタスクに特化しているため、MQL5におけるポインタの概念や使用方法について語られる機会はあまり多くありません。
preview
初心者からエキスパートへ:流動性ゾーンインジケータの開発

初心者からエキスパートへ:流動性ゾーンインジケータの開発

流動性ゾーンの広がりとブレイクアウトレンジの大きさは、リテストが発生する確率に大きな影響を与える重要な変数です。本ディスカッションでは、これらの比率を組み込んだインジケータを開発するための完全なプロセスについて解説します。
preview
ダイナミックマルチペアEAの形成(第6回):高頻度銘柄切り替えのための適応型スプレッド感度制御

ダイナミックマルチペアEAの形成(第6回):高頻度銘柄切り替えのための適応型スプレッド感度制御

本パートでは、マルチ銘柄におけるリアルタイムのスプレッド条件を継続的に監視し、評価するインテリジェントな実行レイヤーの設計に焦点を当てます。EAは、固定ルールではなくスプレッドの効率性に基づいて取引の有効と無効を切り替えることで、銘柄選択を動的に適応させます。このアプローチにより、高頻度で銘柄を切り替えるマルチペアシステムはコスト効率の高い銘柄を優先できるようになります。
preview
MQL5標準ライブラリエクスプローラー(第7回):CCanvasによるインタラクティブなポジションラベル表示

MQL5標準ライブラリエクスプローラー(第7回):CCanvasによるインタラクティブなポジションラベル表示

MQL5標準ライブラリに含まれるCCanvasを使用して、ポジション情報を可視化するツールの構築方法を解説します。このプロジェクトを通して、標準ライブラリの各種モジュールを扱うスキルを高めるとともに、ライブチャート上で保有ポジションを視覚的に確認・操作できる実用的なツールを作成します。ぜひ最後までお読みいただき、議論にもご参加ください。
preview
初心者からエキスパートへ: トレンドフィルタによる流動性戦略の拡張

初心者からエキスパートへ: トレンドフィルタによる流動性戦略の拡張

流動性ベースの戦略にシンプルなトレンド条件を追加します。具体的には、EMA(50)の方向に沿って流動性ゾーンを取引するというフィルタを導入します。記事では、不要なセットアップを除外するためのルールを説明し、再利用可能なTrendFilter.mqhクラスと、MQL5でのEA統合方法を紹介します。また、フィルタなしの基本戦略と、フィルタを適用した戦略のテスト結果を比較します。読者は、明確な方向性の判断基準、逆トレンド局面での過剰取引の抑制方法、そしてすぐに利用できるソースファイルを得ることができます。
preview
初級から中級まで:オブジェクトイベント(IV)

初級から中級まで:オブジェクトイベント(IV)

前回の記事で始めた内容を完成させます。つまり、チャート上でオブジェクトを直接操作してサイズを変更できる、完全にインタラクティブな方法を実現します。このようなものを作成するには、MQL5についてもっと深い知識が必要だと、多くの人は考えるかもしれません。しかし実際には、基本的な知識とシンプルな概念を使うことで、チャート上のオブジェクトを直接操作する方法を実装できます。そして、その結果は非常に興味深く、かなり魅力的なものになります。
preview
MQL5におけるイベント駆動型アーキテクチャ:エキスパートアドバイザーを本格的なトレードシステムに進化させる方法

MQL5におけるイベント駆動型アーキテクチャ:エキスパートアドバイザーを本格的なトレードシステムに進化させる方法

MQL5におけるイベント駆動アーキテクチャについて解説し、モノリシックなOnTickモデルから分散処理への移行を取り上げます。定義済みイベントとカスタムイベント、サービス、およびプログラム間のメッセージングについて説明するとともに、アーキテクチャ上でよく見られる典型的な誤りについても考察します。また、実践的な例を通じて、インジケータとEAの連携をどのように構成すれば、負荷を軽減し、可読性を向上させ、保守を容易にできるのかを示します。
preview
初級から中級まで:継承

初級から中級まで:継承

間違いなく、本記事の内容を理解し、それがどのように、そしてなぜ機能するのかを把握するためには、かなりの時間を要するでしょう。というのも、ここで示されている内容はすべて、一見するとオブジェクト指向的に見えますが、実際には構造化プログラミングの原理に基づいているためです。
preview
初級から中級まで:構造体(IV)

初級から中級まで:構造体(IV)

本記事では、いわゆる構造化プログラミングにおけるコードの作り方について解説します。構造体の中に、変数や情報を操作するためのコンテキストおよびメソッドをすべて配置し、あらゆるコードを実装するための適切な文脈を構築する方法を扱います。そのため、公開すべき内容とそうでない内容を分離するためにprivateセクションを使用する必要性について検討します。これによりカプセル化の原則が守られ、データ構造が本来意図されたコンテキストが維持されることになります。
preview
市場シミュレーション(第12回):ソケット(VI)

市場シミュレーション(第12回):ソケット(VI)

本記事では、Pythonコードを他のプログラム内で使用する際に発生する特定の問題や課題をどのように解決するかについて説明します。特に、ExcelとMetaTrader 5を併用する際に生じる一般的な問題を取り上げ、その具体例を示します。なお、この連携の実現にはPythonを使用します。ただし、この実装には小さな欠点があります。この問題は常に発生するわけではなく、特定の状況下でのみ起こります。そして、実際に発生した場合には、その原因を理解することが重要です。本日の記事では、この問題の解決方法について解説を開始します。
preview
MQL5標準ライブラリエクスプローラー(第9回):ALGLIBによる多発するMAクロスオーバーシグナルのフィルタ処理

MQL5標準ライブラリエクスプローラー(第9回):ALGLIBによる多発するMAクロスオーバーシグナルのフィルタ処理

横ばいの価格変動中、トレーダーは複数の移動平均クロスオーバーによって過剰なシグナルに直面します。今回は、ALGLIBがどのように生の価格データを前処理し、フィルタ処理済みのクロスオーバー系列を生成するのかについて説明します。また、これらのレイヤーは発生時にアラートを生成することもできます。数学ライブラリをMQL5プログラムでどう活用できるのかを一緒に見ていきましょう。
preview
ルーチン作業なしのアルゴリズム取引:MetaTrader 5におけるSQLiteを用いた高速取引分析

ルーチン作業なしのアルゴリズム取引:MetaTrader 5におけるSQLiteを用いた高速取引分析

本記事では、MQL5におけるSQLiteを用いた取引ジャーナル管理のための「最小実用構成」を紹介します。内容には、取引、シグナル、イベント用テーブル構造、インデックス設計、プリペアドステートメントによる高速かつ安全なデータ記録、さらに標準的な分析用SQLクエリが含まれます。また、MetaTrader 5の統計ダッシュボードとの統合方法や、MetaEditor上でデータベースを操作する手法についても解説します。このアプローチにより、取引ジャーナルの自動化、計算処理の高速化、そしてEAコードを複雑化させることなく高度な分析を実現できます。
preview
Market Memory Zonesインジケーターの自動化:価格が戻りやすい領域

Market Memory Zonesインジケーターの自動化:価格が戻りやすい領域

Market Memory Zonesをチャート上の概念から、完全なMQL5エキスパートアドバイザー(EA)へ発展させます。ディスプレイスメントゾーン、市場構造転換 (CHoCH)ゾーン、流動性スイープゾーンの検出をATRおよびローソク足構造フィルタによって自動化し、下位足での確認を適用するとともに、リスクベースのポジションサイズ計算、動的なストップロス(SL)、そして市場構造に基づくテイクプロフィット(TP)を実装します。また、検出、エントリー、トレード管理、可視化のコード構成に加え、バックテスト結果も簡潔に確認します。
preview
初級から中級まで:構造体(VII)

初級から中級まで:構造体(VII)

本日の記事では、さまざまな要素の構造化に関する問題をどのように解決し、よりシンプルで魅力的な設計へと導くかについて解説します。内容は学習向けであり、そのため本番環境のコードを構成するものではありませんが、ここで扱う概念や知識を十分に理解することが極めて重要です。これにより、今後提示するコードをよりスムーズに追えるようになります。
preview
初級から中級まで:構造体(III)

初級から中級まで:構造体(III)

本記事では、「構造化されたコード」とは何かについて解説します。多くの人が「構造化されたコード」と「整理されたコード」を混同していますが、この2つの概念には明確な違いがあります。本記事ではその違いについて説明します。一見すると複雑に感じられるかもしれませんが、できるだけシンプルに理解できるように解説しています。ただし、本記事はより大きな内容へ進むための第一歩にすぎません。
preview
初級から中級まで:オブジェクトイベント(III)

初級から中級まで:オブジェクトイベント(III)

本記事では、次回の記事で扱う内容の土台を準備します。また、OBJ_LABELオブジェクトを、編集と移動の両方ができる完全にインタラクティブなものにする方法についても見ていきます。つまり、OBJ_LABELオブジェクトのテキストと位置の両方を、オブジェクトのプロパティダイアログを開くことなく変更できるようにします。
preview
MQL5標準ライブラリエクスプローラー(第6回):生成されたエキスパートアドバイザーの最適化

MQL5標準ライブラリエクスプローラー(第6回):生成されたエキスパートアドバイザーの最適化

前回開発したマルチシグナルエキスパートアドバイザーを引き続き取り上げ、利用可能な最適化手法の検討と適用をおこないます。その目的は、過去データに基づく体系的な最適化を通じて、EAの取引パフォーマンスを有意に向上させることが可能かどうかを検証することです。