MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MQL5入門(第34回):MQL5のAPIとWebRequest関数の習得(VIII)

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

MetaTrader 5でインタラクティブなコントロールパネルを作成する方法を学びます。入力フィールド、アクションボタン、テキストを表示するためのラベルを追加する基本について説明します。プロジェクトベースのアプローチを用いて、ユーザーがメッセージを入力し、最終的にAPIからのサーバー応答を表示するパネルを設定する方法を学びます。
preview
バトルロイヤル最適化(BRO)

バトルロイヤル最適化(BRO)

本記事では、Battle Royale Optimizer(バトルロイヤル最適化アルゴリズム)について解説します。このアルゴリズムは、各解が近傍解と競合し、「ダメージ」を蓄積し、ある閾値を超えた場合に置き換えられ、さらに現在の最良解の周囲へと探索空間を周期的に縮小していくというメタヒューリスティックです。あわせて、擬似コードおよびCAOBROクラスのMQL5実装も紹介します。また、近傍探索、最良解への移動、適応的なデルタ区間といった主要な処理も含まれています。テスト結果としては、Hilly関数、Forest関数、Megacity関数における評価が示されており、本手法の強みと限界が明らかにされています。さらに、popSizeやmaxDamageといった重要パラメータを調整しながら実験し、検証できる基盤も提供されています。
preview
多通貨エキスパートアドバイザーの開発(第27回):複数行テキスト表示コンポーネント

多通貨エキスパートアドバイザーの開発(第27回):複数行テキスト表示コンポーネント

テキストをチャート上に表示する必要がある場合は、Comment()関数を使用できます。しかし、この関数の機能には多くの制限があります。そこで本記事では、独自コンポーネントとして、複数行テキストの表示、柔軟なフォント設定、さらに、画面全体を占めるスクロール機能対応ダイアログウィンドウを作成します。
preview
Pythonを用いたIMFデータの取得

Pythonを用いたIMFデータの取得

PythonでIMFデータを取得する:マクロ経済に基づく通貨戦略に活用するためのIMF(国際通貨基金)データマイニング。マクロ経済は、一般のトレーダーおよびアルゴリズムトレーダーにどのように役立つのでしょうか。
preview
MQL5取引ツール(第12回):相関行列ダッシュボードのインタラクティブ機能の強化

MQL5取引ツール(第12回):相関行列ダッシュボードのインタラクティブ機能の強化

MQL5における相関行列ダッシュボードを強化し、パネルのドラッグ操作、最小化と最大化、ボタンや時間足に対するホバー効果、マウスイベント処理などを追加することで、ユーザー体験の向上を図ります。さらに、相関の強さに基づく銘柄の並び替え(昇順、降順)、相関値表示とp値表示の切り替え、ライトテーマとダークテーマの切り替え、動的なカラー更新も実装します。
preview
リスク管理(第4回):主要クラスメソッドの完了

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

MQL5におけるリスク管理に関する連載の第4回です。本連載では、取引戦略を保護しつつ最適化するための高度な手法を段階的に解説しています。前回までの内容で重要な基礎はすでに整っており、本記事では第3回で後回しにしていた残りの実装をすべて完結させます。具体的には、設定された利益および損失の上限に到達したかどうかを判定するための各種関数を完成させます。さらに、より高精度かつ柔軟なリスク制御を実現するための新しいイベント機構についても導入します。
preview
取引におけるニューラルネットワーク:市場異常の適応型検出(DADA)

取引におけるニューラルネットワーク:市場異常の適応型検出(DADA)

時系列データにおける異常検知のための革新的手法であるDADAフレームワークについてご紹介します。本手法は、ランダムな変動と疑わしい逸脱を区別することを可能にします。従来の方法とは異なり、DADAは柔軟性を持っており、さまざまな種類のデータに適応します。固定された圧縮レベルを用いるのではなく、複数の選択肢の中から各ケースに最も適したものを選択する点が特徴です。
preview
サンゴ礁最適化(CRO)

サンゴ礁最適化(CRO)

サンゴ礁の形成および発展過程に着想を得たメタヒューリスティクス手法であるサンゴ礁最適化(CRO, Coral Reef Optimization)アルゴリズムを包括的に解析します。このアルゴリズムは、放卵放精、体内発生、幼生定着、無性生殖、ならびに限られた礁空間を巡る競争といった、サンゴの進化過程における主要な生物学的現象をモデル化したものです。特に、本記事では改良版アルゴリズムに重点を置いて説明します。
preview
トレンドの基準:結論

