MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
プライスアクション分析ツールキットの開発(第51回):ローソク足パターン発見のための革新的なチャート検索技術

プライスアクション分析ツールキットの開発(第51回):ローソク足パターン発見のための革新的なチャート検索技術

本記事は、アルゴリズムトレーダー、クオンツ分析担当者、そしてMQL5開発者を対象に、ローソク足パターン認識の理解を深めるための実践的な実装方法を紹介することを目的としています。本記事では、MetaTrader 5向けのCandlePatternSearch.mq5エキスパートアドバイザー(EA)を通じて、古典的なローソク足パターンの検出、可視化、モニタリングをおこなうための完全なフレームワークを詳しく解説します。コードの逐次解説に加え、アーキテクチャ設計、パターン検出ロジック、GUI統合、アラート機能についても説明し、従来のプライスアクション分析を効率的に自動化する方法を示します。
preview
DoEasy - コントロール(第3部):バインドされたコントロールの作成

DoEasy - コントロール(第3部):バインドされたコントロールの作成

本稿では、基本要素にバインドされた従属コントロールを作成します。開発は、基本的な制御機能を使用して実行されます。さらに、影を持つことができるオブジェクトに適用するとまだいくつかのロジックエラーが発生するため、グラフィック要素の影オブジェクトを少しいじります。
preview
リプレイシステムの開発(第32回):受注システム(I)

リプレイシステムの開発(第32回):受注システム(I)

これまで開発してきたものの中で、このシステムが最も複雑であることは、おそらく皆さんもお気づきでしょうし、最終的にはご納得いただけると思います。あとは非常に単純なことですが、取引サーバーの動作をシミュレーションするシステムを作る必要があります。取引サーバーの操作方法を正確に実装する必要性は、当然のことのように思えます。少なくとも言葉ではです。ただし、リプレイ/シミュレーションシステムのユーザーにとって、すべてがシームレスで透明なものとなるようにする必要があります。
preview
リプレイシステムの開発(第35回):調整(I)

リプレイシステムの開発(第35回):調整(I)

前に進む前に、いくつかのことを解決する必要があります。これらは実際には必要な修正ではなく、クラスの管理方法や使用方法の改善です。その理由は、システム内の何らかの相互作用によって障害が発生したということです。このような失敗をなくすために原因を突き止めようと試みましたが、すべて失敗に終わりました。例えば、C/C++でポインタや再帰を使用すると、プログラムがクラッシュしてしまいます。
preview
リプレイシステムの開発(第47回):Chart Tradeプロジェクト(VI)

リプレイシステムの開発(第47回):Chart Tradeプロジェクト(VI)

ついに、Chart Trade指標はEAと相互作用を開始し、情報をインタラクティブに転送できるようにします。そこで今回は、この指標を改良し、どのEAでも使えるような機能的なものにします。これにより、Chart Trade指標にアクセスし、実際にEAに接続されているかのように操作できるようになります。しかし、以前よりもずっと興味深い方法でそれをおこなうつもりです。
preview
ニューラルネットワークが簡単に(第50回):Soft Actor-Critic(モデルの最適化)

ニューラルネットワークが簡単に(第50回):Soft Actor-Critic(モデルの最適化)

前回の記事では、Soft Actor-Criticアルゴリズムを実装しましたが、有益なモデルを訓練することはできませんでした。今回は、先に作成したモデルを最適化し、望ましい結果を得ます。
preview
DoEasy - サービス関数(第3回):アウトサイドバーパターン

DoEasy - サービス関数(第3回):アウトサイドバーパターン

本記事では、DoEasyライブラリにおけるアウトサイドバーのプライスアクションパターンを開発し、価格パターン管理へのアクセス手法を最適化します。あわせて、ライブラリのテスト中に判明したエラーや不具合の修正もおこないます。
preview
GMDH (The Group Method of Data Handling):MQL5で組合せアルゴリズムを実装する

GMDH (The Group Method of Data Handling):MQL5で組合せアルゴリズムを実装する

この記事では、MQL5における組合せアルゴリズムと、その改良版である組合せ選択(Combinatorial Selective)アルゴリズムの実装について、データ処理のグループ法アルゴリズムファミリーの探求を続けます。
preview
知っておくべきMQL5ウィザードのテクニック(第20回):関数同定問題

