MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MQL5でカスタムインジケーターを作成する(第2回):Canvasと針のメカニクスを使ったゲージ型RSIインジケーターの構築

MQL5でカスタムインジケーターを作成する(第2回):Canvasと針のメカニクスを使ったゲージ型RSIインジケーターの構築

本記事では、MQL5でゲージ型のRSIインジケーターを開発します。このインジケーターは、RSIの値を円形のスケール上の動く針で可視化し、買われすぎと売られすぎのレベルを色分けした範囲と、カスタマイズ可能な凡例を備えています。Canvasクラスを使用して、円弧、目盛り、扇形などの要素を描画し、新しいRSIデータに基づいて滑らかに更新されるようにします。
preview
初心者からエキスパートへ:市場の不規則性への対処

初心者からエキスパートへ:市場の不規則性への対処

市場のルールは常に変化しており、かつて有効だった原則も、時間の経過とともにその効力を徐々に失っていきます。過去に機能していたものが、現在では一貫して機能しなくなることがあります。本記事では、このような市場の不確実性に対応するために、「確率レンジ(ゾーン)」という考え方に焦点を当てます。さらに、MQL5を用いて、特に値動きが不安定な相場環境でも機能するアルゴリズムの構築方法を解説していきます。ディスカッションにぜひご参加ください。
preview
プライスアクション分析ツールキットの開発(第57回):MQL5による市場状態分類モジュールの開発

プライスアクション分析ツールキットの開発(第57回):MQL5による市場状態分類モジュールの開発

確定済み価格データを用いて価格挙動を解釈するMQL5向けの市場状態分類モジュールを開発および解説します。ボラティリティの収縮および拡大、ならびに構造的一貫性を分析することにより、市場環境をコンプレッション、トランジション、エクスパンション、トレンドとして分類し、プライスアクション分析のための明確な文脈把握の枠組みを提供します。
preview
知っておくべきMQL5ウィザードのテクニック(第79回):教師あり学習でのゲーターオシレーターとA/Dオシレーターの使用

知っておくべきMQL5ウィザードのテクニック(第79回):教師あり学習でのゲーターオシレーターとA/Dオシレーターの使用

前回の記事では、ゲーターオシレーターとA/Dオシレーターの組み合わせについて、通常の設定における生のシグナルを用いた場合の挙動を確認しました。この2つのインジケーターは、それぞれトレンド指標と出来高指標として相補的に機能します。今回の記事では、その続編として、教師あり学習を活用することで、前回レビューした特徴量パターンの一部をどのように強化できるかを検証します。この教師あり学習アプローチでは、CNN(畳み込みニューラルネットワーク)を用い、カーネル回帰およびドット積類似度を活用して、カーネルやチャネルのサイズを決定しています。今回もこれまでと同様に、MQL5ウィザードでエキスパートアドバイザー(EA)を組み立てられるようにしたカスタムシグナルクラスファイル内で実装しています。
preview
Market Memory Zonesインジケーターの開発:価格が戻りやすい領域

Market Memory Zonesインジケーターの開発:価格が戻りやすい領域

強い市場活動によって形成される価格ゾーンを識別するインジケーターを開発します。具体的には、インパルス的な値動き、構造のシフト、流動性イベントなどによって生成される領域を対象とします。これらのゾーンは、未約定の注文や急激な価格変動によって市場に「記憶」が残されたエリアを表します。チャート上にこれらの領域をマーキングすることで、将来的に価格が再訪し反応する可能性が統計的に高いポイントを可視化します。
preview
市場シミュレーション(第5回):C_Ordersクラスの作成(II)

市場シミュレーション(第5回):C_Ordersクラスの作成(II)

本記事では、Chart Tradeとエキスパートアドバイザー(EA)が連携して、ユーザーが保有しているすべてのポジションを決済する要求をどのように処理するのかを解説します。一見すると単純な処理に思えるかもしれませんが、実際には注意すべきいくつかの複雑な点があります。
preview
データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

