MQL5プログラミング記事

icon

取引戦略をプログラミングするためのMQL5言語を、ほとんどがコミュニティメンバーによって書かれた数多くの公開記事で学びます。記事は統合、テスター、取引戦略等のカテゴリに分けられていて、プログラミングに関連する疑問への解答を素早く見つけることができます。

新着記事をフォローして、フォーラムでディスカッションしてください。

新しい記事を追加
最新 | ベスト
preview
市場シミュレーション(第6回):MetaTrader 5からExcelへの情報の転送

市場シミュレーション(第6回):MetaTrader 5からExcelへの情報の転送

多くの人、特にプログラマーではない人は、MetaTrader 5と他のプログラムとの間で情報をやり取りすることは非常に難しいと感じます。その代表的な例がExcelです。多くの人がExcelをリスク管理や運用管理のための手段として利用しています。Excelは非常に優れたプログラムであり、VBAプログラマーでなくても比較的容易に習得できます。ここでは、MetaTrader 5とExcelの間に接続を確立する方法について説明します。方法は非常にシンプルなものです。
preview
初級から中級へ:演算子の優先順位

初級から中級へ:演算子の優先順位

これは間違いなく、純粋に理論だけで説明するには最も難しいテーマの一つです。だからこそ、ここで取り上げるすべての内容を実際に手を動かして練習する必要があります。一見すると単純そうに見えるかもしれませんが、演算子というトピックは、継続的な学習と実践を通じて初めて理解できるものです。
preview
知っておくべきMQL5ウィザードのテクニック(第34回):非従来型RBMによる価格の埋め込み

知っておくべきMQL5ウィザードのテクニック(第34回):非従来型RBMによる価格の埋め込み

制限ボルツマンマシンは、1980年代半ば、計算資源が非常に高価だった時代に開発されたニューラルネットワークの一種です。当初は、入力された訓練データセットの次元を削減し、隠れた確率や特性を捉えるために、ギブスサンプリングとコントラストダイバージェンス(Contrastive Divergence)に依存していました。RBMが予測用の多層パーセプトロンに価格を「埋め込む」場合、バックプロパゲーションがどのように同様の性能を発揮できるかを検証します。
preview
取引におけるニューラルネットワーク:Segment Attentionを備えたパラメータ効率重視Transformer(最終回)

取引におけるニューラルネットワーク:Segment Attentionを備えたパラメータ効率重視Transformer(最終回)

前回の記事では、PSformerフレームワークの理論的側面について議論しました。このフレームワークは、従来のTransformerアーキテクチャに、パラメータ共有(PS)メカニズムと時空間Segment Attention (SegAtt)という2つの主要な革新をもたらします。本稿では、前回に引き続き、提案された手法をMQL5を用いて実装する作業について説明します。
preview
カオス最適化アルゴリズム(COA)

カオス最適化アルゴリズム(COA)

本記事では、カオス理論と適応型探索メカニズムを組み合わせた改良型カオス最適化(COA)を紹介します。このアルゴリズムでは、複数のカオス写像と慣性成分を利用して探索空間を効率的に走査します。また、金融最適化におけるカオス的手法の理論的基盤についても解説します。
preview
Pythonの価格変動離散化手法

Pythonの価格変動離散化手法

Python + MQL5を使用した価格離散化手法を見ていきます。本記事では、バー生成に関する幅広い手法を実装したPythonライブラリの開発経験についご紹介します。クラシックなボリュームバーやレンジバーから、よりエキゾチックな練行足やカギ足といった手法までを網羅します。スリーラインブレイクローソク足やレンジバーの統計分析をおこないながら、価格を離散的に表現する新たな方法を探っていきます。
preview
リプレイシステムの開発(第55回):コントロールモジュール

リプレイシステムの開発(第55回):コントロールモジュール

この記事では、開発中のメッセージシステムに統合できるように、コントロールインジケーターを実装します。それほど難しくはありませんが、このモジュールの初期化について理解しておくべき細かい点がいくつかあります。ここで提示される資料は教育目的のみに使用されます。示された概念を学習し習得する以外の目的での利用は決して想定されていません。
preview
取引におけるニューラルネットワーク:時系列予測のための言語モデルの使用

取引におけるニューラルネットワーク:時系列予測のための言語モデルの使用

時系列予測モデルの研究を続けます。本記事では、事前訓練済みの言語モデルを活用した複雑なアルゴリズムについて説明します。
preview
取引におけるニューラルネットワーク:TEMPO法の実践結果

取引におけるニューラルネットワーク:TEMPO法の実践結果

