MQL5言語での自動売買ロボットのプログラミングと使用に関する記事

icon

MetaTraderプラットフォームのために作られたExpert Advisorsは、開発者により導入された様々な機能を実行します。自動売買ロボットは1日24時間、通貨をトラックし、取引をコピーし、レポートを送信し、ニュースを分析し、 特別に作成されたグラフィカルインターフェイスを提供することができます。

記事はプログラミングのテクニック、データ処理のための数学的なアイデア、自動売買ロボットの開発と発注についてのヒントを記載します。

新しい記事を追加
最新 | ベスト
preview
従来の機械学習手法を使用した為替レートの予測:ロジットモデルとプロビットモデル

従来の機械学習手法を使用した為替レートの予測:ロジットモデルとプロビットモデル

この記事では、為替レートの予測を目的とした取引用EAの構築を試みます。アルゴリズムは、ロジスティック回帰およびプロビット回帰といった古典的な分類モデルに基づいています。取引シグナルのフィルターとして、尤度比検定が用いられます。
preview
取引におけるニューラルネットワーク:相対エンコーディング対応Transformer

取引におけるニューラルネットワーク:相対エンコーディング対応Transformer

自己教師あり学習は、ラベル付けされていない大量のデータを分析する効果的な手段となり得ます。この手法の効率性は、モデルが金融市場特有の特徴に適応することで実現され、従来手法の有効性も向上します。本記事では、入力間の相対的な依存関係や関係性を考慮した新しいAttention(注意)機構を紹介します。
preview
リスク管理(第1回):リスク管理クラス構築の基礎

リスク管理(第1回):リスク管理クラス構築の基礎

本記事では、取引におけるリスク管理の基礎を解説し、適切なロットサイズやストップロスを計算するための最初の関数の作成方法を学びます。さらに、これらの機能がどのように動作するのかを、各ステップを追いながら詳しく説明します。本記事の目的は、自動売買においてこれらの概念をどのように適用するかを明確に理解することです。最後に、インクルードファイルを使用したシンプルなスクリプトを作成し、すべてを実践に落とし込みます。
preview
ニューラルネットワークが簡単に(第76回):Multi-future Transformerで多様な相互作用パターンを探る

ニューラルネットワークが簡単に(第76回):Multi-future Transformerで多様な相互作用パターンを探る

この記事では、今後の値動きを予測するというトピックを続けます。Multi-future Transformerのアーキテクチャーをお見せします。その主なアイデアは、未来のマルチモーダル分布をいくつかのユニモーダル分布に分解することで、シーンのエージェント間の相互作用のさまざまなモデルを効果的にシミュレートすることができるというものです。
preview
プライスアクション分析ツールキットの開発(第22回):Correlation Dashboard

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

このツールは、複数の通貨ペア間のリアルタイム相関係数を計算し表示するCorrelation Dashboardです。ペア同士がどのように連動して動くかを可視化することで、プライスアクション分析に有益な文脈を加え、市場間のダイナミクスを先読みする手助けとなります。ここでは、その機能と活用方法を紹介します。
preview
多通貨エキスパートアドバイザーの開発(第10回):文字列からオブジェクトを作成する

多通貨エキスパートアドバイザーの開発(第10回):文字列からオブジェクトを作成する

エキスパートアドバイザー(EA)の開発計画は複数の段階で構成されており、中間結果はデータベースに保存されます。しかし、これらの結果はオブジェクトとしてではなく、文字列や数値としてのみ抽出できます。したがって、データベースから読み込んだ文字列を基に、EAで目的のオブジェクトを再構築する方法が必要です。
preview
古典的な戦略を再構築する(第6回):多時間枠分析

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

この連載では、古典的な戦略を再検討し、AIを使って改善できるかどうかを検証します。本日の記事では、人気の高い多時間枠分析という戦略を検証し、AIによって戦略が強化されるかどうかを判断します。
preview
知っておくべきMQL5ウィザードのテクニック(第41回):DQN (Deep-Q-Network)

知っておくべきMQL5ウィザードのテクニック(第41回):DQN (Deep-Q-Network)

DQN (Deep-Q-Network)は強化学習アルゴリズムであり、機械学習モジュールの学習プロセスにおいて、次のQ値と理想的な行動を予測する際にニューラルネットワークを関与させます。別の強化学習アルゴリズムであるQ学習についてはすでに検討しました。そこでこの記事では、強化学習で訓練されたMLPが、カスタムシグナルクラス内でどのように使用できるかを示すもう1つの例を紹介します。
preview
MQL5取引ツール(第1回):インタラクティブで視覚的なペンディングオーダー取引アシスタントツールの構築

