MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
機械学習におけるガウス過程(第2回):MQL5での分類モデルの実装とテスト

機械学習におけるガウス過程(第2回):MQL5での分類モデルの実装とテスト

MQL5におけるガウス過程ライブラリの主要なインターフェースであるIKernel、ILikelihood、IInferenceの実装について見ていきます。また、合成データを使用してその動作を確認し、分類用および回帰用のインジケータを実装します。これらのインジケータでは、新しいバーが追加されるたびにモデルを再学習するオンラインモードでの動作を確認します。
preview
人工原子アルゴリズム(A3)

人工原子アルゴリズム(A3)

化学プロセスから着想を得たメタヒューリスティック最適化手法であるA3アルゴリズムをMQL5で実装します。調整可能なパラメータは2つだけであり、さらに小規模な集団を使用することで、十分な解の品質を維持しながら、高速に動作することを実現しています。
preview
市場シミュレーション:ポジション表示(IV)

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

ここからは、これまで完全に独立していたさまざまなコンポーネントやアプリケーションを、互いに連携させていきます。Chart Trade、マウスインジケータ、そしてエキスパートアドバイザー(EA)はすでに相互に接続されていましたが、これまでは、取引サーバー上で保有されているポジションをチャート上に直接表示する方法がありませんでした。特に、クロスオーダー方式を使用して管理されることの多いポジションを表示できるようになることで、ここからさまざまなアイデアや今後の実装につなげていくことが可能になります。まだこれらのコンポーネントを実際に動かし始めたばかりではありますが、今後の開発に向けた方向性はすでに見えてきています。
preview
MQL5での量子ニューラルネットワーク(第3回):量子ビットに基づく仮想量子プロセッサ

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

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

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

MQL5におけるATRおよびRRRRベースの建値機構の実装を完了し、パラメータを再入力することなく建値モードを簡単に切り替えられるクラスを新たに実装します。各建値方式の有効性を評価するため、複数のバックテストを実施し、アルゴリズム取引の観点からそれぞれのメリットとデメリットを分析します。
preview
初級から中級まで:FileSaveとFileLoad

初級から中級まで:FileSaveとFileLoad

FileSaveおよびFileLoadのライブラリ関数を使用するいくつかの方法について見ていきます。特定の状況では、いくつかの制限や扱いにくさがあるため、これらの関数は用途が限られていると考える人も多いでしょう。しかし、この2つの関数がどのように動作するのかを正しく理解しておけば、さまざまな場面で多くの手間を省くことができます。また、これらはログファイルを扱うための優れた方法でもあります。
preview
科学者コミュニティ最適化 (CoSO):実装編

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

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

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

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

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

シンプルなオプション戦略と、それらをMQL5で実装する方法について説明します。まず基本的なEAを開発し、それを徐々に改良して、より複雑なものへ発展させていきます。
preview
科学者コミュニティ最適化 (CoSO):理論編

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

メタヒューリスティック手法における取引戦略の効果的な最適化の秘訣。Community of Scientists Optimization (CoSO)は、科学者コミュニティの仕組みに着想を得た、集団ベースの新しい最適化アルゴリズムです。従来の自然界を模倣したメタファーとは異なり、CoSOでは、人間による科学活動の特徴的な側面、すなわち、学術誌への研究成果の発表、研究助成金をめぐる競争、研究チームの形成などをモデル化します。
preview
機械学習におけるガウス過程(第1回):MQL5における分類モデル

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

ガウス過程の分類モデルを扱います。まず、その理論的原理について学び、続いてMQL5におけるGPライブラリの実装へと進みます。
preview
取引におけるニューラルネットワーク:高精度分類のための効果的な特徴量抽出(最終章)

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

Mantisフレームワークは、複雑な時系列を情報量の豊富なトークンへと変換し、リアルタイムで動作可能なインテリジェントな取引エージェントのための信頼性の高い基盤として機能します。
preview
最強のML搭載取引プラットフォームが生まれるまで:アーカイブ、フォーラム、リリースからたどるMQLとMetaTraderの進化

最強のML搭載取引プラットフォームが生まれるまで:アーカイブ、フォーラム、リリースからたどるMQLとMetaTraderの進化