TEMPO法について引き続き学習します。この記事では、実際の履歴データに対する提案されたアプローチの実際の有効性を評価します。
preview
知っておくべきMQL5ウィザードのテクニック(第35回):サポートベクトル回帰

知っておくべきMQL5ウィザードのテクニック(第35回):サポートベクトル回帰

サポートベクトル回帰(SVR)は、2つのデータセット間の関係を最も適切に表現する関数または「超平面」を見つけるための理想的な手法です。本稿では、MQL5ウィザードのカスタムクラス内での時系列予測において、この手法を活用することを試みます。
preview
ニュース取引が簡単に(第4回):パフォーマンス向上

ニュース取引が簡単に(第4回):パフォーマンス向上

この記事では、ストラテジーテスターでエキスパートアドバイザー(EA)のランタイムを改善する方法について掘り下げていきます。これらのニュースイベントの時間は、指定された時間内にアクセスされます。これにより、EAはボラティリティの高い環境でも低い環境でも、イベントドリブン取引を効率的に管理できます。
preview
三角波とのこぎり波:トレーダー向け分析ツール

三角波とのこぎり波:トレーダー向け分析ツール

波動分析は、テクニカル分析で用いられる手法の一つです。本記事では、あまり一般的ではない2種類の波形である、三角波とのこぎり波に焦点を当てます。これらの波形は、市場価格分析のために設計された多くのテクニカル指標の基盤となっています。
preview
データサイエンスとML(第39回):ニュース × 人工知能、それに賭ける価値はあるか

データサイエンスとML(第39回):ニュース × 人工知能、それに賭ける価値はあるか

ニュースは金融市場を動かす力を持っており、特に非農業部門雇用者数(NFP)のような主要指標の発表は大きな影響を与えます。私たちは、単一のヘッドラインが急激な価格変動を引き起こす様子を何度も目にしてきました。本記事では、ニュースデータと人工知能(AI)の強力な融合について探っていきます。
preview
市場シミュレーション(第14回):ソケット(VIII)

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

多くのプログラマは、Excelの使用をやめて、Pythonに直接移行し、PythonでExcelファイルを生成して後から結果を分析できるパッケージを使うべきだと考えるかもしれません。しかし、前回の記事で述べたように、この方法は多くのプログラマにとって最も簡単な解決策ではありますが、すべてのユーザーに受け入れられるわけではありません。そして、このような場合、常に正しいのはユーザーです。私たちプログラマは、すべてをうまく機能させる方法を見つけなければなりません。
preview
MQL5経済指標カレンダーを使った取引(第5回):レスポンシブコントロールとフィルターボタンでダッシュボードを強化する

MQL5経済指標カレンダーを使った取引(第5回):レスポンシブコントロールとフィルターボタンでダッシュボードを強化する

この記事では、ダッシュボードの制御を改善するために、通貨ペアフィルター、重要度レベル、時間フィルター、キャンセルオプションのボタンを作成します。これらのボタンは、ユーザーのアクションに動的に応答するようにプログラムされており、シームレスな操作を可能にします。また、ダッシュボードにリアルタイムの変更を反映するために、ユーザーの行動を自動化します。これにより、パネルの全体的な機能性、モビリティ、応答性が向上します。
preview
MQL5における特異スペクトル解析

MQL5における特異スペクトル解析

本記事は、特異スペクトル解析(SSA: Singular Spectrum Analysis)の概念に不慣れな方を対象に、MQL5で利用可能な組み込みツールを実際に活用できるようになるためのガイドとして作成されたものです。
preview
MQL5入門(第21回):ハーモニックパターン検出の自動化

MQL5入門(第21回):ハーモニックパターン検出の自動化

MetaTrader 5でMQL5を使ってガートリーハーモニックパターンを検出して表示する方法を学びます。この記事では、スイングポイントの特定からフィボナッチ比率の適用、チャート上へのパターン描画までの手順を順を追って解説し、視覚的に確認できる形で表示する方法を紹介します。
preview
初心者からエキスパートへ:パラメータ制御ユーティリティ

初心者からエキスパートへ:パラメータ制御ユーティリティ

従来のEAやインジケーターの入力プロパティを、リアルタイムで操作可能なオンチャートのコントロールインターフェースへと変換することを想像してみてください。本記事は、これまでに取り組んできたMarket Periods Synchronizerインジケーターでの基礎的な成果を土台とし、上位足(HTF)の市場構造を可視化し、管理する手法を大きく進化させるものです。ここでは、その概念を完全にインタラクティブなユーティリティへと昇華させ、動的な操作性と強化されたマルチタイムフレーム(MTF)のプライスアクションの可視化を、チャート上に直接統合したダッシュボードとして実装します。この革新的なアプローチが、トレーダーとツールの関わり方をどのように変えていくのか、一緒に見ていきましょう。
preview
ケンドールのタウ係数と距離相関を用いたVGTの市場ポジショニング分析コード