知っておくべきMQL5ウィザードのテクニック(第20回):関数同定問題

関数同定問題は、研究対象のデータセットをマッピングする基本モデルがどのようなものであるかについて、最小限の仮定から始める回帰の形式です。ベイズ法やニューラルネットワークでも実装可能ですが、ここでは遺伝的アルゴリズムによる実装が、MQL5ウィザードで使用可能なExpertSignalクラスのカスタマイズにどのように役立つかを見ていきます。
preview
Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート1)

Candlestick Trend Constraintモデルの構築(第5回):通知システム(パート1)

本連載で作成するTrend Constraint指標からのシグナル通知を受信するためのTelegramとWhatsAppの統合を説明するために、メインのMQL5コードを特定のコードスニペットに分解します。これにより、トレーダーや開発者(初心者か経験豊富かを問わず)が簡単にコンセプトを把握できるようになります。まず、MetaTrader 5の通知に関する設定と、ユーザーにとってのその意義について説明します。これは、開発者が自分のシステムにさらに応用するためのメモを事前に取るのに役立ちます。
preview
古典的な戦略を再構築する(第9回):多時間枠分析(II)

古典的な戦略を再構築する(第9回):多時間枠分析(II)

本日のディスカッションでは、AIモデルがどの時間枠で最高のパフォーマンスを発揮するかを明らかにするため、多時間枠分析の戦略を検討します。この分析により、EURUSDペアにおいて月次および時間足の時間枠が比較的誤差の少ないモデルを生成することが分かりました。この結果を活用し、月次時間枠でAIによる予測を行い、時間枠で取引を実行するアルゴリズムを作成しました。
preview
DoEasy-コントロール(第11部):WinFormsオブジェクト—グループ、CheckedListBox WinFormsオブジェクト

DoEasy-コントロール(第11部):WinFormsオブジェクト—グループ、CheckedListBox WinFormsオブジェクト

この記事では、WinFormsオブジェクトのグループ化と、CheckBoxオブジェクトリストオブジェクトの作成について検討します。
preview
ニューラルネットワークが簡単に(第69回):密度に基づく行動方策の支持制約(SPOT)

ニューラルネットワークが簡単に(第69回):密度に基づく行動方策の支持制約(SPOT)

オフライン学習では、固定されたデータセットを使用するため、環境の多様性をカバーする範囲が制限されます。学習過程において、私たちのエージェントはこのデータセットを超える行動を生成することができます。環境からのフィードバックがなければ、そのような行動の評価が正しいとどうやって確信できるのでしょうか。訓練データセット内のエージェントの方策を維持することは、訓練の信頼性を確保するために重要な要素となります。これが、この記事でお話しする内容です。
preview
ニューラルネットワークが簡単に(第90回):時系列の周波数補間(FITS)

ニューラルネットワークが簡単に(第90回):時系列の周波数補間(FITS)

FEDformer法を研究することで、時系列表現の周波数領域への扉を開きました。この新しい記事では、私たちが始めたトピックを続けます。分析をおこなうだけでなく、特定の分野におけるその後の状態を予測することができる手法について考えてみたいと思います。
preview
人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)アルゴリズム

人工協調探索(ACS)は、バイナリ行列と、相互主義的関係と協調に基づく複数の動的な個体群を用いて、最適解を迅速かつ正確に探索する革新的な手法です。捕食者と被食者に対するACS独自のアプローチにより、数値最適化問題で優れた結果を出すことができます。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第4回):動的なポジションサイズ調整

MQL5で自己最適化エキスパートアドバイザーを構築する(第4回):動的なポジションサイズ調整

アルゴリズム取引を成功させるには、継続的かつ学際的な学習が必要です。しかし、その可能性は無限であるがゆえに、明確な成果が得られないまま、何年もの努力を費やしてしまうこともあります。こうした課題に対応するため、私たちは徐々に複雑さを導入するフレームワークを提案します。これにより、トレーダーは不確実な結果に対して無限の時間を費やすのではなく、戦略を反復的に洗練させることが可能になります。
preview
知っておくべきMQL5ウィザードのテクニック(第36回):マルコフ連鎖を用いたQ学習

知っておくべきMQL5ウィザードのテクニック(第36回):マルコフ連鎖を用いたQ学習

