MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MetaTrader 5機械学習の設計図(第8回):パージ済み交差検証と試行枝刈りを用いたベイズ最適化によるハイパーパラメータ最適化

MetaTrader 5機械学習の設計図(第8回):パージ済み交差検証と試行枝刈りを用いたベイズ最適化によるハイパーパラメータ最適化

GridSearchCVとRandomizedSearchCVは、金融機械学習(金融ML)における本質的な制約を共有しています。それは、各試行が独立しているため、計算資源を増やしても探索そのものが賢くならないという点です。本記事では、TPE (Tree-structured Parzen Estimator)を用いるOptunaを、PurgedKFold交差検証、HyperbandPrunerによる早期終了、および学習用重みと評価用重みを分離する二重重み規約と統合する方法を紹介します。その結果として、フォールド単位で枝刈りをおこなう目的関数、モデルのハイパーパラメータと重み付けスキームを同時に最適化する提案層、金融タスク向けに調整されたプルーナー、SQLiteをバックエンドとする、再開可能なオーケストレーター、Optunaの結果をscikit-learnのcv_results_形式へ変換するコンバータの5つの要素から構成されるシステムが得られます。さらに本記事では、Timothy Mastersが示した境界についても説明します。すなわち、「統計的な目的関数では誘導的な探索が有益である一方、金融目的関数では逆に有害となる」という考え方です。
preview
MQL5標準ライブラリエクスプローラー(第8回):CFileTxtによるハイブリッド取引ジャーナルの記録

MQL5標準ライブラリエクスプローラー(第8回):CFileTxtによるハイブリッド取引ジャーナルの記録

本記事では、MQL5標準ライブラリのファイル操作クラスを活用し、Excel対応のCSVファイルを自動生成する堅牢なレポートモジュールを構築します。その過程において、手動操作とアルゴリズム起点の取引アクションを明確に区別し、信頼性が高く監査可能な取引レポートの基盤を整えます。
preview
MQL5経済指標カレンダーを用いたニュースフィルタリング(第2回):ニュースリリース中に管理ポジションを停止する

MQL5経済指標カレンダーを用いたニュースフィルタリング(第2回):ニュースリリース中に管理ポジションを停止する

第2回では、ニュースフィルタを拡張し、ニュースイベント中に既存のポジションを保護します。取引を決済する代わりに、ストップロス(SL)およびテイクプロフィット(TP)を一時的に解除し、それらの値をメモリ上へ安全に保存します。ニュースウィンドウが終了すると、ストップは決定論的に復元されます。この際、価格がすでに元の水準を超えている場合には、その値を調整するとともに、ブローカーの最小ストップ距離ルールを遵守します。その結果、エントリーロジックへ干渉せず取引構造の整合性を維持し、ボラティリティの高い状況でもEAが取引を制御できる仕組みを実現します。
preview
MQL5での量子ニューラルネットワーク(第3回):量子ビットに基づく仮想量子プロセッサ

MQL5での量子ニューラルネットワーク(第3回):量子ビットに基づく仮想量子プロセッサ

数学的アナロジーではなく、量子原理に基づく本格的な量子シミュレータを使用した取引システムの構築に焦点を当てています。このシステムでは、3つの仮想量子ビット、量子ゲート、重ね合わせの原理を使用して市場を分析します。また、MQL5で実装されたMetaTrader 5用自動売買EAとして実装されています。最大の成果は、単なるシミュレーションから、金融情報処理における実際の量子原理の利用へ移行したことです。
preview
コード、涙、そしてAlgo Forge

コード、涙、そしてAlgo Forge

プログラムコードや記事の添付ファイルを、より快適に公開・管理するための新しい方法として、MQL5 Algo Forgeへの移行について紹介します。従来のZIPアーカイブ形式でソースコードを添付する方法の代わりにリポジトリを使用することで、プロジェクトを常に最新の状態に保ち、素早く編集し、読者とよりプロフェッショナルな形で関わることができるようになります。MetaEditorインターフェースを通じて、開発したものをクラウド環境へ素早く移行するための推奨方法についても説明します。
preview
MQL5における建値機能の実装(第2回):ATRとRRRに基づく建値機構