ケンドールのタウ係数と距離相関を用いたVGTの市場ポジショニング分析コード

この記事では、相補的なインジケーターのペアをどのように活用して、過去5年間のVanguard Information Technology Index Fund ETF (VGT)を分析できるかを検討します。具体的には、ケンドールのタウ係数と距離相関という2つの指標を用い、VGTの取引に適したインジケーターの組み合わせだけでなく、それら2つのインジケーターに対するシグナルパターンの最適なペアリングも選定することを目指します。
preview
MQL5でカスタムインジケーターを作成する(第1回):Canvasグラデーションを使用したピボットベースのトレンドインジケーターの構築

MQL5でカスタムインジケーターを作成する(第1回):Canvasグラデーションを使用したピボットベースのトレンドインジケーターの構築

本記事では、ユーザーが定義した期間にわたって高速ピボットラインと低速ピボットラインを計算し、これらのラインに対する価格の位置に基づいてトレンドの方向を検出し、矢印でトレンドの開始を知らせるとともに、必要に応じて現在のバーを超えてラインを延長するピボットベースのトレンドインジケーターを、MQL5で作成します。このインジケーターは、カスタマイズ可能な色で表示される個別の上昇線と下降線、トレンドの変化に応じて色が変わる点線の高速線、そしてトレンド領域の強調表示を強化するためのCanvasオブジェクトを使用した、線間のオプションのグラデーション塗りつぶしによる動的な可視化をサポートしています。
preview
プライスアクション分析ツールキットの開発(第54回):EMAと平滑化された価格変動によるトレンドのフィルタリング

プライスアクション分析ツールキットの開発(第54回):EMAと平滑化された価格変動によるトレンドのフィルタリング

取引の明確さとタイミングを向上させるために、平均足による平滑化とEMA20の高値および安値のバンド、さらにEMA50のトレンドフィルターを組み合わせた手法を解説します。これらのツールにより、トレーダーは真のモメンタムを見極め、ノイズを排除し、ボラティリティの高い局面やトレンド相場により適切に対応できます。
preview
リプレイシステムの開発(第75回):新しいChart Trade(II)

リプレイシステムの開発(第75回):新しいChart Trade(II)

この記事では、C_ChartFloatingRADクラスについて説明します。これはChart Tradeを機能させるための要となる部分です。ただし、解説はこれで終わりではありません。本記事の内容はかなり広範かつ深い理解を必要とするため、続きは次回の記事で補完します。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
DoEasy - コントロール(第33部):垂直スクロールバー

DoEasy - コントロール(第33部):垂直スクロールバー

この記事では、DoEasyライブラリのグラフィカル要素の開発を続け、フォームオブジェクトコントロールの垂直スクロールを追加し、さらに将来必要となる便利な関数やメソッドを紹介します。
preview
Parafrac V2オシレーター:パラボリックSARとATRの統合

Parafrac V2オシレーター:パラボリックSARとATRの統合

Parafrac V2オシレーターは、パラボリックSARとATR(Average True Range、平均真の範囲)を統合した高度なテクニカル分析ツールです。前バージョンのParafracオシレーターではフラクタルを使用していたため、過去や現在のシグナルを覆い隠すようなスパイクが発生しやすいという課題がありました。Parafrac V2ではATRによるボラティリティ測定を活用することで、トレンドや反転、ダイバージェンスの検出をより滑らかで信頼性の高い方法で行えるようになり、チャートの混雑や分析の過負荷を軽減できます。
preview
Python + MetaTrader 5:データ、機能、プロトタイプのための高速研究フレームワーク

Python + MetaTrader 5:データ、機能、プロトタイプのための高速研究フレームワーク

本記事では、PythonとMetaTrader 5の統合によって、研究の柔軟性と取引実行を単一のワークフローに統合できることを示しています。Pythonはデータ分析、特徴量選択、モデル学習に使用され、MetaTrader 5はテストおよび取引自動化に使用されます。このアプローチにより、ソリューションを実運用へ移行するプロセスが簡素化され、再現性が向上し、トレードシステムの開発がより迅速かつ構造化されます。
preview
初級から中級へ:変数(III)

初級から中級へ:変数(III)

