MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
リプレイシステムの開発(第59回):新たな未来

リプレイシステムの開発(第59回):新たな未来

さまざまなアイデアを適切に理解することで、より少ない労力でより多くのことを実現できます。この記事では、サービスがチャートと対話する前にテンプレートを構成する必要がある理由について説明します。また、マウスポインタを改良し、より多くの機能を持たせることについても考察します。
preview
Connexusのクライアント(第7回):クライアント層の追加

Connexusのクライアント(第7回):クライアント層の追加

この記事では、Connexusライブラリの開発を続けます。この章では、リクエストの送信と注文の受信を担当するCHttpClientクラスを構築します。また、モックの概念についても取り上げ、ライブラリをWebRequest関数から切り離すことで、ユーザーの柔軟性を高めます。
preview
三角波とのこぎり波:トレーダー向け分析ツール

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

波動分析は、テクニカル分析で用いられる手法の一つです。本記事では、あまり一般的ではない2種類の波形である、三角波とのこぎり波に焦点を当てます。これらの波形は、市場価格分析のために設計された多くのテクニカル指標の基盤となっています。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第10回):行列分解

MQL5で自己最適化エキスパートアドバイザーを構築する(第10回):行列分解

行列分解は、データの特性を理解するために用いられる数学的手法です。行と列で整理された大規模な市場データに行列分解を適用することで、市場のパターンや特性を明らかにすることができます。行列分解は非常に強力なツールであり、本記事ではMetaTrader 5のターミナル内でMQL5 APIを活用し、市場データをより深く分析する方法を紹介します。
preview
MQL 標準ライブラリエクスプローラー(第1回):CTrade、CiMA、CiATRによる紹介

MQL 標準ライブラリエクスプローラー(第1回):CTrade、CiMA、CiATRによる紹介

MQL5標準ライブラリは、MetaTrader 5における取引アルゴリズム開発において重要な役割を果たします。本連載では、このライブラリを使いこなし、MetaTrader 5用の効率的な取引ツールをより簡単に作成する方法を身につけることを目指します。これには、カスタムのエキスパートアドバイザー(EA)、インジケーター、その他のユーティリティが含まれます。本日はその第一歩として、CTrade、CiMA、そしてCiATR クラスを用いたトレンドフォロー型のEAを開発します。これは初心者、熟練者を問わず、すべての開発者にとって非常に重要なテーマです。ぜひ本ディスカッションにご参加いただき、理解を深めてください。
preview
知っておくべきMQL5ウィザードのテクニック(第47回):時間差分を用いた強化学習

知っておくべきMQL5ウィザードのテクニック(第47回):時間差分を用いた強化学習

時間差分学習は、エージェントの訓練中に予測された報酬と実際の報酬の差に基づいてQ値を更新する強化学習のアルゴリズムの一つです。特に、状態と行動のペアにこだわらずにQ値を更新する点に特徴があります。したがって、これまでの記事と同様に、ウィザードで作成したエキスパートアドバイザー(EA)での適用方法を検討していきます。
preview
金融モデリングにおける合成データのための敵対的生成ネットワーク(GAN)(第2回):テスト用の合成シンボルの作成

金融モデリングにおける合成データのための敵対的生成ネットワーク(GAN)(第2回):テスト用の合成シンボルの作成

この記事では、敵対的生成ネットワーク(GAN)を使用して合成シンボルを作成し、EURUSDなどの実際の市場商品の挙動を模倣した現実的な金融データを生成します。GANモデルは、過去の市場データからパターンやボラティリティを学習し、同様の特性を持つ合成価格データを生成します。
preview
深層強化学習を用いたIlanエキスパートアドバイザーの強化

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

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

ゴールドを例にした一方向トレンド取引における機械学習の考察

この記事では、選択した方向(買いまたは売り)のみで取引をおこなうアプローチについて説明します。この目的のために、因果推論と機械学習の手法を使用します。
preview
ビリヤード最適化アルゴリズム(BOA)

ビリヤード最適化アルゴリズム(BOA)