MQL5においてSQLiteデータをORMレイヤーを通して管理する方法を体系的に紹介します。エンティティモデリングとデータベースアクセスのためのコアクラス、フルエントなCRUD API、OnGet/OnSetによるリフレクション的フック、そしてモデルを簡単に定義するためのマクロなどを取り上げます。実用的なコード例として、テーブル作成、フィールドのバインド、データの挿入、更新、取得、削除を示します。これにより開発者は、SQLを繰り返し記述することなく、再利用可能で型安全なコンポーネントを利用できるようになります。
preview
Python-MetaTrader 5ストラテジーテスター(第4回):テスター入門

Python-MetaTrader 5ストラテジーテスター(第4回):テスター入門

シミュレーター上で初めての自動売買ロボットを構築し、MetaTrader 5のストラテジーテスター風にストラテジーテスト処理を実行します。その上で、カスタムシミュレーションで生成された結果を、普段使用しているターミナルの結果と比較します。
preview
プライスアクション分析ツールキットの開発(第54回):EMAと平滑化された価格変動によるトレンドのフィルタリング

プライスアクション分析ツールキットの開発(第54回):EMAと平滑化された価格変動によるトレンドのフィルタリング

取引の明確さとタイミングを向上させるために、平均足による平滑化とEMA20の高値および安値のバンド、さらにEMA50のトレンドフィルターを組み合わせた手法を解説します。これらのツールにより、トレーダーは真のモメンタムを見極め、ノイズを排除し、ボラティリティの高い局面やトレンド相場により適切に対応できます。
preview
市場シミュレーション(第20回):SQL入門(III)

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

約10件程度のレコードを含むデータベースでも操作をおこなうことはできますが、15,000件を超えるレコードを含むファイルを使って作業したほうが、内容をはるかに理解しやすくなります。つまり、そのようなデータベースを手作業で作成しようとすると、膨大な作業になってしまうということです。しかし、教育目的で利用可能な、そのようなデータベースをダウンロードできる場所を見つけるのは簡単ではありません。ですが、実際にはその必要はありません。MetaTrader 5を使えば、自分たちでデータベースを作成できるからです。本日の記事では、その方法について見ていきます。
preview
FX裁定取引:関係性評価パネル

FX裁定取引:関係性評価パネル

MQL5における裁定取引分析パネルの開発について説明します。さまざまな方法で、Forexで理論為替レートを導き出すにはどうすればよいでしょうか。市場価格と理論為替レートとの乖離を把握し、ある通貨を別の通貨に交換する裁定取引(三角裁定取引など)の収益機会を評価するためのインジケーターを作成します。
preview
MQL5取引ツール(第11回):ヒートマップおよび標準モード対応相関行列ダッシュボード(ピアソン、スピアマン、ケンドール)

MQL5取引ツール(第11回):ヒートマップおよび標準モード対応相関行列ダッシュボード(ピアソン、スピアマン、ケンドール)

MQL5で相関行列ダッシュボードを構築し、ピアソン、スピアマン、ケンドールの各手法を用いて、指定した時間足およびバー数に基づいて資産間の相関関係を算出します。色の閾値と星印によってp値の有意性を示す標準モードに加え、相関の強さをグラデーションで可視化するヒートマップモードを実装します。さらに、時間足選択ツール、モード切り替え、動的な凡例を備えたインタラクティブなユーザーインターフェースを搭載しており、銘柄間の依存関係を効率的に分析できます。
preview
MQLを使用したFirebaseでのCRUD操作

MQLを使用したFirebaseでのCRUD操作