MQL5取引ツール(第1回):インタラクティブで視覚的なペンディングオーダー取引アシスタントツールの構築

この記事では、FX取引におけるペンディングオーダーの設置を簡素化するために開発した、MQL5によるインタラクティブ取引アシスタントツール(Trade Assistant Tool)について紹介します。まず概念設計を説明し、チャート上でエントリー、ストップロス、テイクプロフィット水準を視覚的に設定できるユーザーフレンドリーなGUIに焦点を当てます。さらに、MQL5での実装およびバックテストのプロセスを詳述し、このツールの信頼性を確認します。そして、後続のパートで発展的な機能を追加するための基盤を整えます。
preview
MQL5での取引戦略の自動化(第17回):ダイナミックダッシュボードで実践するグリッドマーチンゲールスキャルピング戦略

MQL5での取引戦略の自動化(第17回):ダイナミックダッシュボードで実践するグリッドマーチンゲールスキャルピング戦略

本記事では、グリッドマーチンゲールスキャルピング戦略(Grid-Mart Scalping Strategy)を探究し、MQL5による自動化と、リアルタイム取引インサイトを提供するダイナミックダッシュボードの構築をおこないます。本戦略のグリッド型マーチンゲールロジックとリスク管理機能を詳述し、さらに堅牢なパフォーマンスのためのバックテストおよび実運用展開についても案内します。
preview
知っておくべきMQL5ウィザードのテクニック(第74回): 教師あり学習で一目均衡表とADX Wilderのパターンを利用する

知っておくべきMQL5ウィザードのテクニック(第74回): 教師あり学習で一目均衡表とADX Wilderのパターンを利用する

前回の記事では、一目均衡表とADXのインジケーターペアを紹介しました。今回は、このペアを教師あり学習でどのように改善できるかを見ていきます。一目均衡表とADXは、サポート/レジスタンスとトレンドを補完する組み合わせとして機能します。今回の教師あり学習アプローチでは、ディープスペクトル混合カーネルを用いたニューラルネットワークを活用し、このインジケーターペアの予測精度を微調整します。通常どおり、この処理はMQL5ウィザードでエキスパートアドバイザー(EA)を組み立てる際に利用できるカスタムシグナルクラスファイル内でおこないます。
preview
多通貨エキスパートアドバイザーの開発(第18回):将来期間を考慮したグループ選択の自動化

多通貨エキスパートアドバイザーの開発(第18回):将来期間を考慮したグループ選択の自動化

これまで手動でおこなっていた手順の自動化を引き続き進めていきましょう。今回は、第2段階の自動化、すなわち取引戦略の単一インスタンスの最適なグループ選定に立ち返り、フォワード期間におけるインスタンスの結果を考慮する機能を追加します。
preview
MQL5での取引戦略の自動化(第36回):リテストとインパルスモデルによる需給取引

MQL5での取引戦略の自動化(第36回):リテストとインパルスモデルによる需給取引

本記事では、MQL5を用いて、需給(S&D: Supply and Demand)取引システムを構築します。本システムは、レンジ相場による需給ゾーンの特定、インパルスムーブによるゾーンの検証、そしてトレンド確認を伴うリテストでのエントリーをおこないます。さらに、カスタマイズ可能なリスク管理パラメータやトレーリングストップをサポートし、動的なラベルやカラー表示によるゾーンの可視化も実装しています。
preview
MQL5での取引戦略の自動化(第33回):プライスアクションに基づくシャークハーモニックパターンシステムの作成

MQL5での取引戦略の自動化(第33回):プライスアクションに基づくシャークハーモニックパターンシステムの作成

本記事では、MQL5においてピボットポイントとフィボナッチ比率に基づいて強気、弱気双方のシャークハーモニックパターンを識別し、ユーザーが選択できるカスタムエントリー、ストップロス、テイクプロフィット設定を用いて取引を実行するシャークハーモニックパターンシステムを開発します。また、X-A-B-C-Dパターン構造やエントリーレベルを表示するために、三角形やトレンドラインなどのチャートオブジェクトを使った視覚的フィードバックでトレーダーの洞察力を高めます。
preview
知っておくべきMQL5ウィザードのテクニック(第62回):強化学習TRPOでADXとCCIのパターンを活用する

知っておくべきMQL5ウィザードのテクニック(第62回):強化学習TRPOでADXとCCIのパターンを活用する