BOA法は、古典的なビリヤードに着想を得ており、最適解を探すプロセスを、玉が穴に落ちることで最良の結果を表すゲームとしてシミュレーションします。本記事では、BOAの基本、数学モデル、およびさまざまな最適化問題を解く際の効率について考察します。
preview
MQL5での取引戦略の自動化(第44回):スイングハイ/ローのブレイクによる性格の変化(CHoCH)検出

MQL5での取引戦略の自動化(第44回):スイングハイ/ローのブレイクによる性格の変化(CHoCH)検出

この記事では、MQL5で性格の変化(CHoCH)検出システムを開発します。本システムは、ユーザーが設定したバーの長さに基づいてスイングハイとスイングローを特定し、高値には「HH/LH」、安値には「LL/HL」とラベル付けをおこない、トレンド方向を判定します。そして、これらのスイングポイントをブレイクした際にエントリーをおこない、潜在的な反転を示すサインとして活用します。構造が変化した際のブレイクもエントリー対象とします。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第9回):二重移動平均クロスオーバー

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

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

MQL 標準ライブラリエクスプローラー(第1回):CTrade、CiMA、CiATRによる紹介

MQL5標準ライブラリは、MetaTrader 5における取引アルゴリズム開発において重要な役割を果たします。本連載では、このライブラリを使いこなし、MetaTrader 5用の効率的な取引ツールをより簡単に作成する方法を身につけることを目指します。これには、カスタムのエキスパートアドバイザー(EA)、インジケーター、その他のユーティリティが含まれます。本日はその第一歩として、CTrade、CiMA、そしてCiATR クラスを用いたトレンドフォロー型のEAを開発します。これは初心者、熟練者を問わず、すべての開発者にとって非常に重要なテーマです。ぜひ本ディスカッションにご参加いただき、理解を深めてください。
preview
ビッグバンビッグクランチ(BBBC)アルゴリズム

ビッグバンビッグクランチ(BBBC)アルゴリズム

本記事では、ビッグバンビッグクランチ(BBBC)法について紹介します。本手法は2つの主要な段階から構成されます。すなわち、ランダムな点を周期的に生成する段階と、それらを最適解へ圧縮する段階です。本アプローチは探索と精緻化を組み合わせることで、段階的により良好な解を導出し、新たな最適化の可能性を開くことが可能です。
preview
ビリヤード最適化アルゴリズム(BOA)

ビリヤード最適化アルゴリズム(BOA)

BOA法は、古典的なビリヤードに着想を得ており、最適解を探すプロセスを、玉が穴に落ちることで最良の結果を表すゲームとしてシミュレーションします。本記事では、BOAの基本、数学モデル、およびさまざまな最適化問題を解く際の効率について考察します。
preview
プライスアクション分析ツールキットの開発(第41回):MQL5で統計的価格レベルEAを構築する

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

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

初級から中級まで:共用体(II)

今日はとても面白く興味深い記事をご紹介します。今回は共用体(union)を取り上げ、以前に触れた問題の解決を試みます。また、アプリケーションでunionを使用した際に発生しうる、少し変わった状況についても探っていきます。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
データサイエンスとML(第39回):ニュース × 人工知能、それに賭ける価値はあるか

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

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

ロイヤルフラッシュ最適化(RFO)

オリジナルの「ロイヤルフラッシュ最適化」アルゴリズムは、最適化問題を解決するための新しいアプローチを提示しています。この手法では、遺伝的アルゴリズムで一般的に用いられる古典的な二進符号化を、ポーカーの原理に着想を得たセクターベースのアプローチに置き換えています。RFOは、基本原理を単純化することで、効率的かつ実用的な最適化手法が実現できることを示しています。本記事では、アルゴリズムの詳細な解析とテスト結果を紹介します。
preview
データサイエンスとML(第39回):ニュース × 人工知能、それに賭ける価値はあるか

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

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

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

MetaTrader 5でMQL5を使ってガートリーハーモニックパターンを検出して表示する方法を学びます。この記事では、スイングポイントの特定からフィボナッチ比率の適用、チャート上へのパターン描画までの手順を順を追って解説し、視覚的に確認できる形で表示する方法を紹介します。
preview
Connexusの本体(第4回):HTTP本体サポートの追加

Connexusの本体(第4回):HTTP本体サポートの追加