トレンドの基準:結論

本記事では、実務におけるいくつかのトレンド判定基準の適用について検討します。また、それらの基準を基にしていくつかの新しい判定基準の開発も試みます。特に、市場データ解析および取引への適用効率に焦点を当てます。
preview
外国為替市場向けCAPMモデルインジケータ

外国為替市場向けCAPMモデルインジケータ

MQL5における外国為替市場向け古典的CAPMモデルの適用を扱います。本インジケータは、ヒストリカルボラティリティに基づいて期待リターンとリスクプレミアムを算出します。インジケータ値は相場の天井圏や底値圏で上昇し、資産価格決定の基本原理を反映します。リスクリワード比の変化をリアルタイムで考慮しながら、逆張り戦略および順張り戦略に活用できます。本記事では、その数学的背景と技術的な実装方法について詳しく解説します。
preview
MQL5取引ツール(第15回):Canvas/ja/ぼかし効果、影描画、滑らかなマウスホイールスクロール

MQL5取引ツール(第15回):Canvas/ja/ぼかし効果、影描画、滑らかなマウスホイールスクロール

MQL5 Canvasダッシュボードを高度な視覚効果で強化します。具体的には、フォグオーバーレイ/ja/ため/ja/ぼかしグラデーション、ヘッダー/ja/影描画、そしてより滑らかな線や曲線を実現するアンチエイリアス描画を追加します。また、チャート/ja/ズームスケールに干渉しない滑らかなマウスホイールスクロールもテキストパネルに実装し、機能面でも改良を加えます。
preview
MQL5取引ツール(第13回):グラフパネルと統計パネルを備えたCCanvasベースの価格ダッシュボードの実装

MQL5取引ツール(第13回):グラフパネルと統計パネルを備えたCCanvasベースの価格ダッシュボードの実装

MQL5においてCCanvasクラスを使用してインタラクティブなパネルを構築し、最近の価格グラフや口座統計を可視化する「CCanvasベースの価格ダッシュボード」を開発します。本システムは、背景画像、フォグ効果、グラデーション塗りつぶしにも対応しています。さらに、ドラッグ&リサイズ機能をマウスイベント処理で実装し、テーマ切り替え(ダーク/ライトモード)による動的な色変更、最小化/最大化コントロールも備え、チャート領域を効率的に管理できる設計となっています。
preview
ラリー・ウィリアムズの『市場の秘密』(第7回):Trade Day of the Week概念の実証研究

ラリー・ウィリアムズの『市場の秘密』(第7回):Trade Day of the Week概念の実証研究

ラリー・ウィリアムズのTrade Day of the Week (TDW)概念の実証研究です。時間ベースの市場バイアスを、MQL5を用いてどのように測定、検証、活用できるかを示します。曜日ごとの勝率やパフォーマンスを分析するための実践的なフレームワークを提示し、短期取引システムの改善に役立てる方法を解説します。
preview
取引におけるニューラルネットワーク:周波数領域における異常検出(CATCH)

取引におけるニューラルネットワーク:周波数領域における異常検出(CATCH)

CATCHフレームワークは、フーリエ変換と周波数パッチングを組み合わせることで、従来手法では捉えきれない市場異常を高精度に検出します。本記事では、このアプローチが金融データに潜む隠れたパターンをどのように明らかにするのかを解説します。
preview
MQL5入門(第35回):MQL5のAPIとWebRequest関数の習得(IX)

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

MetaTrader 5でユーザー操作を検出する方法、AI APIへリクエストを送信する方法、応答を抽出する方法を学び、パネルにスクロールテキストを実装します。
preview
MQL5取引ツール(第13回):グラフパネルと統計パネルを備えたCCanvasベースの価格ダッシュボードの実装

MQL5取引ツール(第13回):グラフパネルと統計パネルを備えたCCanvasベースの価格ダッシュボードの実装