強化学習は、教師あり学習、教師なし学習と並んで、機械学習における3つの主要な考え方の1つです。そのため、最適制御、つまり目的関数に最も適した長期的な方針を学習することに関心があります。このような背景から、ウィザードが作成したEAのMLPの学習プロセスにおいて、MLPがどのような役割を果たす可能性があるのかを探ります。
preview
Connexusのリクエスト(第6回):HTTPリクエストとレスポンスの作成

Connexusのリクエスト(第6回):HTTPリクエストとレスポンスの作成

Connexusライブラリ連載第6回目では、HTTPリクエストの構成要素全体に焦点を当て、リクエストを構成する各コンポーネントを取り上げます。そして、リクエスト全体を表現するクラスを作成し、これまでに作成したクラスを統合します。
preview
3Dバーによるトレンド強度・方向指標

3Dバーによるトレンド強度・方向指標

市場マイクロストラクチャの3次元可視化とテンソル分析に基づく、新しい市場トレンド分析のアプローチを検討します。
preview
MQL5での取引戦略の自動化(第35回):ブレーカーブロック取引システムの作成

MQL5での取引戦略の自動化(第35回):ブレーカーブロック取引システムの作成

本記事では、MQL5でブレーカーブロック取引システムを作成します。本システムは、レンジ相場を識別し、ブレイクアウトを検出、スイングポイントでブレーカーブロックを検証した上で、リスクパラメータを定義してリテスト取引を実行します。また、オーダーブロックおよびブレーカーブロックを動的なラベルと矢印で可視化し、自動売買やトレーリングストップにも対応しています。
preview
クライアント端末での取引戦略の例の分析

クライアント端末での取引戦略の例の分析

この記事では、ブロック図を使用して、端末のExperts\Free Robotsフォルダにあるローソク足ベースの訓練EAのロジックを調べます。
preview
プライスアクション分析ツールキットの開発(第28回):Opening Range Breakout Tool

プライスアクション分析ツールキットの開発(第28回):Opening Range Breakout Tool

各取引セッションの始まりでは、市場の方向性の偏りは、価格が初期価格幅(オープニングレンジ)を突破して初めて明確になります。本記事では、MQL5エキスパートアドバイザー(EA)を構築し、セッション開始直後の初期価格幅のブレイクアウトを自動的に検出して分析し、タイムリーでデータ駆動型のシグナルを提供して自信ある日中エントリーを可能にする方法を探ります。
preview
行列分解:基本

行列分解:基本

ここでの目的は教訓を得ることなので、できるだけシンプルに話を進めたいと思います。具体的には、必要な行列の乗算だけを実装します。行列とスカラーの乗算をシミュレートするにはこれで十分であることが今日わかるでしょう。行列分解を実装する際に多くの人が直面する最大の課題は、スカラーの分解と異なり、因子の順序が結果に影響を与えるため、行列の場合はその点に注意が必要だということです。
preview
知っておくべきMQL5ウィザードのテクニック(第14回):STFによる多目的時系列予測

知っておくべきMQL5ウィザードのテクニック(第14回):STFによる多目的時系列予測

データのモデリングに「空間」と「時間」の両方の測定基準を使用する空間的時間的融合は、主にリモートセンシングや、私たちの周囲をよりよく理解するための他の多くの視覚ベースの活動で有用です。発表された論文のおかげで、トレーダーへの可能性を検証することで、その活用に斬新なアプローチを取ります。
preview
外国為替におけるポートフォリオ最適化:VaRとマーコウィッツ理論の統合

外国為替におけるポートフォリオ最適化:VaRとマーコウィッツ理論の統合

FXにおけるポートフォリオ取引はどのように機能するのでしょうか。マーコウィッツのポートフォリオ理論による資産配分最適化と、VaRモデルによるリスク最適化はどのように統合できるのでしょうか。ポートフォリオ理論に基づいたコードを作成し、一方では低リスクを確保し、もう一方では受け入れ可能な長期的収益性を得ることを試みます。
preview
ダイナミックマルチペアEAの形成(第3回):平均回帰とモメンタム戦略

ダイナミックマルチペアEAの形成(第3回):平均回帰とモメンタム戦略