MQLの技術史を振り返り、機能が限定されていた初期のMQLおよびMQL II言語から、手続き型のMQL4、そしてオブジェクト指向のMQL5へと至る進化をたどります。MQL5では、ネイティブコンパイル、豊富なAPI、本格的な開発環境が実現しました。本記事では、MQLの主要な機能に加え、Python、OpenCL、ONNX、OpenBLAS、データベース、DirectX、エージェント型AIアシスタント(Agentic AI Assistant)、そしてModel Context Protocol (MCP)との統合について紹介します。MCPは、AIシステムとターミナル、MetaEditor、市場データ、取引操作、開発ツールを接続します。さらに、MetaQuotesとMetaTraderの起源に関するアーカイブ資料、MQL4.COMおよびMQL5.COMの開設、各種選手権、Algo Forge、そしてこれらがエコシステムに与えた影響について考察します。
preview
初級から中級まで:MetaTrader 5のサンドボックスにおけるファイル操作

初級から中級まで:MetaTrader 5のサンドボックスにおけるファイル操作

サンドボックスとは何かご存じでしょうか。また、サンドボックスをどのように扱うのかご存じでしょうか。もし、これらの質問のいずれかに「いいえ」と答えるのであれば、サンドボックスの基本的な動作原理を理解するために、この記事を読んでください。また、MetaTrader 5が内部データの整合性を保護するためにサンドボックスを使用している理由についても理解できるでしょう。ここで紹介する内容は、純粋に教育目的です。いかなる場合においても、本稿で扱うアプリケーションを、ここで説明する概念を学習すること以外の目的を持つ完成品として扱わないでください。
preview
競争学習アルゴリズム(CLA)

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

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

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

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

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

以前の記事では、ZOrderプロパティに値を設定する必要がある場合があることについて説明しました。しかし、なぜでしょうか。チャートにオブジェクトを追加する多くのコードが、このプロパティを使用していない、より正確に言えば、このプロパティに値を定義していないからです。すべてのプログラマーが何をすべきか、あるいはすべきでないか、また、どのようにコードを書くべきか、あるいは書くべきでないかを私が決めるために、ここにいるわけではありません。私は、読者の皆さん、そしてこれらの処理が内部でどのように動作しているのかを本当に理解したいすべての方々に対して、実際に舞台裏で何が起こっているのかを示すために、ここにいます。
preview
MQL5での量子ニューラルネットワーク(第1回):インクルードファイルの作成

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

量子原理と人工知能に基づく取引システムを構築するための新しいアプローチを紹介しています。著者は、量子力学と最新のAIアーキテクチャを組み合わせることで、従来の機械学習の枠を超える独自のニューラルネットワークの開発について説明しています。
preview
取引におけるニューラルネットワーク:データ固有の依存性なしに時系列を一般化する(コアモデルモジュール)

取引におけるニューラルネットワーク:データ固有の依存性なしに時系列を一般化する(コアモデルモジュール)

Mamba4Castフレームワークについての理解をさらに深めていきます。今回は、提案されたアプローチの実践的な実装について詳しく見ていきます。Mamba4Castは、新しい時系列データごとに長時間の事前適応を目的として設計されたものではなく、すぐに導入して使用することを目的として設計されています。ゼロショット予測という概念により、モデルは追加学習やハイパーパラメータの調整をおこなうことなく、実世界のデータに対して高品質な予測を生成できます。
preview
市場シミュレーション(第24回):ポジション表示(II)

市場シミュレーション(第24回):ポジション表示(II)

取引サーバー上の未決済ポジションを、インジケータを使って、できるだけシンプルかつ実用的な方法で追跡する方法を紹介します。これは、必ずしもすべてをエキスパートアドバイザー(EA)に移す必要はないことを示すため、段階を追って説明していきます。皆さんの多くは、何らかの理由で、このような処理をEAでおこなうことに慣れているかもしれません。しかし、実際には、そのやり方にはそれほど十分な根拠があるわけではありません。なぜなら、この実装を発展させていくにつれて、この目的のためにさまざまな種類のインジケータを作成したり、実装したりできることが明らかになるからです。
preview
初級から中級まで:オブジェクトイベント(IV)

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

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