今日は、定義済みのMQL5言語変数と定数の使用方法を見ていきます。さらに、別の特殊なタイプの変数である関数を分析します。これらの変数を適切に操作する方法を知っているかどうかは、動作するアプリケーションと動作しないアプリケーションの違いを意味する場合があります。ここで紹介されている内容を理解するには、以前の記事で説明した内容を理解する必要があります。
preview
取引におけるニューラルネットワーク:時系列予測のためのTransformerの最適化(LSEAttention)

取引におけるニューラルネットワーク:時系列予測のためのTransformerの最適化(LSEAttention)

LSEAttentionフレームワークは、Transformerアーキテクチャの改善を提供します。この手法は、特に長期の多変量時系列予測のために設計されました。提案されたアプローチは、従来のTransformerでよく遭遇するエントロピーの崩壊や学習の不安定性の問題を解決するために応用可能です。
preview
深層強化学習を用いたIlanエキスパートアドバイザーの強化

深層強化学習を用いたIlanエキスパートアドバイザーの強化

本記事では、Ilanグリッド型エキスパートアドバイザー(EA)を再考し、MQL5でQ学習を組み込んだMetaTrader 5用適応型バージョンを構築する方法を解説します。状態特徴量の定義、Qテーブル用の離散化、ε-greedyによる行動選択、平均化やポジション決済に対する報酬設計の手法を示します。さらに、Qテーブルの保存や読み込み、学習パラメータのチューニング、EURUSDやAUDUSDに対するストラテジーテスターでの安定性およびドローダウンリスクの評価についても解説します。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(III)コミュニケーションモジュール

MQL5で取引管理者パネルを作成する(第9回):コード編成(III)コミュニケーションモジュール

MQL5インターフェイス設計における最新の進展を、再設計されたコミュニケーションパネルの公開とともに詳しく解説します。また、モジュール化の原則に基づいて新しい管理パネルを構築するシリーズも引き続き展開していきます。この記事では、CommunicationsDialogクラスを段階的に開発し、それをDialogクラスから継承する方法を丁寧に解説します。さらに、開発には配列およびListViewクラスを活用します。MQL5開発スキルを高めるための実用的な知見を得るために、ぜひ記事を読み、コメント欄でディスカッションにご参加ください。
preview
知っておくべきMQL5ウィザードのテクニック(第63回):DeMarkerとEnvelope Channelsのパターンを活用する

知っておくべきMQL5ウィザードのテクニック(第63回):DeMarkerとEnvelope Channelsのパターンを活用する

DeMarkerオシレーターとEnvelopesインジケーターは、エキスパートアドバイザー(EA)を開発するときに組み合わせることができるモメンタムおよびサポート/レジスタンスツールです。パターンごとに何が役に立つのか、そして何を避けることができるのかを調べます。いつものように、ウィザードで組み立てられたEAと、エキスパートシグナルクラスに組み込まれているパターン使用関数を使用しています。
preview
リプレイシステムの開発(第74回):新しいChart Trade(I)

リプレイシステムの開発(第74回):新しいChart Trade(I)

この記事では、Chart Tradeに関する本連載の最後に示したコードを修正します。これらの変更は、現在のリプレイ/シミュレーションシステムのモデルにコードを適合させるために必要です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
母集団最適化アルゴリズム:極値から抜け出す力(第I部)

母集団最適化アルゴリズム:極値から抜け出す力(第I部)

本稿では、母集団最適化アルゴリズムの挙動を、集団の多様性が低い場合に効率的に極小値を脱出し、最大値に到達する能力という観点から検証することを目的としたユニークな実験を紹介します。この方向性で取り組むことで、ユーザーが設定した座標を出発点として、どの特定のアルゴリズムが検索を成功させることができるのか、またその成功にどのような要因が影響するのかについて、さらなる洞察が得られるでしょう。
preview
MQL5のテーブルモデルに基づくテーブルクラスとヘッダクラス:MVC概念の適用

MQL5のテーブルモデルに基づくテーブルクラスとヘッダクラス:MVC概念の適用

これは、MQL5でのテーブルモデル実装をMVC (Model-View-Controller)アーキテクチャパラダイムに基づいて解説する記事の第2部です。本記事では、前回作成したテーブルモデルをもとに、テーブルクラスおよびテーブルヘッダの開発について説明します。開発したクラスは、次回の記事で扱うビューおよびコントローラーコンポーネントの実装の基礎となります。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第9回):二重移動平均クロスオーバー

MQL5で自己最適化エキスパートアドバイザーを構築する(第9回):二重移動平均クロスオーバー