MQL5においてCCanvasクラスを使用してインタラクティブなパネルを構築し、最近の価格グラフや口座統計を可視化する「CCanvasベースの価格ダッシュボード」を開発します。本システムは、背景画像、フォグ効果、グラデーション塗りつぶしにも対応しています。さらに、ドラッグ&リサイズ機能をマウスイベント処理で実装し、テーマ切り替え(ダーク/ライトモード)による動的な色変更、最小化/最大化コントロールも備え、チャート領域を効率的に管理できる設計となっています。
preview
Pythonを用いたIMFデータの取得

Pythonを用いたIMFデータの取得

PythonでIMFデータを取得する:マクロ経済に基づく通貨戦略に活用するためのIMF(国際通貨基金)データマイニング。マクロ経済は、一般のトレーダーおよびアルゴリズムトレーダーにどのように役立つのでしょうか。
preview
初級から中級まで:関数ポインタ

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

プログラミングにおいて「ポインタ」という概念について聞いたことがある方は多いと思います。しかし、MQL5でもこの種のデータを利用できることをご存じでしょうか。もちろん、これは実行時の挙動を適切に制御し、不可解な動作を回避できるよう慎重に扱う必要があります。ただし、この機能は非常に限定的な用途に向けたものであり、特定のタスクに特化しているため、MQL5におけるポインタの概念や使用方法について語られる機会はあまり多くありません。
preview
ヒルベルト=シュミット独立性基準(HSIC)

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

データ内の線形および非線形依存関係を検出するために設計されたノンパラメトリック統計検定HSIC (Hilbert-Schmidt Independence Criterion)について解説します。MQL5言語におけるHSIC計算アルゴリズムとして、厳密な置換検定とガンマ近似の2つの実装を提案します。また、特徴量と目的変数の間の非線形関係をモデル化した合成データを用いて、本手法の有効性を示します。
preview
市場シミュレーション(第18回):SQL入門(I)

市場シミュレーション(第18回):SQL入門(I)

使用するSQLプログラムがMySQLであっても、SQL Server、SQLite、OpenSQL、あるいはその他のものであっても問題ではありません。これらはすべて共通点を持っており、その共通要素がSQL言語です。たとえMySQL Workbenchを使用しない場合でも、MetaEditorやMQL5を通じてデータベースを直接操作し、MetaTrader 5上で操作することが可能です。ただしそのためにはSQLの知識が必要になります。ここでは、その基本を学習します。
preview
取引におけるニューラルネットワーク:カオス理論を時系列予測に統合する(Attraos)

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

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

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

DUETフレームワークは、時間方向およびチャネル方向のクラスタリングを組み合わせることで、時系列データに潜むパターンを抽出する新しいアプローチを提供します。時間的な変化への適応とノイズの低減を両立し、予測精度の向上を目指します。
preview
市場シミュレーション(第19回):SQL入門(II)

市場シミュレーション(第19回):SQL入門(II)

最初のSQLに関する記事でも説明したように、SQLにすでに組み込まれていることを実現するために、わざわざ時間をかけて手続きをプログラミングする意味はありません。しかし、基礎を理解していなければ、SQLを使って何かをおこなうことも、このツールが提供する機能を十分に活用することもできません。そこで今回の記事では、データベースにおける基本的な作業をどのようにおこなうかを見ていきます。
preview
一次元特異スペクトル解析

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

本記事では、特異スペクトル解析(SSA, Singular Spectrum Analysis)法の理論的および実践的側面について考察します。SSAは時系列解析の有効な手法の一つであり、時系列の複雑な構造を、トレンド、季節性(周期的)変動、ノイズなどの単純な成分へ分解して表現することを可能にします。
preview
初級から中級まで:継承

初級から中級まで:継承

間違いなく、本記事の内容を理解し、それがどのように、そしてなぜ機能するのかを把握するためには、かなりの時間を要するでしょう。というのも、ここで示されている内容はすべて、一見するとオブジェクト指向的に見えますが、実際には構造化プログラミングの原理に基づいているためです。
preview
多通貨エキスパートアドバイザーの開発(第27回):複数行テキスト表示コンポーネント

多通貨エキスパートアドバイザーの開発(第27回):複数行テキスト表示コンポーネント

テキストをチャート上に表示する必要がある場合は、Comment()関数を使用できます。しかし、この関数の機能には多くの制限があります。そこで本記事では、独自コンポーネントとして、複数行テキストの表示、柔軟なフォント設定、さらに、画面全体を占めるスクロール機能対応ダイアログウィンドウを作成します。
preview
データサイエンスとML(第48回):Transformerは取引において重要なのか