MQL5における建値機能の実装(第2回):ATRとRRRに基づく建値機構

MQL5におけるATRおよびRRRRベースの建値機構の実装を完了し、パラメータを再入力することなく建値モードを簡単に切り替えられるクラスを新たに実装します。各建値方式の有効性を評価するため、複数のバックテストを実施し、アルゴリズム取引の観点からそれぞれのメリットとデメリットを分析します。
preview
取引におけるニューラルネットワーク:高精度分類のための効果的な特徴量抽出(最終章)

取引におけるニューラルネットワーク:高精度分類のための効果的な特徴量抽出(最終章)

Mantisフレームワークは、複雑な時系列を情報量の豊富なトークンへと変換し、リアルタイムで動作可能なインテリジェントな取引エージェントのための信頼性の高い基盤として機能します。
preview
MQL5入門(第40回):MQL5におけるファイル処理入門(II)

MQL5入門(第40回):MQL5におけるファイル処理入門(II)

MQL5で、指定した期間の口座履歴を読み取り、構造化されたレコードをファイルに書き込むことで、CSV形式の取引ジャーナルを作成します。約定数の取得、チケット番号の取得、銘柄や注文タイプの判別、そしてエントリー(ロット、時間、価格、SL/TP)および決済(時間、価格、利益、結果)データの取得方法を、動的配列を使用して解説します。その結果、分析やレポート作成に適した、整理された永続的なログを作成できます。
preview
市場シミュレーション(第13回):ソケット(VII)

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

xlwingsなど、Excelへの直接的な読み書きを可能にするパッケージを用いて何かを開発する場合には、すべてのプログラム、関数、または手続きは実行され、その処理を完了すると同時に終了するという点に注意する必要があります。どれだけ工夫をしても、それらを継続的なループ処理として動作させ続けることはできません。
preview
MQL5入門(第42回):MQL5におけるファイル処理入門(IV)

MQL5入門(第42回):MQL5におけるファイル処理入門(IV)

CSV形式の取引履歴を読み込み、Profit($)の値と総取引数を抽出し、累積残高推移を計算するMQL5インジケータの作成方法を紹介します。算出した累積残高曲線は、インジケータ専用のサブウィンドウにプロットし、Y軸は値の範囲に応じて自動的にスケーリングされます。また、表示位置を分かりやすくするために、水平軸と垂直軸も描画します。インジケータはタイマーによって定期的に更新され、新しい取引が追加された場合にのみ再描画します。さらに、オプションとして各取引の利益または損失を数値ラベルとして表示できるため、パフォーマンスやドローダウンをチャート上で直接確認・分析できます。
preview
MQL5における切断ニュートン共役勾配(TNC)アルゴリズムの実装

MQL5における切断ニュートン共役勾配(TNC)アルゴリズムの実装

MQL5でボックス制約付き切断ニュートン共役勾配法(TNC, Truncated Newton Conjugate-Gradient)最適化アルゴリズムを実装し、その中核となる構成要素であるスケーリング、境界への射影、ラインサーチ、および有限差分によるヘッセ行列と任意のベクトルとの積の計算について詳しく説明します。また、解析的微分と数値微分の両方に対応した目的関数ラッパーを提供し、ローゼンブロックベンチマークを用いてソルバーを検証します。さらに、ロジスティック回帰の実装例を通じて、TNCをL-BFGSの代替ソルバーとして利用する方法を紹介します。
preview
MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出

MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出

市場構造をMQL5上でグラフとして表現し、スイングハイとスイングローを特徴量を持つノードとして扱い、それらをエッジで接続する方法を紹介します。また、潜在的な流動性ゾーンをスコアリングするためのGNN(Graph Neural Network:グラフニューラルネットワーク)の学習、モデルのONNX形式へのエクスポート、さらにエキスパートアドバイザー(EA)内でリアルタイム推論を実行する方法についても解説します。読者は、データパイプラインの構築、モデルの統合、チャート上への流動性ゾーンの可視化、そしてそのシグナルをルールベースの売買執行へ活用する方法を学びます。
preview
市場シミュレーション(第24回):SQL入門(VII)

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