本記事では、ダイナミックマルチペアエキスパートアドバイザー(EA)を構築する旅の第3部として、平均回帰戦略とモメンタム戦略の統合に焦点を当てます。価格の平均からの乖離(Zスコア)を検出して取引に活かす方法や、複数の通貨ペアにおけるモメンタムを測定して取引方向を判断する方法について詳しく解説します。
preview
取引システムの構築(第5回):構造化された取引決済による利益管理

取引システムの構築(第5回):構造化された取引決済による利益管理

利益目標まであとわずかというところで価格が反転し、ストップロスにかかってしまう。トレーリングストップによって建値で決済された直後に、市場が元の方向へ大きく動き、当初の目標を超えていく。多くのトレーダーにとって、これはおなじみの悩みでしょう。本記事では、異なるリスクリワードレシオ(RRR)で複数のエントリーを配置する手法に焦点を当て、利益を体系的に確保しながら、全体のリスク曝露を抑えるアプローチを解説します。
preview
リプレイシステムの開発(第38回):道を切り開く(II)

リプレイシステムの開発(第38回):道を切り開く(II)

MQL5プログラマーを自認する人の多くは、この記事で概説するような基本的な知識を持っていません。MQL5は多くの人によって限定的なツールだと考えてられていますが、実際の理由は、そのような人たちが必要な知識を持っていないということです。知らないことがあっても恥じることはありません。聞かなかったことを恥じるべきです。MetaTrader 5で指標の複製を強制的に無効にするだけでは、指標とEA間の双方向通信を確保することはできません。まだこれにはほど遠いものの、チャート上でこの指標が重複していないという事実は、私たちに自信を与えてくれます。
preview
知っておくべきMQL5ウィザードのテクニック(第72回):教師あり学習でMACDとOBVのパターンを活用する

知っておくべきMQL5ウィザードのテクニック(第72回):教師あり学習でMACDとOBVのパターンを活用する

前回の記事で紹介したMACDとOBVのインジケーターペアをフォローアップし、今回はこのペアを機械学習でどのように強化できるかを見ていきます。MACDとOBVは、それぞれトレンド系と出来高系という補完的なペアです。私たちの機械学習アプローチでは、畳み込みニューラルネットワーク(CNN)を使い、カーネルとチャンネルのサイズを調整する際に指数カーネルを利用して、このインジケーターペアの予測をファインチューニングします。今回もこれまでと同様に、MQL5ウィザードでエキスパートアドバイザー(EA)を組み立てられるようにしたカスタムシグナルクラスファイル内で実装しています。
preview
ニューラルネットワークが簡単に(第75回):軌道予測モデルのパフォーマンス向上

ニューラルネットワークが簡単に(第75回):軌道予測モデルのパフォーマンス向上

私たちが作成するモデルはより大きく、より複雑になっています。そのため、訓練だけでなく、運用にもコストがかかります。しかし、決断に要する時間はしばしば重要です。この観点から、品質を損なうことなくモデルのパフォーマンスを最適化する手法を考えてみましょう。
preview
ニュース取引が簡単に(第2回):リスク管理

ニュース取引が簡単に(第2回):リスク管理

この記事では、以前のコードと新しいコードに継承を導入します。効率性を高めるために新しいデータベース設計が実装されます。さらに、取引量計算に取り組むためのリスク管理クラスも作成されます。
preview
MQL5での取引戦略の自動化(第3回):ダイナミック取引管理のためのZone Recovery RSIシステム

MQL5での取引戦略の自動化(第3回):ダイナミック取引管理のためのZone Recovery RSIシステム

この記事では、MQL5を使ってZone Recovery RSI EAシステムを構築し、RSIシグナルによって取引を開始し、損失を管理するためのリカバリーストラテジーを実装します。取引エントリー、リカバリーロジック、ポジション管理を自動化するために、ZoneRecoveryクラスを作成します。この記事の最後では、EAのパフォーマンスを最適化し、その有効性を高めるためのバックテストの洞察を紹介します。
preview
プライスアクション分析ツールキットの開発(第30回):コモディティチャンネル指数(CCI)、Zero Line EA

プライスアクション分析ツールキットの開発(第30回):コモディティチャンネル指数(CCI)、Zero Line EA