本記事では、二重移動平均クロスオーバー戦略の設計について説明します。この戦略では、上位時間足(例:日足、D1)のシグナルを参照して下位時間足(例:15分足、M15)でエントリーをおこない、ストップロスレベルは中間的リスク時間足(例:4時間足、H4)から算出します。システム定数やカスタム列挙型、トレンドフォローと平均回帰(ミーンリバージョン)モードに対応したロジックを導入し、モジュール化と将来的な遺伝的アルゴリズムによる最適化を重視しています。このアプローチにより、柔軟なエントリーとエグジットの条件を設定でき、下位時間足でのエントリーを高い時間足のトレンドに合わせることで、シグナルのラグを軽減し、取引タイミングを改善することを目指しています。
preview
MQL5での取引戦略の自動化(第37回):ビジュアル指標付きレギュラーRSIダイバージェンス・コンバージェンス検出

MQL5での取引戦略の自動化(第37回):ビジュアル指標付きレギュラーRSIダイバージェンス・コンバージェンス検出

本記事では、スイングポイントの強さを考慮し、バー制限や許容幅のチェックを組み合わせて、レギュラーRSIダイバージェンスを検出するMQL5エキスパートアドバイザー(EA)を作成します。このEAは、強気または弱気シグナルに基づいて固定ロットでエントリーし、SL/TPをpips単位で設定でき、任意でトレーリングストップも適用可能です。視覚要素として、チャート上に色分けされたラインおよびラベル付きスイングポイントを表示し、戦略分析を強化します。
preview
初級から中級へ:値渡しまたは参照渡し

初級から中級へ:値渡しまたは参照渡し

この記事では、値渡しと参照渡しの違いを実際の例を通じて理解します。これは単純で一般的な概念であり、特に問題を引き起こすようには思えませんが、多くの経験豊富なプログラマーでさえ、この小さな違いのためにコードの作成中に思わぬ失敗をすることがあります。値渡しまたは参照渡しをいつ、どのように、なぜ使用するかを知ることは、プログラマーとしての私たちの生活に大きな違いをもたらします。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
取引におけるニューラルネットワーク:データの局所構造の探索

取引におけるニューラルネットワーク:データの局所構造の探索

ノイズの多い状況下で市場データの局所構造を効果的に識別・保持することは、取引において極めて重要な課題です。自己アテンション(Self-Attention)メカニズムの活用は、このようなデータの処理において有望な結果を示していますが、従来のアプローチでは基盤となる構造の局所的な特性が考慮されていません。この記事では、こうした構造的依存関係を組み込むことが可能なアルゴリズムを紹介します。
preview
MQL5経済指標カレンダーを使った取引(第4回):ダッシュボードでのリアルタイムニュース更新の実装

MQL5経済指標カレンダーを使った取引(第4回):ダッシュボードでのリアルタイムニュース更新の実装

この記事では、リアルタイムのニュース更新機能を実装することで、経済指標カレンダーダッシュボードを強化し、市場情報を常に最新かつ実用的な状態に保ちます。MQL5におけるライブデータ取得技術を統合し、ダッシュボード上のイベントを継続的に更新することで、インターフェイスの応答性を向上させます。このアップデートにより、ダッシュボードから最新の経済ニュースに直接アクセスでき、最新データに基づいて取引判断を最適化できるようになります。
preview
古典的な戦略を再構築する(第15回):デイリーブレイクアウト取引戦略

古典的な戦略を再構築する(第15回):デイリーブレイクアウト取引戦略

コンピュータが登場する以前から、人間のトレーダーは長年にわたり金融市場に参加し、意思決定を導く経験則を培ってきました。本記事では、よく知られたブレイクアウト戦略を再検証し、こうした経験から得られた市場ロジックがシステマティックな手法に対抗し得るのかをテストします。結果として、元の戦略は高い精度を示した一方で、不安定性とリスク管理の弱さが明らかになりました。そこで本記事ではアプローチを改良し、裁量的な洞察をより堅牢なアルゴリズム取引戦略へと適応する方法を示します。
preview
プライスアクション分析ツールキットの開発(第41回):MQL5で統計的価格レベルEAを構築する

プライスアクション分析ツールキットの開発(第41回):MQL5で統計的価格レベルEAを構築する

統計は常に金融分析の中心にあります。統計とは、データを収集・分析・解釈・提示し、意味のある情報に変換する学問です。これをローソク足に応用すると、価格の生データを測定可能な洞察に圧縮できます。特定期間における市場の中心傾向、分布、広がりを把握できれば、どれほど有益でしょうか。本記事では、統計的手法を用いてローソク足データを明確で実行可能なシグナルに変換する方法を紹介します。