ADXオシレーターとCCIオシレーターはそれぞれトレンドフォローインジケーターおよびモメンタムインジケーターであり、エキスパートアドバイザー(EA)を開発する際に組み合わせることができます。前回の記事に続き、今回は開発済みモデルの運用中の学習や更新を、強化学習を用いてどのように実現できるかを検討します。この記事で使用するアルゴリズムは、本連載ではまだ扱っていない「TRPO(Trust Region Policy Optimization、信頼領域方策最適化)」として知られる手法です。また、MQL5ウィザードによるEAの組み立ては、モデルのテストをより迅速におこなえるだけでなく、異なるシグナルタイプで配布し検証できる形でセットアップできる点も利点です。
preview
多通貨エキスパートアドバイザーの開発(第16回):異なるクォート履歴がテスト結果に与える影響

多通貨エキスパートアドバイザーの開発(第16回):異なるクォート履歴がテスト結果に与える影響

開発中のエキスパートアドバイザー(EA)は、さまざまなブローカーとの取引で良好な結果を示すことが期待されていますが、現時点では、MetaQuotesデモ口座からのクォートを使用してテストを実行しています。テストや最適化に使用したクォートとは異なる価格データを持つ取引口座でも、EAが正しく機能する準備が整っているのかを確認してみましょう。
preview
ニューラルネットワークが簡単に(第93回):周波数領域と時間領域における適応予測(最終回)

ニューラルネットワークが簡単に(第93回):周波数領域と時間領域における適応予測(最終回)

本稿では、時系列予測において2つのブロック(周波数と時間)の結果を適応的に組み合わせるATFNetモデルのアプローチの実装を継続します。
preview
周期と取引

周期と取引

この記事は、取引における周期の活用についてです。周期モデルに基づいた取引戦略の構築を考えてみます。
preview
MQL5での取引戦略の自動化(第6回):スマートマネートレーディングのためのオーダーブロック検出の習得

MQL5での取引戦略の自動化(第6回):スマートマネートレーディングのためのオーダーブロック検出の習得

この記事では、純粋なプライスアクション分析を用いてMQL5でオーダーブロック検出を自動化します。オーダーブロックの定義、検出の実装、自動売買への統合をおこない、最後に戦略のバックテストを通じてパフォーマンスを評価します。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

今日は、プログラマーとしての職業生活のさまざまな段階で非常に役立つテクニックを学びます。多くの場合、制限されているのはプラットフォーム自体ではなく、制限について話す人の知識です。この記事では、常識と創造性があれば、クレイジーなプログラムなどを作成することなく、MetaTrader 5 プラットフォームをより面白くて多用途にし、シンプルでありながら安全で信頼性の高いコードを作成できることを説明します。創造力を駆使して、ソース コードを1行も削除したり追加したりすることなく、既存のコードを変更します。
preview
ニューラルネットワークが簡単に(第85回):多変量時系列予測

ニューラルネットワークが簡単に(第85回):多変量時系列予測

この記事では、線形モデルとTransformerの長所を調和的に組み合わせた、新しい複雑な時系列予測手法を紹介します。
preview
多通貨エキスパートアドバイザーの開発(第15回):実際の取引のためのEAの準備

多通貨エキスパートアドバイザーの開発(第15回):実際の取引のためのEAの準備

既製のエキスパートアドバイザー(EA)の完成に徐々に近づくにつれ、取引戦略のテスト段階では二次的に思える問題にも注意を払う必要があります。これらの問題は、実際の取引に移行する際に重要となります。
preview
MQL5取引ツールキット(第3回):未決注文管理EX5ライブラリの開発

MQL5取引ツールキット(第3回):未決注文管理EX5ライブラリの開発

MQL5のコードやプロジェクトで、包括的な未決注文管理EX5ライブラリを開発して実装する方法を学びましょう。本記事では、広範な未決注文管理EX5ライブラリを作成する手順を紹介し、それをインポートおよび実装する方法を、取引パネルまたはグラフィカルユーザーインターフェース(GUI)の構築を通じて解説します。このEA注文パネルを使用すれば、チャートウィンドウ上のGUIから、指定されたマジックナンバーに関連する未決注文を直接オープン、監視、削除することが可能です。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

