MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
オプションを使わないオプション取引(第1回):基礎理論と原資産によるエミュレーション

オプションを使わないオプション取引(第1回):基礎理論と原資産によるエミュレーション

MQL5プログラミング言語を用いて、原資産をベースにしたオプションのエミュレーション手法のバリエーションを解説します。選択したアプローチの長所と短所を、MOEX(モスクワ取引所)のFORTS先物市場およびBybit暗号資産取引所を例に、実際の取引所オプションと比較します。
preview
初心者からエキスパートへ: トレンドフィルタによる流動性戦略の拡張

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

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

ヒルベルト=シュミット独立性基準(HSIC)

データ内の線形および非線形依存関係を検出するために設計されたノンパラメトリック統計検定HSIC (Hilbert-Schmidt Independence Criterion)について解説します。MQL5言語におけるHSIC計算アルゴリズムとして、厳密な置換検定とガンマ近似の2つの実装を提案します。また、特徴量と目的変数の間の非線形関係をモデル化した合成データを用いて、本手法の有効性を示します。
preview
MQL5取引ツール(第14回):アンチエイリアシングと角丸スクロールバーを備えたピクセルパーフェクトなスクロール対応テキストキャンバス

MQL5取引ツール(第14回):アンチエイリアシングと角丸スクロールバーを備えたピクセルパーフェクトなスクロール対応テキストキャンバス

本記事では、MQL5のCCanvasベース価格ダッシュボードを拡張し、利用ガイドを表示するためのピクセルパーフェクトなスクロール可能テキストパネルを追加します。これにより、ネイティブのスクロール機能の制限を回避しつつ、カスタムアンチエイリアス処理と角丸デザインのスクロールバーを実現します。テキストパネルは、不透明度を設定可能なテーマ対応背景をサポートし、説明文や連絡先情報などのコンテンツを動的に改行表示できます。また、上下ボタン、スライダーのドラッグ操作、本文領域内でのマウスホイール操作によるインタラクティブなナビゲーションにも対応しています。
preview
MQL5標準ライブラリエクスプローラー(第7回):CCanvasによるインタラクティブなポジションラベル表示

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

MQL5標準ライブラリに含まれるCCanvasを使用して、ポジション情報を可視化するツールの構築方法を解説します。このプロジェクトを通して、標準ライブラリの各種モジュールを扱うスキルを高めるとともに、ライブチャート上で保有ポジションを視覚的に確認・操作できる実用的なツールを作成します。ぜひ最後までお読みいただき、議論にもご参加ください。
preview
取引におけるニューラルネットワーク:多変量時系列のデュアルクラスタリング(DUET)

取引におけるニューラルネットワーク:多変量時系列のデュアルクラスタリング(DUET)

DUETフレームワークは、時間方向およびチャネル方向のクラスタリングを組み合わせることで、時系列データに潜むパターンを抽出する新しいアプローチを提供します。時間的な変化への適応とノイズの低減を両立し、予測精度の向上を目指します。
preview
取引におけるニューラルネットワーク:カオス理論を時系列予測に統合する(Attraos)

取引におけるニューラルネットワーク:カオス理論を時系列予測に統合する(Attraos)

Attraosフレームワークは、カオス理論を長期時系列予測に統合し、それらを多次元混沌力学系の射影として扱います。アトラクター不変性を活用し、本モデルは位相空間再構成および動的多解像度メモリを用いることで、過去の構造を保持します。
preview
バックトラッキング探索アルゴリズム(BSA)

バックトラッキング探索アルゴリズム(BSA)

もし最適化アルゴリズムが過去の探索経路を記憶し、その記憶を使ってより良い解を見つけられるとしたらどうでしょうか。BSAはまさにそれを実現し、探索と実績のある探索方向の再利用をバランスよく両立させます。本記事では、そのアルゴリズムの秘密を解き明かします。シンプルなアイデア、最小限のパラメータ、そして安定した結果が特徴です。
preview
MQL5における純粋なRSA暗号化の実装

MQL5における純粋なRSA暗号化の実装

MQL5には組み込みの非対称暗号が存在しないため、HTTPのような安全でないチャネルでのデータ交換は困難です。本記事では、PKCS#1 v1.5パディングを用いた純粋なMQL5実装のRSAを紹介し、外部ライブラリを使用せずにAESのセッションキーや小規模なデータブロックを安全に送信できる方法を解説します。このアプローチにより、標準HTTP上でも、アプリケーションレベルでHTTPSに近い安全性を実現できるだけでなく、MQL5アプリケーションにおける安全な通信の重要なギャップを埋めることができます。
preview
MQL5取引ツール(第17回):ベクトルベースの角丸長方形と三角形を探る