この記事では、FirebaseのCRUD(作成、読み取り、更新、削除)操作を習得するためのステップバイステップガイドを提供します。Realtime DatabaseおよびFirestoreを中心に、Firebase SDKのメソッドを活用して、Webやモバイルアプリで効率的にデータを管理する方法を解説します。新しいレコードの追加から、データの検索、修正、削除まで、実践的なコード例とベストプラクティスを紹介し、リアルタイムでのデータ構造と操作方法を理解することで、開発者がFirebaseの柔軟なNoSQLアーキテクチャを活かして、動的でスケーラブルなアプリケーションを構築できるようになります。
preview
ラリー・ウィリアムズの『市場の秘密』(第6回):市場変動を利用したボラティリティブレイクアウトの測定

ラリー・ウィリアムズの『市場の秘密』(第6回):市場変動を利用したボラティリティブレイクアウトの測定

MQL5を用いてラリー・ウィリアムズのボラティリティブレイクアウト型エキスパートアドバイザーを設計および実装する方法を解説します。スイングレンジの測定、エントリーレベルの算出、リスクベースのポジションサイジング、さらに実際の市場データを用いたバックテストまでを網羅します。
preview
共和分株式による統計的裁定取引(第10回):構造変化の検出

共和分株式による統計的裁定取引(第10回):構造変化の検出

本記事では、ペア関係における構造変化を検出するためのChow検定と、構造変化の監視および早期検出のための累積平方和(CUSUM)の適用について解説します。例として、NvidiaとIntelの提携発表および米国政府による対外貿易関税の発表を取り上げ、それぞれ「傾きの反転」と「切片のシフト」の事例として説明します。すべてのPythonテストスクリプトも提供します。
preview
価格変動の角度分析:金融市場予測のためのハイブリッドモデル

価格変動の角度分析:金融市場予測のためのハイブリッドモデル

金融市場の角度分析とは何でしょうか。プライスアクションにおける「角度」をどのように活用すれば、機械学習によって67%の予測精度を達成できるのでしょうか。さらに、角度特徴量を用いた回帰モデルと分類モデルをどのように統合し、実用可能なアルゴリズムへと落とし込むことができるのでしょうか。ギャンはこれとどのような関係があるのでしょうか。価格変動の角度が機械学習において有効な指標である理由は何でしょうか。
preview
ラリー・ウィリアムズの『市場の秘密』(第6回):市場変動を利用したボラティリティブレイクアウトの測定

ラリー・ウィリアムズの『市場の秘密』(第6回):市場変動を利用したボラティリティブレイクアウトの測定

MQL5を用いてラリー・ウィリアムズのボラティリティブレイクアウト型エキスパートアドバイザーを設計および実装する方法を解説します。スイングレンジの測定、エントリーレベルの算出、リスクベースのポジションサイジング、さらに実際の市場データを用いたバックテストまでを網羅します。
preview
ペアトレード:Zスコアの差に基づく自動最適化機能を備えたアルゴリズム取引

ペアトレード:Zスコアの差に基づく自動最適化機能を備えたアルゴリズム取引

この記事では、ペアトレードとは何か、そして相関トレードがどのように機能するのかを解説します。また、ペアトレードを自動化するためのEA(エキスパートアドバイザー)を作成し、さらに過去データに基づいてこの取引アルゴリズムを自動最適化する機能も追加していきます。加えて、プロジェクトの一環として、Zスコアを用いて2つの通貨ペア間の差異を計算する方法についても学びます。
preview
取引アルゴリズムにおけるゲーム理論的アプローチの活用

取引アルゴリズムにおけるゲーム理論的アプローチの活用

DQN(Deep Q-Network)ベースの機械学習を用いた多次元的な因果推論に基づく自己学習型トレーディングEAを構築します。このEAは7つの通貨ペアを同時に取引し、異なる通貨ペア間のエージェントが相互に情報を交換します。
preview
リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

本記事では、これまで開発したリスク管理システムを実装し、さらに別記事で解説したOrder Blocksインジケーターを追加します。加えて、バックテストを実行し、リスク管理システムの有無による結果の違いを比較することで、動的リスク管理の影響を評価します。
preview
古典的な戦略を再構築する(第20回):現代のストキャスティクス

古典的な戦略を再構築する(第20回):現代のストキャスティクス