前回の記事では、SQLに必要な導入を完了しました。SQLについて何を説明したいのかは、十分に明確にできたと思います。これは、市場のリプレイ/シミュレーションシステムの構築を見に来る人であれば誰でも、そこで何が起きているのかを少なくともある程度イメージできるようにするためのものでした。重要な点は、SQLが完全に処理できることをわざわざプログラミングする意味はないということです。
preview
MQL5取引ツールのアクセシビリティ課題を克服する(第1回):MQL5インジケータに状況対応型音声アラートを追加する方法

MQL5取引ツールのアクセシビリティ課題を克服する(第1回):MQL5インジケータに状況対応型音声アラートを追加する方法

本記事では、標準的なターミナルアラートの枠を超え、MQL5のリソース管理機能を活用して状況に応じた音声フィードバックを実現する、アクセシビリティを重視した拡張手法を紹介します。一般的な通知音ではなく、「何が起こったのか」と「なぜ起こったのか」を音声で伝えることで、トレーダーは視覚情報だけに頼ることなく市場イベントを把握できます。このアプローチは、特に視覚障害のあるトレーダーにとって有用ですが、ハンズフリーで操作したい多忙なユーザーやマルチタスク環境で取引を行うユーザーにもメリットがあります。
preview
取引におけるニューラルネットワーク:特定データへの依存なしに時系列を汎化する(Mamba4Cast)

取引におけるニューラルネットワーク:特定データへの依存なしに時系列を汎化する(Mamba4Cast)

Mamba4Castフレームワークを紹介するとともに、その主要コンポーネントの1つであるタイムスタンプに基づく位置エンコーディングについて詳しく解説します。データのカレンダー構造を考慮して時間埋め込みがどのように生成されるのかを示します。
preview
MQL5での量子ニューラルネットワーク(第1回):インクルードファイルの作成

MQL5での量子ニューラルネットワーク(第1回):インクルードファイルの作成

量子原理と人工知能に基づく取引システムを構築するための新しいアプローチを紹介しています。著者は、量子力学と最新のAIアーキテクチャを組み合わせることで、従来の機械学習の枠を超える独自のニューラルネットワークの開発について説明しています。
preview
自動売買ロボット向けリスクマネージャー(第1回):EA向けリスク管理用インクルードファイル

自動売買ロボット向けリスクマネージャー(第1回):EA向けリスク管理用インクルードファイル

トレードには、高いレベルのリスク管理と、そのルールを厳格に守る規律が求められます。本記事では、トレーダーが失敗する主な原因を分析し、MQL5プラットフォーム向けのCEnhancedRiskManagerクラスという技術的ソリューションを提示します。また、アグレッシブなグリッドEAを使った実践的なテストもおこないます。
preview
MQL5取引ツール(第24回):3Dカーブ、パンモード、ViewCubeナビゲーションによる奥行き感の向上

MQL5取引ツール(第24回):3Dカーブ、パンモード、ViewCubeナビゲーションによる奥行き感の向上

MQL5の3D二項分布グラフ表示ツールを拡張し、確率質量関数(PMF)の奥行き感を向上させるセグメント化された3Dカーブを追加するとともに、注視点を移動できるパンモードと、素早く視点を切り替えられるインタラクティブなViewCubeを実装します。さらに、ViewCube内の面・辺・頂点に対応するクリック可能なサブゾーンを追加し、標準ビューへのカメラ遷移をアニメーションでおこなえるようにします。これらの機能を、2D/3D表示の切り替え、リアルタイム更新、各種カスタマイズ設定と組み合わせることで、トレードにおける確率分布分析を、より直感的で没入感のある分析環境を実現します。
preview
初級から中級まで:オブジェクトイベント(I)

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