MQL5取引ツール(第17回):ベクトルベースの角丸長方形と三角形を探る

MQL5のcanvasを使用して、ベクトルベースの手法で角丸長方形と三角形を描画する方法を解説します。さらに、アンチエイリアス処理を実現するためにスーパーサンプリングを利用します。実装では、スキャンライン塗りつぶし、円弧や接線に対する幾何学的事前計算、そして境界線描画を組み合わせることで、滑らかでカスタマイズ可能な図形を作成します。このアプローチは、今後の取引ツールにおけるモダンなUI要素を構築するための基盤となり、サイズ、角の半径、境界線、透明度などを入力で柔軟に設定できる設計になっています。
preview
初級から中級まで:構造体(IV)

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

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

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

MetaTrader 5上で実行されるコードの実装自体は、それほど難しいものではありません。しかし、いくつか考慮すべき重要な点があります。これはシステムを正しく動作させるために必要です。ここで重要な点を1つ覚えておいてください。実際には1つのプログラムだけが動作するわけではありません。現実には、3つのプログラムを同時に実行する必要があります。それぞれのプログラムが相互に連携し、通信できるように設計して構造化することが重要です。また、それぞれが他のプログラムの処理内容を認識できる必要があります。
preview
決定論的振動型探索(DOS)

決定論的振動型探索(DOS)

決定論的振動型探索(DOS, Deterministic Oscillatory Search)アルゴリズムは、乱数を使用せずに勾配法と群知能アルゴリズムの利点を組み合わせた、革新的な大域最適化手法です。適応度の振動と勾配状態メカニズムによって、DOSは複雑な探索空間を決定論的に探索することができます。
preview
初級から中級まで:継承

初級から中級まで:継承

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

一次元特異スペクトル解析

本記事では、特異スペクトル解析(SSA, Singular Spectrum Analysis)法の理論的および実践的側面について考察します。SSAは時系列解析の有効な手法の一つであり、時系列の複雑な構造を、トレンド、季節性(周期的)変動、ノイズなどの単純な成分へ分解して表現することを可能にします。
preview
取引におけるニューラルネットワーク:多変量時系列のデュアルクラスタリング(最終回)

取引におけるニューラルネットワーク:多変量時系列のデュアルクラスタリング(最終回)

DUETフレームワークの著者らによって提案されたアプローチの実装を引き続き進めます。本フレームワークは、時間方向とチャネル方向のクラスタリングを組み合わせることで、時系列データに潜在するパターンを抽出する革新的な手法を提供します。
preview
市場シミュレーション(第12回):ソケット(VI)

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

本記事では、Pythonコードを他のプログラム内で使用する際に発生する特定の問題や課題をどのように解決するかについて説明します。特に、ExcelとMetaTrader 5を併用する際に生じる一般的な問題を取り上げ、その具体例を示します。なお、この連携の実現にはPythonを使用します。ただし、この実装には小さな欠点があります。この問題は常に発生するわけではなく、特定の状況下でのみ起こります。そして、実際に発生した場合には、その原因を理解することが重要です。本日の記事では、この問題の解決方法について解説を開始します。
preview
市場シミュレーション(第16回):ソケット(X)

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

このチャレンジも終盤に差し掛かっていますが、その前に、今回の内容と前回の記事の2つの記事をしっかり理解しておく必要があります。そうすることで、次の記事をより深く理解できるようになります。次の記事では、MQL5プログラミングに関連する部分のみを扱う予定です。また、できるだけ分かりやすく説明するように努めます。しかし、これら2つの記事の内容を理解していない場合、次の記事を理解することは難しくなるでしょう。内容が段階的に積み重なっていく構造になっているからです。達成すべき目標に近づくほど、必要となる理解や実装すべき要素は増えていきます。
preview
機械学習を用いたフラクタル市場構造入門

機械学習を用いたフラクタル市場構造入門

本記事では、金融時系列を自己相似的なフラクタル構造という観点から考察します。市場の価格変動が自己相似フラクタルとして捉えられる可能性を支持する類似性が多数存在することから、このような構造の予測可能性の地平線について考えることができます。
preview
イーグル戦略最適化(ES)

イーグル戦略最適化(ES)

イーグル戦略最適化(ES)は、鷲の狩猟行動に着想を得た最適化アルゴリズムです。マンテーニャ法によるレヴィ飛行を用いた大域探索と、ホタルアルゴリズムによる集中的な局所探索(local exploitation)を交互に実行することで、探索と活用のバランスを実現します。本アルゴリズムは、数学的根拠に基づく探索戦略と、2つの自然現象を統合したバイオインスパイアードなアプローチを兼ね備えています。
preview
Python-MetaTrader 5ストラテジーテスター(第1回):取引シミュレーター