本記事では、古典的なテクニカル指標であるストキャスティクスを、従来の平均回帰ツールとしての使い方にとどまらず、どのように再解釈および再活用できるかを解説します。異なる分析視点からこの指標を捉え直すことで、慣れ親しんだ手法が新たな価値を生み出し、トレンドフォロー型の解釈を含む代替的な売買ルールの構築にも応用できることを示します。最終的に、MetaTrader 5ターミナルに搭載されているあらゆるテクニカル指標には未開拓の可能性が潜んでおり、試行錯誤を慎重に重ねることで、従来の見方では気づきにくい有意義な解釈を発見できることを示します。
preview
MQL5でカスタムインジケーターを作成する(第3回):扇形と円形によるマルチゲージの強化

MQL5でカスタムインジケーターを作成する(第3回):扇形と円形によるマルチゲージの強化

本記事では、MQL5のゲージ型インジケーターを拡張し、複数のオシレーターに対応できるようにします。列挙型を使うことで、単体表示だけでなく複合表示もユーザーが選択できるようになります。また、基盤となるゲージフレームワークを拡張し、扇形と円形の2つのスタイルを派生クラスとして実装します。円弧、直線、多角形を組み合わせた枠(ケース)の描画により、見た目もより洗練されたものになります。
preview
Python-MetaTrader 5ストラテジーテスター(第3回):MetaTrader 5風の取引操作 — 処理と管理

Python-MetaTrader 5ストラテジーテスター(第3回):MetaTrader 5風の取引操作 — 処理と管理

シミュレーター内で注文の開始、終了、変更などの取引操作を処理するための、Python-MetaTrader5と同様の方法を紹介します。シミュレーションがMT5と同様の動作となるように、取引リクエストに対して厳密な検証処理が実装されており、銘柄取引パラメータや一般的なブローカーの制限事項が考慮されています。
preview
Codexパイプライン:PythonからMQL5へ ― FXI ETFを対象とした複数四半期の指標分析

Codexパイプライン:PythonからMQL5へ ― FXI ETFを対象とした複数四半期の指標分析

MetaTraderを本来のFX取引という「コンフォートゾーン」の外でどのように活用できるかという検討を継続し、FXI ETFという別の取引可能資産に着目します。前回の記事では、指標の選定にとどまらず、指標間のパターンの組み合わせにまで踏み込み、やや過度に複雑化した側面がありました。本記事では一歩引いて、指標選定そのものに焦点を当てます。最終的には、十分な価格履歴データが存在する場合に、さまざまな資産に対して適切な指標を推奨できるパイプラインの構築を目指します。
preview
Python-MetaTrader 5ストラテジーテスター(第3回):MetaTrader 5風の取引操作 — 処理と管理

Python-MetaTrader 5ストラテジーテスター(第3回):MetaTrader 5風の取引操作 — 処理と管理

シミュレーター内で注文の開始、終了、変更などの取引操作を処理するための、Python-MetaTrader5と同様の方法を紹介します。シミュレーションがMT5と同様の動作となるように、取引リクエストに対して厳密な検証処理が実装されており、銘柄取引パラメータや一般的なブローカーの制限事項が考慮されています。
preview
MQL5でカスタムインジケーターを作成する(第5回):WaveTrend Crossover Evolution:Canvasを用いたフォグ状グラデーション、シグナルバブル、リスク管理

MQL5でカスタムインジケーターを作成する(第5回):WaveTrend Crossover Evolution:Canvasを用いたフォグ状グラデーション、シグナルバブル、リスク管理

MQL5におけるSmart WaveTrend Crossoverンジケーターを拡張し、Canvasを用いた描画機能を組み込むことで、霧状のグラデーションオーバーレイ、ブレイクアウトを検出するシグナルボックス、さらに買いシグナルや売りシグナルをバブルや三角形で表示する視覚的アラート機能を追加します。さらに、リスク管理機能として、ローソク足倍率またはパーセンテージに基づいて計算される動的なテイクプロフィットおよびストップロスレベルを導入し、ライン表示およびテーブル表示によって可視化します。加えて、トレンドフィルタリングやボックス延長機能といったオプションも提供します。
preview
PPPとIMFデータを用いた公正な為替レートの算出