Extremal Optimization (EO)アルゴリズム

極値最適化(EO, Extremal Optimization)アルゴリズムについて説明します。EOは、Bak-Sneppenの自己組織化臨界モデルに着想を得た最適化手法であり、システム内の最も悪い要素を選んで置き換えることで進化を促すという考え方に基づいています。EOの改良版である集団型アルゴリズムでは、理論的な原則から離れ、実用的な効率性を重視することで、強力な計算ツールが開発されています。
preview
市場シミュレーション(第23回):ポジション表示(I)

市場シミュレーション(第23回):ポジション表示(I)

これから扱う内容は、理論や概念の面で、これまでよりもはるかに複雑になります。できる限り内容を分かりやすく説明していきたいと思います。プログラミングそのものは、非常に単純で分かりやすいものです。しかし、その背後にある理論を理解していなければ、ここで紹介するものとは異なるタスクに対して、リプレイ/シミュレーションシステムを改良したり応用したりするための実践的な基盤を得ることはできません。私が提示するコードを単にコンパイルして利用するだけになってほしくはありません。学び、理解し、可能であれば、さらに優れたものを自分自身で作成できるようになってほしいのです。
preview
初級から中級まで:オブジェクトイベント(III)

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

本記事では、次回の記事で扱う内容の土台を準備します。また、OBJ_LABELオブジェクトを、編集と移動の両方ができる完全にインタラクティブなものにする方法についても見ていきます。つまり、OBJ_LABELオブジェクトのテキストと位置の両方を、オブジェクトのプロパティダイアログを開くことなく変更できるようにします。
preview
MQL5カスタムシンボル:3Dバー用シンボルの作成

MQL5カスタムシンボル:3Dバー用シンボルの作成

革新的なインジケータ「3DBarCustomSymbol.mq5」の作成について詳しく解説しています。このインジケータは、MetaTrader 5上でカスタムシンボルを生成し、価格・時間・出来高・ボラティリティを単一の三次元表現に統合します。さらに、その数学的基礎、システムアーキテクチャ、実装における実践的な側面、および取引戦略への応用について考察します。
preview
因果推論とアルゴリズム取引における回帰モデルの活用

因果推論とアルゴリズム取引における回帰モデルの活用

アルゴリズム取引における回帰モデルの活用可能性について考察します。回帰モデルは、二値分類とは異なり、予測される価格変動を定量的に表現できるため、より柔軟な取引戦略を構築できます。
preview
市場取引アルゴリズム(EMA)

市場取引アルゴリズム(EMA)

本稿では、株式市場のトレーダーの行動に着想を得た市場取引アルゴリズム(EMA, Exchange Market Algorithm)について詳しく分析します。このアルゴリズムは株式取引をシミュレーションするもので、市場参加者はそれぞれ異なる成功度を持ち、利益を最大化するためにさまざまな戦略を使用します。
preview
多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加

多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加

複数の戦略を並列で実行する場合、定期的にすべての未決済ポジションを決済し、戦略を最初から再開したい場合があります。しかし、現行のコードでは、この動作は手動でしか実現できません。そこで、この処理を自動化してみましょう。
preview
初級から中級まで:オブジェクトイベント(I)

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

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

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

多くの人はSQLを過小評価しがちで、あるいはSQLが実際にどのように動作するのかを十分に理解していないため、まったく使わないことさえあります。SQLデータベースに対してクエリを実行する場合、常に汎用的な答えを求めているわけではありません。場合によっては、非常に具体的で実用的な答えが必要になります。もしデータベースが適切な構造とデータモデルによって設計されていれば、ほぼあらゆる種類の情報を統合することが可能です。
preview
MQL5におけるタイムギャップ分析(第2回):時間経過に伴う流動性分布のヒートマップ作成

MQL5におけるタイムギャップ分析(第2回):時間経過に伴う流動性分布のヒートマップ作成