Python-MetaTrader 5ストラテジーテスター(第1回):取引シミュレーター

MetaTrader5のPythonモジュールは、Pythonを使ってMetaTrader5アプリで取引を発注するための便利な手段を提供しています。しかし、このモジュールには大きな問題があります。それは、MetaTrader5アプリに存在するストラテジーテスター機能が備わっていないことです。本連載では、Python環境で取引戦略をバックテストするためのフレームワークを構築していきます。
preview
初級から中級まで:構造体(III)

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

本記事では、「構造化されたコード」とは何かについて解説します。多くの人が「構造化されたコード」と「整理されたコード」を混同していますが、この2つの概念には明確な違いがあります。本記事ではその違いについて説明します。一見すると複雑に感じられるかもしれませんが、できるだけシンプルに理解できるように解説しています。ただし、本記事はより大きな内容へ進むための第一歩にすぎません。
preview
生物地理学に基づく最適化(BBO)

生物地理学に基づく最適化(BBO)

生物地理学に基づく最適化(BBO, Biogeography-Based Optimization)は、群島内の島々の間で発生する種の移住という自然現象に着想を得た、洗練された大域的最適化手法です。このアルゴリズムは、シンプルでありながら強力な考え方に基づいています。すなわち、良質な解はその特徴を他の解へ伝播し、低品質な解は新たな特徴を積極的に取り込むことで、最良の解から最悪の解へと情報が自然に流れるようになります。さらに、適応的な突然変異オペレーターによって探索と活用の優れたバランスが実現されます。BBOはさまざまな最適化問題に対して高い効率を示しています。
preview
カスタムインジケータワークショップ(第1回):MQL5でSupertrendインジケータを構築する

カスタムインジケータワークショップ(第1回):MQL5でSupertrendインジケータを構築する

MetaTrader 5向けに、第一原理から非リペイントのSupertrendを構築します。本実装では、ボラティリティ計算にiATRハンドルとCopyBufferを使用し、SetIndexBufferによってバッファをバインドします。また、プロット設定はPlotIndexSetIntegerを用いて構成し、DRAWCOLORCANDLESと2本のラインバンドによる描画をおこないます。ロジックは確定足のみに基づいて更新され、EMPTY_VALUE を使用して非アクティブなバンドを抑制します。さらに、atrPeriodおよびatrMultiplierの入力パラメータを公開し、調整可能な設計としています。これにより、戦略およびシグナル用途のために内部バッファが明確にドキュメント化された、クリーンでEA対応のオーバーレイ型インジケータが得られます。
preview
MQL5におけるイベント駆動型アーキテクチャ:エキスパートアドバイザーを本格的なトレードシステムに進化させる方法

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

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

共分散行列適応進化戦略(CMA-ES)

目的関数の幾何構造を捉えるように学習する、最も興味深い非勾配最適化アルゴリズムの一つを扱います。CMA-ESの古典的実装に対してわずかな修正を加えたもの、すなわち正規分布を冪分布に置き換える手法に焦点を当てます。アルゴリズムの背後にある数理を徹底的に解説し、さらに実装面についても検討します。また、CMA-ESがどのような問題で無類の性能を発揮し、どのような状況では使用を避けるべきかについても確認します。
preview
MQL5標準ライブラリエクスプローラー(第6回):生成されたエキスパートアドバイザーの最適化

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

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

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

本記事では、これまで実演してきた内容、すなわち「ExcelユーザーがMetaTrader 5上で操作できるようにする方法」の一例について解説します。ここで扱うのは、注文送信やポジションの新規建て・決済をExcel側から直接実行する方法ではなく、ExcelからMetaTrader 5上のEAにそれらの操作を指示する方法です。ユーザーはExcelを用いて特定銘柄のファンダメンタル分析をおこない、その結果をもとに、Excelだけを使ってMetaTrader 5上で稼働しているエキスパートアドバイザー(EA)に対し、特定ポジションの新規建てまたは決済を指示できるようにします。
preview
PythonによるCFTCデータマイニングとAIモデルの構築

PythonによるCFTCデータマイニングとAIモデルの構築

CFTCデータのマイニングを試み、Pythonを通じてCOTおよびTFFレポートをダウンロードし、これらをMetaTrader 5の相場データおよびAIモデルと統合して、予測を得てみましょう。FX市場におけるCOTレポートとは何でしょうか。また、COTおよびTFFレポートをどのように予測に活用するのでしょうか。
preview
MQL5入門(第37回):MQL5のAPIとWebRequest関数の習得(XI)

MQL5入門(第37回):MQL5のAPIとWebRequest関数の習得(XI)