PPPとIMFデータを用いた公正な為替レートの算出

Pythonを用いた購買力平価(PPP)ベースの為替レート分析システムの構築。IMFデータを用いて、5つの方法によって理論為替レートを計算するアルゴリズムを開発しました。本記事は、ファンダメンタルな通貨分析、経済データの処理、トレードシステムとの統合に関する実践的なガイドです。完全なコードはオープンソースとして公開されています。
preview
取引におけるニューラルネットワーク:市場異常の適応型検出(最終回)

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

時系列データにおける異常検知のための高度なツールであるDADAフレームワークの基盤となるアルゴリズムの構築を続けます。このアプローチにより、ランダムな変動と重要な逸脱を効果的に区別することができます。従来の手法とは異なり、DADAはさまざまなデータタイプに動的に適応し、それぞれのケースにおいて最適な圧縮レベルを選択します。
preview
プライスアクション分析ツールキットの開発(第55回):CPIミニローソク足オーバーレイによるバー内圧力の可視化

プライスアクション分析ツールキットの開発(第55回):CPIミニローソク足オーバーレイによるバー内圧力の可視化

価格チャート上にバー内の買い圧力と売り圧力を可視化するCLVベースのオーバーレイであるCandle Pressure Index(CPI、ローソク足圧力指数)の設計とMetaTrader 5への実装について解説します。本記事では、ローソク足の構造、圧力分類および可視化の仕組み、そして時間足や銘柄に依存せず一貫した動作を維持する、リペイントなしの遷移ベースアラートシステムに焦点を当てます。
preview
MQL5取引ツール(第15回):Canvas/ja/ぼかし効果、影描画、滑らかなマウスホイールスクロール

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

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

MQL5でカスタムインジケーターを作成する(第4回):デュアルオシレーター搭載Smart WaveTrend Crossover

本記事では、MQL5で「Smart WaveTrend Crossover」と呼ばれるカスタムインジケーターを開発します。このインジケーターは、2つのWaveTrendオシレーターを活用しており、1つはクロスオーバーシグナルの生成、もう1つはトレンドフィルタリングを目的としています。チャネル長、平均期間、移動平均期間といった各種パラメータはカスタマイズ可能です。また、トレンド方向に応じてローソク足を色分け表示し、クロスオーバー時には買いや売りの矢印シグナルを表示します。さらに、トレンド確認の有効化オプションや、色やオフセットなどのビジュアル要素も調整可能です。
preview
取引におけるニューラルネットワーク:カオス理論を時系列予測に統合する(最終回)

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

引き続き、Attraosフレームワークの著者らが提案した手法を取引モデルに統合します。このフレームワークは、時系列予測問題を多次元カオス動的システムの投影として解釈し、カオス理論の概念を用いて解決するものであることを改めてお伝えしておきます。
preview
MQL5入門(第31回):MQL5のAPIとWebRequest関数の習得(V)

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

WebRequestと外部API呼び出しの使い方を学び、最新のローソク足データを取得し、各値を使用可能な型へ変換し、テーブル形式で整理して保存する方法を解説します。このステップは、取得したデータをローソク足形式で可視化するインジケーターを構築するための基礎となります。
preview
共和分株式による統計的裁定取引(第9回):バックテストポートフォリオのウェイト更新

共和分株式による統計的裁定取引(第9回):バックテストポートフォリオのウェイト更新