チャート上のオブジェクトに何らかの変更が発生した際に、MetaTrader 5が生成する可能性のある6種類のイベントのうち、3つについて説明します。これらのイベントは、ユーザー操作という観点から非常に有用です。なぜなら、これらのイベントを理解していなければ、特定の目的でオブジェクトを管理しようとする際に、チャートの特定の構成を維持するために、より多くの作業を自分でおこなわなければならなくなるからです。
preview
MQL5入門(第41回)MQL5におけるファイル処理入門(III)

MQL5入門(第41回)MQL5におけるファイル処理入門(III)

MQL5でCSVファイルを読み込み、取引データを動的配列に整理する方法を学びます。ファイル内の要素数を数える方法、すべてのデータを1つの配列に格納する方法、さらに各列を専用の配列へ分割する方法をステップごとに解説します。これにより、高度な分析やトレードパフォーマンスの可視化へ進むための基礎を構築できます。
preview
取引規律をコードに組み込む(第3回):MQL5でホワイトリストを用いて銘柄単位の取引境界を強制適用する

取引規律をコードに組み込む(第3回):MQL5でホワイトリストを用いて銘柄単位の取引境界を強制適用する

取引対象を承認済み銘柄のみに制限するMQL5フレームワークについて解説します。このソリューションは、共有ライブラリ、設定用ダッシュボード、そして取引制限を強制適用するエキスパートアドバイザー(EA)で構成されています。EAは各取引の対象銘柄がホワイトリストに含まれているかを検証し、許可されていない銘柄で発生した取引試行をブロックするとともに、その履歴をログへ記録します。本記事では、完全に動作するコード例、構造設計上の判断理由、さらに銘柄フィルタリングの信頼性、マーケットエクスポージャーの制御、ルール強制適用状況の透明性を確認するための検証テストについて説明します。
preview
共和分株式による統計的裁定取引(最終回):特化型データベースを用いたデータ分析

共和分株式による統計的裁定取引(最終回):特化型データベースを用いたデータ分析

統計的裁定取引のデータ処理において、SQLite (OLTP)とDuckDB (OLAP)を組み合わせて活用する方法を紹介します。DuckDBのカラム指向エンジン、ASOF JOIN、配列関数を利用することで、気配値と約定の時点対応付けやRWEC (Rolling Windows Eigenvector Comparison)などの中核処理を高速化できます。実際の測定では、入力データが大きくなるにつれて、SQLiteと比較して2倍から23倍の高速化が確認されました。これにより、クエリはよりシンプルになり、分析処理も高速化される一方で、実際の取引執行は引き続きSQLiteに任せることができます。
preview
初級から中級まで:オブジェクト(IV)

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

これは、これまでの記事の中でも、おそらくいちばん楽しい内容でしょう。なぜなら、ここではMetaTrader 5にすでに存在しているオブジェクトを変更し、本来プラットフォーム上には存在しない別のオブジェクトを作成するからです。もちろん、これから見ていく内容は少し無謀に思えるかもしれません。しかし、実際に動作し、非常に興味深い用途に役立ちます。
preview
MQL5での量子ニューラルネットワーク(第2回):ALGLIBのマルコフ行列を用いたバックプロパゲーション学習

MQL5での量子ニューラルネットワーク(第2回):ALGLIBのマルコフ行列を用いたバックプロパゲーション学習

量子力学の原理と最新の機械学習手法を組み合わせた、アルゴリズム取引向けの革新的な量子ニューラルネットワークアーキテクチャを紹介します。このシステムには、量子的な効果(共鳴、干渉、デコヒーレンス)、異なる時間スケールに対応した多層記憶、ALGLIBライブラリを用いたマルコフ連鎖、そして適応型パラメータ制御が組み込まれています。すべてMQL5で実装されており、組み込みの行列・ベクトル型を使用することで、MetaTrader 5でのでの実装ハードルを下げています。
preview
MQL5入門(第39回):MQL5におけるファイル処理入門(I)

MQL5入門(第39回):MQL5におけるファイル処理入門(I)