MetaTrader 5で、時間に対する価格分布を視覚化するヒートマップインジケータを作成する方法についての詳細なガイドです。時間密度分析の数学的な基礎に基づき、価格帯ごとの滞在時間をヒートマップとして可視化するMetaTrader 5向けインジケータの作成方法を詳しく解説します。このインジケータでは、各価格レベルの滞在時間を赤(滞在時間が最小)から青(滞在時間が最大)までの色で表現します。
preview
時間帯別・曜日別・月の日付別の季節性インジケータ

時間帯別・曜日別・月の日付別の季節性インジケータ

金融市場における繰り返し発生する価格パターンを分析するためのツールの開発方法について説明します。分析対象となるのは、月の日付(1日~31日)、曜日(月曜日~日曜日)、または1日の時間帯(0時~23時)です。このインジケータは過去のデータを分析し、それぞれの期間における平均リターンを計算します。そして、その結果をヒストグラムと予測表示によって可視化します。また、季節性タイプ、分析するバー数、パーセント表示または絶対値表示、チャートカラーなど、ユーザーが変更可能なパラメータも備えています。
preview
初級から中級まで:オブジェクト(IV)

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

これは、これまでの記事の中でも、おそらくいちばん楽しい内容でしょう。なぜなら、ここではMetaTrader 5にすでに存在しているオブジェクトを変更し、本来プラットフォーム上には存在しない別のオブジェクトを作成するからです。もちろん、これから見ていく内容は少し無謀に思えるかもしれません。しかし、実際に動作し、非常に興味深い用途に役立ちます。
preview
初級から中級まで:オブジェクト(III)

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

本日の記事では、特にMQL5でプログラミングを学び始めたばかりの方に向けて、非常に魅力的で興味深いインタラクションシステムの実装方法を紹介します。ここで取り上げる内容自体に、根本的に新しいものがあるわけではありません。しかし、本記事では私なりのアプローチで解説を進めるため、内容をより理解しやすく感じていただけると思います。実践的で興味を持って取り組める題材を通して、構造化アプローチを用いたプログラム開発の流れを実際に確認していきます。
preview
初級から中級まで:マウスイベントの処理

初級から中級まで:マウスイベントの処理

本記事は、コードを眺めて学習するだけでは、そこでおこなわれている処理を十分に理解することが難しい内容に分類されます。実際には、実行可能なアプリケーションを作成し、それを任意のチャート上で動作させる必要があります。そうすることで、キーボードとマウスを組み合わせて特定の要素を作成する方法など、コードを読むだけでは非常に理解しにくい細かな点まで把握できるようになります。
preview
ニューラルネットワークの実践:習うより慣れよ

ニューラルネットワークの実践:習うより慣れよ

ニューロンをわずかに特化させる単純なコード変更によって、学習段階を大幅に高速化できる方法について見ていきます。結局のところ、後ほど詳しく説明するように、ニューロンやニューラルネットワークが一度学習を完了すると、その後に実行する処理ははるかに高速になります。また、実際には存在しているにもかかわらず、ほとんど語られることのない問題についても取り上げます。
preview
取引におけるニューラルネットワーク:特定データへの依存なしに時系列を汎化する(Mamba4Cast)

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

Mamba4Castフレームワークを紹介するとともに、その主要コンポーネントの1つであるタイムスタンプに基づく位置エンコーディングについて詳しく解説します。データのカレンダー構造を考慮して時間埋め込みがどのように生成されるのかを示します。
preview
取引におけるニューラルネットワーク:適応型モード分解を用いた時系列予測(最終回)

取引におけるニューラルネットワーク:適応型モード分解を用いた時系列予測(最終回)

アルゴリズム取引におけるACEFormerフレームワークの適応およびMQL5を用いた実用的な実装について説明します。特に、主要なアーキテクチャ設計の判断、学習プロセスの特徴、そして実データを用いたモデル検証結果について紹介します。
preview
取引におけるニューラルネットワーク:適応型モード分解を用いた時系列予測(ACEFormer)

取引におけるニューラルネットワーク:適応型モード分解を用いた時系列予測(ACEFormer)

ACEFormerアーキテクチャについて紹介します。これは、Probabilistic Attention(確率的注意)機構の有効性と、適応型時系列分解を組み合わせた最新のソリューションです。本記事は、金融市場において計算性能と予測精度のバランスを求める方にとって有用な内容となっています。
preview
取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(最終回)

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

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