C_Mouseクラスを改良した後は、分析のためのまったく新しいフレームワークを作るためのクラスを作ることに集中しましょう。この新しいクラスを作るのに、継承やポリモーフィズムは使用しません。その代わりに、価格線に新しいオブジェクトを追加します。それがこの記事でやろうとしていることです。次回は、分析結果を変更する方法について見るつもりです。これらはすべて、C_Mouseクラスのコードを変更することなくおこなわれます。実際には、継承やポリモーフィズムを使用すれば、もっと簡単に実現できるでしょう。しかし、同じ結果を得る方法は他にもあります。
preview
取引におけるニューラルネットワーク:Superpoint Transformer (SPFormer)

取引におけるニューラルネットワーク:Superpoint Transformer (SPFormer)

本記事では、中間データの集約を不要とするSuperpoint Transformer (SPFormer)に基づく3Dオブジェクトのセグメンテーション手法を紹介します。これによりセグメンテーション処理の高速化とモデル性能の向上が実現されます。
preview
ニューラルネットワークが簡単に(第77回):Cross-Covariance Transformer (XCiT)

ニューラルネットワークが簡単に(第77回):Cross-Covariance Transformer (XCiT)

モデルでは、しばしば様々なAttentionアルゴリズムを使用します。そして、おそらく最もよく使用するのがTransformerです。Transformerの主な欠点はリソースを必要とすることです。この記事では、品質を損なうことなく計算コストを削減する新しいアルゴリズムについて考察します。
preview
PythonとMQL5を使用した特徴量エンジニアリング(第2回):価格の角度

PythonとMQL5を使用した特徴量エンジニアリング(第2回):価格の角度

MQL5フォーラムには、価格変動の傾斜を計算する方法についての支援を求める投稿が多数あります。この記事では、取引したい市場における価格の変化によって形成される角度を計算する1つの方法を説明します。さらに、この新しい特徴量の設計に追加の労力と時間を投資する価値があるかどうかについてもお答えします。M1でUSDZARペアを予測する際に、価格の傾斜によってAIモデルの精度が向上するかどうかを調査します。
preview
MQL5での取引戦略の自動化(第42回):セッションベースのオープニングレンジブレイクアウト(ORB)システム

MQL5での取引戦略の自動化(第42回):セッションベースのオープニングレンジブレイクアウト(ORB)システム

MQL5で完全にカスタマイズ可能なセッションベースのオープニングレンジブレイクアウト(ORB)システムを作成します。このシステムでは、任意のセッション開始時刻とレンジの期間を設定でき、指定したオープニング期間の高値と安値を自動計算し、かつ動きの方向に沿った確定ブレイクアウトのみを取引します。
preview
リスク管理(第2回):グラフィカルインターフェースでのロット計算の実装

リスク管理(第2回):グラフィカルインターフェースでのロット計算の実装

本記事では、前回の記事で紹介した内容をさらに発展させ、MQL5の強力なグラフィカルコントロールライブラリを使って実際にGUIを作成する方法を解説します。ステップごとに、完全に動作するGUIを作る過程を追いながら、各メソッドの仕組みや役割、そしてその背後にある考え方についても丁寧に説明します。また、記事の最後には、作成したパネルをテストして、正しく機能することを確認します。
preview
知っておくべきMQL5ウィザードのテクニック(第31回):損失関数の選択

知っておくべきMQL5ウィザードのテクニック(第31回):損失関数の選択

損失関数は、機械学習アルゴリズムの重要な指標です。これは、与えられたパラメータセットが目標に対してどれだけうまく機能しているかを定量的に評価し、学習プロセスにフィードバックを提供する役割を果たします。本記事では、MQL5のカスタムウィザードクラスを使って、損失関数のさまざまな形式を探っていきます。
preview
初心者からエキスパートへ:隠れフィボナッチリトレースメントレベルの謎を解く

初心者からエキスパートへ:隠れフィボナッチリトレースメントレベルの謎を解く

本記事では、市場が反応する可能性のある非標準的なフィボナッチリトレースメントレベルを、データ駆動型の手法で発見および検証するアプローチを紹介します。MQL5での実装を想定した完全なワークフローを提示し、データ収集やバーやスイングの検出から始め、クラスタリング、統計的仮説検定、バックテスト、さらにMetaTrader 5のフィボナッチツールへの統合までを包括的にカバーします。ここでの目的は、経験的な観察に基づく推測を、統計的に裏付けられた売買シグナルへと変換する再現可能なパイプラインを構築することです。
preview
知っておくべきMQL5ウィザードのテクニック(第43回):SARSAによる強化学習

知っておくべきMQL5ウィザードのテクニック(第43回):SARSAによる強化学習