本記事では、MQL5におけるファイル処理を、実践的なプロジェクトベースのワークフローを用いて紹介します。FileSelectDialogを使用してCSVファイルを選択または作成し、FileOpenでそれを開き、口座名、残高、ログイン、期間、最終更新日時などの構造化されたヘッダーを書き込みます。その結果として、再利用可能な取引ジャーナルと、MetaTrader 5でファイルを安全に扱うための基盤が得られます。
preview
科学者コミュニティ最適化 (CoSO):実装編

科学者コミュニティ最適化 (CoSO):実装編

科学コミュニティを題材にした最適化手法の話題を引き続き取り上げます。CoSOは完成されたソリューションとして捉えるべきではなく、将来性のある研究プラットフォームとして考えるべきです。適切に発展させることで、CoSOは、適応性と変化への耐性が重要であり、計算時間がそれほど重要視されないタスクにおいて、その有用性を発揮できる可能性があります。
preview
MQL5取引ツール(第19回):チャート描画用のインタラクティブなツールパレットの構築

MQL5取引ツール(第19回):チャート描画用のインタラクティブなツールパレットの構築

ドラッグによる移動やリサイズが可能なパネル、テーマ切り替え機能を備えた、チャート描画用のインタラクティブなツールパレットをMQL5で構築します。また、十字カーソル、トレンドライン、ライン、矩形、フィボナッチ、テキスト、矢印などのツール用ボタンを追加し、マウスイベントを処理してツールの有効化や操作ガイドを実現します。このシステムは、カスタマイズ可能なUIを通じてリアルタイムなチャート操作をサポートし、トレード分析をより効率的におこなえるようにします。
preview
市場シミュレーション:MQL5におけるSQL入門(IV)

市場シミュレーション:MQL5におけるSQL入門(IV)

多くの人はSQLを過小評価しがちで、あるいはSQLが実際にどのように動作するのかを十分に理解していないため、まったく使わないことさえあります。SQLデータベースに対してクエリを実行する場合、常に汎用的な答えを求めているわけではありません。場合によっては、非常に具体的で実用的な答えが必要になります。もしデータベースが適切な構造とデータモデルによって設計されていれば、ほぼあらゆる種類の情報を統合することが可能です。
preview
MQL5取引ツール(第21回):回帰グラフにサイバーパンクテーマを追加する

MQL5取引ツール(第21回):回帰グラフにサイバーパンクテーマを追加する

MQL5の回帰グラフ描画ツールを拡張し、ネオングロー、アニメーション、ホログラフィックエフェクトを備えたサイバーパンクテーマを追加することで、より没入感のある可視化を実現します。テーマの切り替え機能、星が瞬く動的な背景、発光する枠線、ネオンカラーのポイントやラインを実装するとともに、従来の標準テーマとの互換性も維持します。このデュアルテーマシステムにより、リアルタイム更新やインタラクティブな操作に対応しながら、未来的なデザインでペア分析をより魅力的に行えるようになります。
preview
オプションを使わないオプション取引(第2回):実取引への適用

オプションを使わないオプション取引(第2回):実取引への適用

シンプルなオプション戦略と、それらをMQL5で実装する方法について説明します。まず基本的なEAを開発し、それを徐々に改良して、より複雑なものへ発展させていきます。
preview
取引におけるニューラルネットワーク:周波数領域での異常検知(最終回)

取引におけるニューラルネットワーク:周波数領域での異常検知(最終回)

フーリエ変換と周波数パッチングの仕組みを組み合わせ、市場の異常を高精度に検出するCATCHフレームワークの実装を続けます。提案されたアプローチに対する独自の実装を完成させるとともに、新しいモデルを実際の市場履歴データで検証します。
preview
競争学習アルゴリズム(CLA)

競争学習アルゴリズム(CLA)

教育プロセスのシミュレーションに基づく新しいメタヒューリスティック最適化手法である競争学習アルゴリズム(CLA)を紹介します。このアルゴリズムでは、解の集団を生徒と教師からなるクラスに編成し、エージェントが3つのメカニズムを通じて学習します。それは、クラス内で最も優れた生徒に従うこと、個人的な経験を活用すること、そしてクラス間で知識を共有することです。
preview
取引におけるニューラルネットワーク:適応型エージェント行動のための階層的スキル発見(最終章)