この記事では、JSONやプレーンテキストなどのデータを送信するために不可欠な、HTTPリクエストにおける本体(ボディ)の概念について探りました。適切なヘッダを使った正しい使い方を議論し、説明しました。また、Connexusライブラリの一部であるChttpBodyクラスを導入し、リクエストの本体の処理を簡素化しました。
preview
Connexus Observer(第8回):リクエストObserverの追加

Connexus Observer(第8回):リクエストObserverの追加

連載「Connexusライブラリ」の最終回では、Observerパターンの実装に加え、ファイルパスやメソッド名に関する重要なリファクタリングについて解説します。本連載を通じて、複雑なアプリケーションにおけるHTTP通信を簡素化することを目的としたConnexusの開発全体を取り上げました。
preview
最適化におけるカスタム基準への新しいアプローチ(第1回):活性化関数の例

最適化におけるカスタム基準への新しいアプローチ(第1回):活性化関数の例

これは、カスタム基準に関する数学的考察をおこなう連載記事の第1回目です。特に、ニューラルネットワークで使用される非線形関数、実装用のMQL5コード、さらにターゲットオフセットや補正オフセットの活用に焦点を当てています。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第7回):複数期間での同時取引

MQL5で自己最適化エキスパートアドバイザーを構築する(第7回):複数期間での同時取引

本連載記事では、テクニカル指標を使用する際の最適な期間を特定するためのさまざまな方法を検討してきました。本記事では、読者に対して逆のロジックを示します。すなわち、単一の最適期間を選ぶのではなく、利用可能なすべての期間を効果的に活用する方法を示します。このアプローチにより廃棄されるデータ量が減少し、通常の価格予測以外に機械学習アルゴリズムを活用する方法も得られます。
preview
MQL5取引ツール(第5回):リアルタイム銘柄監視のためのローリングティッカーテープの作成

MQL5取引ツール(第5回):リアルタイム銘柄監視のためのローリングティッカーテープの作成

本記事では、MQL5を用いて複数の通貨ペアをリアルタイムで監視できるローリングティッカーテープを開発します。Bid価格(買値)、スプレッド、日次変化率をスクロール表示し、価格変動やトレンドを効果的に強調するために、フォント、色、スクロール速度をカスタマイズ可能にします。
preview
プライスアクション分析ツールキットの開発(第38回):ティックバッファVWAPと短期不均衡エンジン

プライスアクション分析ツールキットの開発(第38回):ティックバッファVWAPと短期不均衡エンジン

第38回では、生のティックを実用的なシグナルに変換する、実稼働グレードのMT5監視パネルを構築します。EAはティックデータをバッファリングし、ティックレベルのVWAP、短期ウィンドウの不均衡(フロー)指標、ATRに基づくポジションサイズを計算します。その後、スプレッド、ATR、フローを低フリッカーのバーで可視化します。システムは推奨ロットサイズと1Rストップを計算し、狭いスプレッド、強いフロー、エッジ条件に対して設定可能なアラートを発行します。自動取引は意図的に無効化しており、堅牢なシグナル生成とクリーンなユーザー体験に重点を置いています。
preview
サイクルベースの取引システム(DPO)の構築と最適化の方法

サイクルベースの取引システム(DPO)の構築と最適化の方法

本記事では、MQL5におけるDPO(Detrended Price Oscillator、トレンド除去価格オシレーター)を用いた取引システムの設計および最適化手法について解説します。DPOのコアロジックを明確にし、長期トレンドを排除して短期サイクルを抽出する仕組みを示します。さらに、段階的な例とシンプルな戦略を通じて、インジケーターの実装方法、エントリー/エグジット条件の定義、そしてバックテストの実施方法について学ぶことができます。最後に、パフォーマンスを向上させ、市場環境の変化へ適応させるための実践的な最適化手法を紹介します。
preview
適応型社会行動最適化(ASBO):Schwefel、ボックス=ミュラー法

適応型社会行動最適化(ASBO):Schwefel、ボックス=ミュラー法