SARSAは、State-Action-Reward-State-Actionの略で、強化学習を実装する際に使用できる別のアルゴリズムです。Q学習とDQNで見たように、ウィザードで組み立てられたエキスパートアドバイザー(EA)の中で、これを単なる訓練メカニズムとしてではなく、独立したモデルとしてどのように実装できるかを検討します。
preview
MQL5でSHA-256暗号化アルゴリズムをゼロから実装する

MQL5でSHA-256暗号化アルゴリズムをゼロから実装する

これまで、DLLを使用せずに暗号通貨取引所との統合を構築することは長らく課題とされてきました。しかし、本ソリューションは、市場へ直接接続するための包括的なフレームワークを提供します。
preview
MQL5での取引戦略の自動化(第43回):適応型線形回帰チャネル戦略

MQL5での取引戦略の自動化(第43回):適応型線形回帰チャネル戦略

本記事では、ユーザー定義期間にわたって回帰直線と標準偏差チャネルを自動的に計算し、明確なトレンドを確認するために傾きが最小閾値を超えた場合にのみ有効化され、さらに価格がチャネル幅の設定可能な割合を超えてブレイクアウトした際にチャネルを動的に再生成または延長する、適応型リニア回帰チャネルシステムをMQL5で実装します。
preview
ニューラルネットワークが簡単に(第51回):Behavior-Guided Actor-Critic (BAC)

ニューラルネットワークが簡単に(第51回):Behavior-Guided Actor-Critic (BAC)

最後の2つの記事では、エントロピー正則化を報酬関数に組み込んだSoft Actor-Criticアルゴリズムについて検討しました。このアプローチは環境探索とモデル活用のバランスをとりますが、適用できるのは確率モデルのみです。今回の記事では、確率モデルと確定モデルの両方に適用できる代替アプローチを提案します。
preview
知っておくべきMQL5ウィザードのテクニック(第29回):MLPの学習率についての続き

知っておくべきMQL5ウィザードのテクニック(第29回):MLPの学習率についての続き

エキスパートアドバイザー(EA)のパフォーマンスに対する学習率の感度を、主に適応学習率を調べることでまとめます。これらの学習率は、訓練の過程で層の各パラメータごとにカスタマイズすることを目的としており、潜在的な利点と期待されるパフォーマンスの差を評価します。
preview
MQL5経済指標カレンダーを使った取引(第7回):リソースベースのニュースイベント分析による戦略テストの準備

MQL5経済指標カレンダーを使った取引(第7回):リソースベースのニュースイベント分析による戦略テストの準備

この記事では、MQL5の取引システムをストラテジーテスターでの検証に対応するため、経済指標カレンダーのデータをリソースとして埋め込み、ライブ環境ではないテスト分析に活用する方法を解説します。イベントの読み込みと、時間・通貨・影響度に基づくフィルタリングを実装し、最終的にストラテジーテスター内でその動作を検証します。これにより、ニュースに基づいた戦略の効果的なバックテストが可能になります。
preview
MQL5でのAI搭載取引システムの構築(第2回):ChatGPT統合型アプリケーションのUI開発

MQL5でのAI搭載取引システムの構築(第2回):ChatGPT統合型アプリケーションのUI開発

本記事では、MQL5でChatGPTを統合したプログラムを開発します。このプログラムでは、第1回で作成したJSON解析フレームワークを活用してOpenAIのAPIにプロンプトを送信し、MetaTrader 5のチャート上に応答を表示します。入力フィールド、送信ボタン、応答表示を備えたダッシュボードを実装し、API通信やテキストの折り返し処理をおこなうことで、ユーザーとのインタラクションを実現します。
preview
知っておくべきMQL5ウィザードのテクニック(第22回):条件付きGAN

知っておくべきMQL5ウィザードのテクニック(第22回):条件付きGAN

敵対的生成ネットワーク(GAN: Generative Adversarial Network)は、より正確な結果を得るために、互いに訓練し合うニューラルネットワークのペアです。ExpertSignalクラスにおける金融時系列の予測への応用の可能性を考慮し、これらのネットワークの条件型を採用します。
preview
データサイエンスとML(第35回):MQL5でのNumPy活用術 - 少ないコードで複雑なアルゴリズムを構築する技法

データサイエンスとML(第35回):MQL5でのNumPy活用術 - 少ないコードで複雑なアルゴリズムを構築する技法

NumPyライブラリは、Pythonプログラミング言語においてほぼすべての機械学習アルゴリズムの中核を支えています。本記事では、高度なモデルやアルゴリズムの構築を支援するために、複雑なコードをまとめたモジュールを実装していきます。