本記事では、共和分関係にある銘柄を通じた統計的裁定取引を利用する平均回帰ベースの戦略において、ポートフォリオのウェイト更新をバックテストするためにCSVファイルを使用する方法について説明します。データベースへのローリングウィンドウ固有ベクトル比較(RWEC, Rolling Windows Eigenvector Comparison)の結果入力から、バックテストレポートの比較までを網羅します。その一方で、各RWECパラメータの役割と、それが全体的なバックテスト結果に与える影響を詳しく説明し、相対的なドローダウンの比較がこれらのパラメータをさらに改善するのにどのように役立つかを示します。
preview
MQL5における取引戦略の自動化(第47回):ヘッジ機能を備えたNick Rypock Trailing Reverse (NRTR)

MQL5における取引戦略の自動化(第47回):ヘッジ機能を備えたNick Rypock Trailing Reverse (NRTR)

MQL5でNick Rypock Trailing Reverse (NRTR)取引システムを開発します。このシステムは、NRTRチャネルインジケータを用いて反転シグナルを検出し、トレンドフォロー型のエントリーを実現します。また、買いポジションと売りポジションの両方に対応したヘッジ機能も備えています。さらに、エクイティまたは口座残高に基づく自動ロット計算、ATR倍率を用いた固定または動的なストップロスおよびテイクプロフィット設定、ならびにポジション数制限などのリスク管理機能も実装します。
preview
MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

本記事では、MQL5言語を用いた自動売買戦略における建値(損益分岐点)機能の実装について解説します。まず、建値モードとは何か、その仕組みや実装パターンについて簡単に説明します。 その後、前回のリスク管理に関する記事で作成したOrder Blocksエキスパートアドバイザーに、この機能を統合していきます。さらに、その有効性を検証するため、同一条件下で2種類のバックテストを実施します。1つはブレイクイーブン機能を有効化した場合、もう1つは無効化した場合です。
preview
MQL5入門(第33回):MQL5のAPIとWebRequest関数の習得(VII)

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

本記事では、MQL5を使用してGoogle Generative AI APIをMetaTrader 5に統合する方法を解説します。APIリクエストの構築、サーバー応答の処理、AI生成コンテンツの抽出、レート制限の管理、そして結果をテキストファイルに保存して簡単に参照できるようにする方法を学びます。
preview
PPPとIMFデータを用いた公正な為替レートの算出

PPPとIMFデータを用いた公正な為替レートの算出

Pythonを用いた購買力平価(PPP)ベースの為替レート分析システムの構築。IMFデータを用いて、5つの方法によって理論為替レートを計算するアルゴリズムを開発しました。本記事は、ファンダメンタルな通貨分析、経済データの処理、トレードシステムとの統合に関する実践的なガイドです。完全なコードはオープンソースとして公開されています。
preview
MQL5における純粋なRSA暗号化の実装

MQL5における純粋なRSA暗号化の実装

MQL5には組み込みの非対称暗号が存在しないため、HTTPのような安全でないチャネルでのデータ交換は困難です。本記事では、PKCS#1 v1.5パディングを用いた純粋なMQL5実装のRSAを紹介し、外部ライブラリを使用せずにAESのセッションキーや小規模なデータブロックを安全に送信できる方法を解説します。このアプローチにより、標準HTTP上でも、アプリケーションレベルでHTTPSに近い安全性を実現できるだけでなく、MQL5アプリケーションにおける安全な通信の重要なギャップを埋めることができます。
preview
MQL5における取引戦略の自動化(第47回):ヘッジ機能を備えたNick Rypock Trailing Reverse (NRTR)

MQL5における取引戦略の自動化(第47回):ヘッジ機能を備えたNick Rypock Trailing Reverse (NRTR)

MQL5でNick Rypock Trailing Reverse (NRTR)取引システムを開発します。このシステムは、NRTRチャネルインジケータを用いて反転シグナルを検出し、トレンドフォロー型のエントリーを実現します。また、買いポジションと売りポジションの両方に対応したヘッジ機能も備えています。さらに、エクイティまたは口座残高に基づく自動ロット計算、ATR倍率を用いた固定または動的なストップロスおよびテイクプロフィット設定、ならびにポジション数制限などのリスク管理機能も実装します。