MQL5を使用してBinance APIに認証付きリクエストを送信し、アカウント内の全資産の残高情報を取得する方法を解説します。APIキー、サーバー時刻、署名を利用して安全にアカウント情報へアクセスし、そのレスポンスをファイルへ保存して後で活用する方法を学びます。
preview
ラリー・ウィリアムズの『市場の秘密』(第11回):カスタムインジケータによるスマッシュデー反転の検出

ラリー・ウィリアムズの『市場の秘密』(第11回):カスタムインジケータによるスマッシュデー反転の検出

ラリー・ウィリアムズのスマッシュデー反転ルールを、確認済みセットアップを矢印で表示する実用的なMQL5インジケータへ変換します。バッファのバインド、プロットプロパティの設定、履歴データへのマッピング、そしてOnCalculate内でのリアルタイム更新までを、段階的に解説します。調整可能なルックバックパラメータと見やすいチャート描画により、有効な反転をすばやく検出できる一方で、最終的な売買判断は裁量と市場状況に委ねられます。
preview
OpenCLを用いたMQL5におけるCPUからGPUへの実践的移行パス

OpenCLを用いたMQL5におけるCPUからGPUへの実践的移行パス

MQL5でCPUからGPUへの移行方法を実用的に構築する方法を解説します。本記事では、コンテキストの初期化、バッファ構造の設計、大規模バッチ処理、カーネルの起動、データ転送の最小化に焦点を当てます。また、典型的なエラーとその解決方法についても取り上げます。ローソク足パターンの例を通じて、このアプローチの実用的な効果も示します。
preview
初級から中級まで:構造体(VII)

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

本日の記事では、さまざまな要素の構造化に関する問題をどのように解決し、よりシンプルで魅力的な設計へと導くかについて解説します。内容は学習向けであり、そのため本番環境のコードを構成するものではありませんが、ここで扱う概念や知識を十分に理解することが極めて重要です。これにより、今後提示するコードをよりスムーズに追えるようになります。
preview
ルーチン作業なしのアルゴリズム取引:MetaTrader 5におけるSQLiteを用いた高速取引分析

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

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

MQL5におけるタイムギャップ分析(第1回):基本インジケータの構築

タイムギャップ分析は、市場の反転が起こる可能性のあるポイントを特定するための手法です。本記事では、タイムギャップとは何か、その解釈方法、そして市場への大口資金の流入を検出するためにどのように活用できるかについて解説します。
preview
KnitPkgを用いたMQL5向けパッケージベース開発手法

KnitPkgを用いたMQL5向けパッケージベース開発手法

MetaTrader向けにMQLを用いた高い信頼性と生産性を備えた開発を実現するため、MQL5/MQL4向けのプロジェクトマネージャであるKnitPkgを利用した、再利用可能な「パッケージ」を中心とする開発手法を紹介します。パッケージは、他のパッケージを構成する土台として利用できるだけでなく、EAやインジケータなど、MetaTraderプラットフォーム上で直接動作する最終成果物の基盤としても活用できます。
preview
プライスアクション分析ツールキットの開発(第29回):Boom and Crash Interceptor EA

プライスアクション分析ツールキットの開発(第29回):Boom and Crash Interceptor EA

Boom & Crash Interceptor EAは、チャートを能動的なアラートシステムへと変貌させます。超高速の価格変動スキャン、ボラティリティ急増の検出、トレンド確認、そしてピボットゾーンフィルタを組み合わせることで、爆発的な値動きをいち早く捉えます。鮮明な緑色の「Boom」矢印と赤色の「Crash」矢印が売買判断をサポートし、市場の急騰・急落スパイクをこれまで以上に効果的に捉え、活用できるようになります。本記事では、その仕組みと、このツールがトレードにおける次の重要な優位性となり得る理由を詳しく解説します。
preview
グラフ理論:取引における幅優先探索(BFS)/ja/応用

グラフ理論:取引における幅優先探索(BFS)/ja/応用

幅優先探索(BFS)はレベル順トラバーサルを用い、価格スイングを時間/ja/経過とともに進化する有向グラフとして市場構造をモデル化します。過去/ja/ローソク足またはセッションを階層ごとに分析することで、BFSはより直近/ja/価格挙動を優先しつつ、より長期/ja/市場文脈も反映します。
preview
Market Memory Zonesインジケーターの自動化:価格が戻りやすい領域

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

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

MQL5における取引へのコンピュータビジョンの統合(第2回):アーキテクチャを2D RGB画像解析に拡張する

取引におけるコンピュータビジョン:仕組みと開発手順本記事では、RGB画像として価格チャートを認識するアルゴリズムを構築し、アテンション機構と双方向LSTM層を用いる方法について説明します。結果として、EURUSDの価格を予測する動作モデルを構築し、検証セクションにおいて最大55%の正解率を得ます。