取引におけるニューラルネットワーク:適応型エージェント行動のための階層的スキル発見(最終章)

アルゴリズム取引への適用を目的としたHiSSDフレームワークの実装について解説します。スキル階層と適応的なアーキテクチャを活用して、安定的に機能する取引戦略を構築する方法を説明します。
preview
MetaTrader 5における低頻度定量戦略(第1回):OLAP対応データストアの構築

MetaTrader 5における低頻度定量戦略(第1回):OLAP対応データストアの構築

Parquetストレージ、Hive形式のパーティション、そしてDuckDBを基盤とした、定量分析のための実用的なデータパイプラインについて説明します。選択したSQLiteテーブルをParquetへ移行する方法、市場データをデータソース、銘柄、時間足、日付によって構造化する方法、そしてSQLウィンドウ関数を使用してそれをクエリする方法について詳しく説明します。ゴールデンクロスの例では、銘柄横断的なフォワードリターン評価を示します。付属するPythonスクリプトでは、データのダウンロード、変換、実行を処理します。
preview
取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(DA-CG-LSTM)

取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(DA-CG-LSTM)

時系列分析および予測に新たな手法を提供するDA-CG-LSTMアルゴリズムを紹介します。革新的なアテンション機構とモデルの柔軟性を活用することで、予測精度をどのように向上できるのかを解説します。
preview
機械学習におけるガウス過程(第1回):MQL5における分類モデル

機械学習におけるガウス過程(第1回):MQL5における分類モデル

ガウス過程の分類モデルを扱います。まず、その理論的原理について学び、続いてMQL5におけるGPライブラリの実装へと進みます。
preview
市場シミュレーション:ポジション表示(V)

市場シミュレーション:ポジション表示(V)

前回の記事で示した内容だけを見ると、これらはすべて一見すると簡単なことのように思えるかもしれません。しかし実際には、まだいくつもの問題が残っており、完了しなければならない作業も数多くあります。読者の皆さんは、すべてが簡単で分かりやすいものだと思ってしまうかもしれません。経験がないために、目の前に提示されたものをそのまま受け入れてしまうこともあるでしょう。しかし、それは避けるべき間違いです。さらに悪いのは、自分が実際に何を使っているのかを十分に理解しないまま、何かを利用しようとすることです。初心者は、しばしばコピー&ペーストの段階を経験します。もし、いつまでもその段階にとどまりたくないのであれば、いくつかのツールの使い方を学ぶべきです。プログラマーが最も頻繁に使用するツールの一つがドキュメントです。二つ目は、ログファイルを活用したテストです。ここでは、その方法を見ていきます。
preview
取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(最終回)

取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(最終回)

時系列解析および予測のための革新的な手法を提供するDA-CG-LSTMフレームワークの実装を引き続き進めます。CG-LSTMとデュアルアテンション(dual attention)機構を組み合わせることで、データに含まれる長期的および短期的な依存関係をより高い精度で検出できるため、金融市場の分析に特に有効です。
preview
取引におけるニューラルネットワーク:インテリジェントな予測パイプライン(スパース混合エキスパート)

取引におけるニューラルネットワーク:インテリジェントな予測パイプライン(スパース混合エキスパート)

OpenCLコンピューティング環境で、時系列データ向けのスパース混合エキスパートブロックを実装する実践的な方法を見ていきましょう。 この記事では、マスク付きマルチウィンドウ畳み込みの仕組みを段階的に解説するとともに、複数の情報ストリームが存在する場合に、勾配ベースの学習がどのように構成されるのかについても説明します。
preview
取引におけるニューラルネットワーク:高精度分類のための効果的な特徴量抽出(Mantis)

取引におけるニューラルネットワーク:高精度分類のための効果的な特徴量抽出(Mantis)

Transformerアーキテクチャを基盤とし、対照学習による事前学習とハイブリッドアテンションを備えた、軽量な時系列分類向け基盤モデル、Mantisを紹介します。最高水準の精度とスケーラビリティを実現します。