この記事は、生物の社会的行動の世界と、それが新たな数学モデルであるASBO(適応型社会的行動最適化、Adaptive Social Behavior Optimization)の構築に与える影響について、興味深い洞察を提供します。生物社会におけるリーダーシップ、近隣関係、協力の原則が、革新的な最適化アルゴリズムの開発にどのように着想を与えるのかを探ります。
preview
金融モデリングにおける合成データのための敵対的生成ネットワーク(GAN)(第1回):金融モデリングにおけるGANと合成データの紹介

金融モデリングにおける合成データのための敵対的生成ネットワーク(GAN)(第1回):金融モデリングにおけるGANと合成データの紹介

この記事では、モデル訓練におけるデータの制限に対処しながら、合成金融データを生成するための敵対的生成ネットワーク(GAN)をトレーダーに紹介します。GANの基礎、PythonおよびMQL5コードの実装、金融における実用的なアプリケーションをカバーし、トレーダーが合成データを通じてモデルの精度と堅牢性を高めることができるようにします。
preview
知っておくべきMQL5ウィザードのテクニック(第69回):SARとRVIのパターンの使用

知っておくべきMQL5ウィザードのテクニック(第69回):SARとRVIのパターンの使用

パラボリックSAR (SAR)と相対活力指数(RVI)は、MQL5のエキスパートアドバイザー(EA)内で併用可能なもう一つのインジケーターペアです。このインジケーターペアは、これまでに取り上げたものと同様に補完的で、SARはトレンドを定義し、RVIはモメンタムを確認します。通常通り、MQL5ウィザードを使用してこのインジケーターペアリングを構築し、その可能性をテストします。
preview
取引戦略の開発:Flower Volatility Indexのトレンドフォローアプローチ

取引戦略の開発:Flower Volatility Indexのトレンドフォローアプローチ

市場のリズムを解読する絶え間ない探求により、トレーダーやクオンツアナリストは数多くの数学モデルを生み出してきました。本記事では、Flower Volatility Index (FVI)を紹介します。これは、バラ曲線の数学的優雅さを実用的な取引ツールに変換した新しいアプローチです。この研究を通じて、数学モデルを実際の市場環境で分析や意思決定を支援できる実用的な取引メカニズムに適応できることを示しました。
preview
取引におけるニューラルネットワーク:統合軌道生成モデル(UniTraj)

取引におけるニューラルネットワーク:統合軌道生成モデル(UniTraj)

エージェントの行動を理解することはさまざまな分野で重要ですが、ほとんどの手法は特定のタスク(理解、ノイズ除去、予測)に焦点を当てており、そのため実際のシナリオでは効果的に活用できないことが多いです。この記事では、さまざまな問題を解決するために適応可能なモデルについて説明します。
preview
取引におけるニューラルネットワーク:Segment Attentionを備えたパラメータ効率重視Transformer (PSformer)

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

この記事では、新しいPSformerフレームワークを紹介します。これは、従来のTransformerアーキテクチャを多変量時系列予測の問題に適応させたものです。本フレームワークは、パラメータ共有(PS)機構とSegment Attention機構(SegAtt)の2つの主要な革新に基づいています。
preview
知っておくべきMQL5ウィザードのテクニック(第63回):DeMarkerとEnvelope Channelsのパターンを活用する

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

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

利益強化アーキテクチャ:多層型口座保護

このディスカッションでは、積極的な利益目標を追求しながら、壊滅的な損失へのエクスポージャーを最小限に抑えることを目的とした、構造化された多層防御システムを紹介します。本システムの焦点は、取引パイプラインのあらゆるレベルにおいて、攻撃的な売買ロジックと保護的な安全機構を組み合わせることにあります。その狙いは、このEAを「リスクを認識する捕食者」のように設計することです。すなわち、高価値な機会を捉える能力を持ちながらも、突発的な市場ストレスに対して盲目的になることを防ぐための複数の防護層を常に備えている状態を目指します。
preview
初級から中級まで:配列(IV)

初級から中級まで:配列(IV)

この記事では、C、C++、Javaなどの言語で実装されていることと非常によく似たことを実現する方法について見ていきます。つまり、関数や手続きにほぼ無限の数のパラメータを渡す方法についてです。これは一見すると高度なトピックに思えるかもしれませんが、前回までの内容をきちんと理解していれば、実装は決して難しくありません。もちろん、それらの内容を本当に理解していることが前提です。