データサイエンスとML(第48回):Transformerは取引において重要なのか

ChatGPTからGemini、そしてテキスト、画像、動画生成のための数多くのAIモデル/ツールに至るまで、TransformerはAI業界に大きな衝撃を与えてきました。しかし、この技術は金融市場や取引の分野にも応用できるのでしょうか。その可能性を検討してみましょう。
preview
MQL5入門(第36回):MQL5のAPIとWebRequest関数の習得(X)

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

MQL5におけるHMAC-SHA256およびAPI署名の基本概念を紹介し、メッセージと秘密鍵を組み合わせることでリクエストを安全に認証する方法を説明します。これは、機密データを公開することなくAPI呼び出しに署名するための基盤となります。
preview
MQL5でカスタムインジケータを作成する(第6回):平滑化、色相シフト、マルチタイムフレーム対応を備えたRSI計算の拡張

MQL5でカスタムインジケータを作成する(第6回):平滑化、色相シフト、マルチタイムフレーム対応を備えたRSI計算の拡張

MQL5で多用途なRSIインジケータを構築します。このインジケータは複数のバリエーション、データソース、平滑化手法をサポートし、より高度な分析を可能にします。さらに、視覚的な色表現のための色相シフト、買われすぎ・売られすぎゾーンの動的境界、トレンドアラート用の通知機能を追加します。また、補間を伴うマルチタイムフレーム対応も実装し、異なる時間足のRSI値を補間によって滑らかに対応付けるカスタマイズ可能なRSIツールを提供します。
preview
マルコフ状態遷移行列に基づくニューラルネットワークを用いた自己学習型エキスパートアドバイザー

マルコフ状態遷移行列に基づくニューラルネットワークを用いた自己学習型エキスパートアドバイザー

マルコフ状態遷移行列に基づくニューラルネットワークを用いた自己学習型EA。本記事では、ALGLIB MQL5ライブラリで開発した多層ニューラルネットワーク(MLP)とマルコフ連鎖を組み合わせた自己学習型EAについて解説します。マルコフ連鎖とニューラルネットワークをどのように統合し、FX予測へ応用できるのでしょうか。
preview
ダイナミックマルチペアEAの形成(第6回):高頻度銘柄切り替えのための適応型スプレッド感度制御

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

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

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

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

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

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

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

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

データサイエンスとML(第48回):Transformerは取引において重要なのか

ChatGPTからGemini、そしてテキスト、画像、動画生成のための数多くのAIモデル/ツールに至るまで、TransformerはAI業界に大きな衝撃を与えてきました。しかし、この技術は金融市場や取引の分野にも応用できるのでしょうか。その可能性を検討してみましょう。
preview
MQL5でカスタムインジケータを作成する(第6回):平滑化、色相シフト、マルチタイムフレーム対応を備えたRSI計算の拡張

MQL5でカスタムインジケータを作成する(第6回):平滑化、色相シフト、マルチタイムフレーム対応を備えたRSI計算の拡張

MQL5で多用途なRSIインジケータを構築します。このインジケータは複数のバリエーション、データソース、平滑化手法をサポートし、より高度な分析を可能にします。さらに、視覚的な色表現のための色相シフト、買われすぎ・売られすぎゾーンの動的境界、トレンドアラート用の通知機能を追加します。また、補間を伴うマルチタイムフレーム対応も実装し、異なる時間足のRSI値を補間によって滑らかに対応付けるカスタマイズ可能なRSIツールを提供します。
preview
ダイナミックマルチペアEAの形成(第6回):高頻度銘柄切り替えのための適応型スプレッド感度制御

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

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

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

MetaTrader 5上で実行されるコードの実装自体は、それほど難しいものではありません。しかし、いくつか考慮すべき重要な点があります。これはシステムを正しく動作させるために必要です。ここで重要な点を1つ覚えておいてください。実際には1つのプログラムだけが動作するわけではありません。現実には、3つのプログラムを同時に実行する必要があります。それぞれのプログラムが相互に連携し、通信できるように設計して構造化することが重要です。また、それぞれが他のプログラムの処理内容を認識できる必要があります。
preview
MQL5取引ツール(第14回):アンチエイリアシングと角丸スクロールバーを備えたピクセルパーフェクトなスクロール対応テキストキャンバス

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

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

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

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