プライスアクション分析の自動化は、今後の方向性を示す重要なステップです。本記事では、デュアルCCIインジケーター、ゼロラインクロスオーバー戦略、EMA、そしてプライスアクションを組み合わせ、ATRを用いて売買シグナルを生成し、ストップロス(SL)およびテイクプロフィット(TP)を設定するツールを開発します。CCI Zero Line EAの開発手法について学ぶために、ぜひお読みください。
preview
初心者からエキスパートへ:Reporting EA - ワークフローの設定

初心者からエキスパートへ:Reporting EA - ワークフローの設定

ブローカーは、多くの場合、あらかじめ定められたスケジュールに基づいて取引口座のレポートを定期的に提供します。これらの企業はAPI技術を通じて顧客の口座活動や取引履歴にアクセスできるため、取引パフォーマンスのレポートを代わりに生成することが可能です。同様に、MetaTrader 5ターミナルも詳細な取引履歴を保存しており、MQL5を利用することで完全にカスタマイズされたレポートの作成や、個別に設定した配信方法の定義が可能です。
preview
MQL5入門(第19回):ウォルフ波動の自動検出

MQL5入門(第19回):ウォルフ波動の自動検出

本記事では、強気(上昇)および弱気(下降)のウォルフ波動パターンをプログラムで識別し、MQL5を使用して取引する方法を紹介します。ウォルフ波動構造をプログラムで検出し、それに基づいて取引の実行方法を詳しく解説します。これには、主要なスイングポイントの検出、パターンルールの検証、シグナルに基づくエキスパートアドバイザー(EA)の準備が含まれます。
preview
DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

DoEasy - コントロール(第23部):TabControlおよびSplitContainer WinFormsオブジェクトの改善

今回は、WinFormsオブジェクトの作業領域の境界線に関連する新しいマウスイベントを追加し、TabControlとSplitContainerコントロールの機能に関するいくつかの欠点を修正することにします。
preview
ニューラルネットワークが簡単に(第79回):状態の文脈におけるFeature Aggregated Queries (FAQ)

ニューラルネットワークが簡単に(第79回):状態の文脈におけるFeature Aggregated Queries (FAQ)

前回の記事では、画像内のオブジェクトを検出する方法の1つを紹介しました。ただし、静的な画像の処理は、私たちが分析する価格のダイナミクスのような動的な時系列の処理とは多少異なります。この記事では、私たちが解決しようとしている問題にやや近い、ビデオ中の物体を検出する方法について考えます。
preview
多通貨エキスパートアドバイザーの開発(第7回):フォワード期間に基づくグループの選択

多通貨エキスパートアドバイザーの開発(第7回):フォワード期間に基づくグループの選択

以前は、個々のインスタンスの最適化が実施されたのと同じ期間においてのみ、共同運用の結果を改善する目的で、取引戦略インスタンスグループの選択を評価しました。フォワード期間中に何が起こるか見てみましょう。
preview
プライスアクション分析ツールキットの開発(第17回):TrendLoom EAツール

プライスアクション分析ツールキットの開発(第17回):TrendLoom EAツール

プライスアクションを観察し、取引をおこなう立場から言うと、複数の時間枠でトレンドが確認された場合、その方向にトレンドが継続することがよくあります。ただし、トレンドがどれくらい続くかは一定ではなく、ポジションを長期で保有するのか、それともスキャルピングのような短期取引をおこなうのかといったトレーダーのスタイルによって異なります。トレンド確認に使用する時間枠の選択は非常に重要な役割を果たします。以下の記事では、ワンクリックや定期的な更新によって、複数の時間足にわたる全体的なトレンドを自動で分析できる便利なシステムを紹介しています。ぜひご覧ください。
preview
MQL5での取引戦略の自動化(第11回):マルチレベルグリッド取引システムの開発

MQL5での取引戦略の自動化(第11回):マルチレベルグリッド取引システムの開発

本記事では、MQL5を使用してマルチレベルのグリッド取引システムEAを開発し、グリッド取引戦略の背後にあるアーキテクチャとアルゴリズム設計に焦点を当てます。複数層にわたるグリッドロジックの実装と、市場のさまざまな状況に対応するためのリスク管理手法について探ります。最後に、自動売買システムの構築・テスト・改善をおこなうための詳細な説明と実践的なヒントを提供します。