MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
取引におけるニューラルネットワーク:時系列予測のための軽量モデル

取引におけるニューラルネットワーク:時系列予測のための軽量モデル

軽量な時系列予測モデルは、最小限のパラメータ数で高いパフォーマンスを実現します。これにより、コンピューティングリソースの消費を抑えつつ、意思決定の迅速化が可能となります。こうしたモデルは軽量でありながら、より複雑なモデルと同等の予測精度を達成できます。
preview
HTTPとConnexus(第2回):HTTPアーキテクチャとライブラリ設計の理解

HTTPとConnexus(第2回):HTTPアーキテクチャとライブラリ設計の理解

この記事では、HTTPプロトコルの基礎について、主なメソッド(GET、POST、PUT、DELETE)、ステータスコード、URLの構造について説明します。さらに、HTTPリクエストにおけるURLとクエリパラメータの操作を容易にするCQueryParamとCURLクラスによるConexxusライブラリの構築の始まりも紹介します。
preview
取引におけるニューラルネットワーク:制御されたセグメンテーション

取引におけるニューラルネットワーク:制御されたセグメンテーション

この記事では、複雑なマルチモーダルインタラクション分析と特徴量理解の方法について説明します。
preview
MQL5で他の言語の実用的なモジュールを実装する(第3回):Pythonのscheduleモジュール、強化版OnTimerイベント

MQL5で他の言語の実用的なモジュールを実装する(第3回):Pythonのscheduleモジュール、強化版OnTimerイベント

Pythonのscheduleモジュールは、繰り返しタスクをスケジュールする簡単な方法を提供します。MQL5には組み込みの同等機能はありませんが、この記事ではMetaTrader 5でのタイムイベントの設定を容易にするために、類似のライブラリを実装します。
preview
FX裁定取引:合成通貨の動きとその平均回帰の分析

FX裁定取引:合成通貨の動きとその平均回帰の分析

本記事では、PythonおよびMQL5を用いて合成通貨の動きを分析し、現在のFX裁定取引の実現可能性について検討します。また、合成通貨を分析するための既製Pythonコードを紹介するとともに、FXにおける合成通貨の概念についても詳しく解説します。
preview
平均足を使ったプロフェッショナルな取引システムの構築(第2回):EAの開発

平均足を使ったプロフェッショナルな取引システムの構築(第2回):EAの開発

本記事では、MQL5を用いてプロフェッショナルな平均足ベースのエキスパートアドバイザー(EA)を開発する方法について解説します。入力パラメータ、列挙型、インジケーター、グローバル変数の設定方法から、コアとなる売買ロジックの実装までを順を追って説明します。また、開発したEAを金(ゴールド)でバックテストして、正しく動作するかどうかを検証する方法も学べます。
preview
取引におけるニューラルネットワーク:シーン認識オブジェクト検出(HyperDet3D)

取引におけるニューラルネットワーク:シーン認識オブジェクト検出(HyperDet3D)

ハイパーネットワークを活用した新しいオブジェクト検出アプローチをご紹介します。ハイパーネットワークはメインモデルの重みを生成し、現在の市場状況の特性を考慮に入れることができます。この手法により、モデルはさまざまな取引条件に適応し、予測精度の向上が可能になります。
preview
株式市場における非線形回帰モデル

株式市場における非線形回帰モデル

株式市場における非線形回帰モデル:金融市場は予測できるのかEURUSDの価格を予測するモデルを作成し、それに基づいて2つのロボット(Python版とMQL5版)を作ることを考えてみましょう。
preview
ログレコードをマスターする(第5回):キャッシュとローテーションによるハンドラの最適化

ログレコードをマスターする(第5回):キャッシュとローテーションによるハンドラの最適化

この記事では、ハンドラへのフォーマッタ追加、実行サイクルを管理するためのCIntervalWatcherクラスの導入、キャッシュとファイルローテーションによる最適化、さらにパフォーマンステストおよび実用的な使用例を通じて、ログライブラリをさらに改善します。これらの機能強化により、さまざまな開発シナリオに柔軟に対応可能な、効率的でスケーラブルなロギングシステムが実現します。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

この議論では、リアルタイムの市場データや取引口座情報の取得方法、さまざまな計算の実行、そしてその結果をカスタムパネルに表示する方法について探ります。これを実現するために、パネル作成を含むこれらすべての機能をカプセル化したAnalyticsPanelクラスの開発にさらに深く取り組みます。この取り組みは、モジュラー設計の原則とコード構造のベストプラクティスを用い、高度な機能を導入するNew Admin Panel EAの継続的な拡張の一環です。
preview
機械学習の限界を克服する(第2回):再現性の欠如

機械学習の限界を克服する(第2回):再現性の欠如

本記事では、同一の戦略と金融銘柄を用いても、ブローカーによって取引結果が大きく異なる理由について探ります。その背景には、価格が分散的に形成されていることや、データの不一致があるためです。本記事は、MQL5開発者がMQL5マーケットプレイスで自らの製品に対して賛否両論の評価を受ける理由を理解し、透明性が高く再現可能な成果を確保するためには、特定のブローカーに合わせたアプローチを取る必要があることを示唆しています。この取り組みが広く受け入れられれば、コミュニティにとって重要な実務上のベストプラクティスへと発展する可能性があります。
preview
平均足を使ったプロフェッショナルな取引システムの構築(第1回):カスタムインジケーターの開発

平均足を使ったプロフェッショナルな取引システムの構築(第1回):カスタムインジケーターの開発

本記事は、MQL5でカスタムインジケーターを作成するための実践的なスキルとベストプラクティスを解説する、2部構成シリーズの第1回目です。この記事では平均足を題材として、平均足チャートの理論、平均足の計算方法、そしてテクニカル分析への応用を順に紹介します。中心となるのは、完全に機能する平均足インジケーターをゼロから構築するためのステップバイステップガイドであり、各コードの意図を理解できるように丁寧な説明を加えています。この基礎知識は、第2回で取り組む「平均足ロジックを用いたエキスパートアドバイザーの構築」へとつながります。
preview
リプレイシステムの開発(第54回):最初のモジュールの誕生

リプレイシステムの開発(第54回):最初のモジュールの誕生

この記事では、リプレイ/シミュレーターシステムで使用するための、他の目的にも汎用的に使用できる、実際に機能するモジュールの最初のものを組み立てる方法について説明します。マウスモジュールです。
preview
ニューラルネットワークが簡単に(第92回):周波数および時間領域における適応的予測

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

FreDF法の著者は、周波数領域と時間領域を組み合わせた予測の利点を実験的に確認しました。しかし、重みハイパーパラメータの使用は、非定常時系列には最適ではありません。この記事では、周波数領域と時間領域における予測の適応的組み合わせの方法について学びます。
preview
取引におけるニューラルネットワーク:対照パターンTransformer

取引におけるニューラルネットワーク:対照パターンTransformer

Contrastive Transformerは、個々のローソク足のレベルと、全体のパターンに基づいて市場を分析するよう設計されています。これにより、市場トレンドのモデリングの質が向上します。さらに、ローソク足とパターンの表現を整合させるために対照学習を用いることで、自己調整が促され、予測の精度が高まります。
preview
マーケットプロファイルインジケーター(第2回):キャンバス上の最適化と描画

マーケットプロファイルインジケーター(第2回):キャンバス上の最適化と描画

この記事では、複数のグラフィカルオブジェクトでの描画を、CCanvasクラスのオブジェクト上での描画に置き換えた、最適化されたマーケットプロファイルインジケーターのバージョンについて考察しています。
preview
データサイエンスとML(第44回):ベクトル自己回帰(VAR)を用いた外国為替OHLC時系列予測

データサイエンスとML(第44回):ベクトル自己回帰(VAR)を用いた外国為替OHLC時系列予測

本記事では、ベクトル自己回帰(VAR: Vector Autoregression)モデルを用いて、複数の通貨ペアのOHLC(始値、高値、安値、終値)時系列データを予測する方法を解説します。VARモデルの実装、学習、MetaTrader5上でのリアルタイム予測までをカバーし、通貨間の相互依存関係を分析して取引戦略の改善に役立てることができます。
preview
リプレイシステムの開発(第42回):Chart Traderプロジェクト(I)

リプレイシステムの開発(第42回):Chart Traderプロジェクト(I)

もっと面白いものを作りましょう。ネタバレはしたくないので、理解を深めるために記事を読んでください。リプレイ/シミュレーターシステムの開発に関する本連載の最初の段階から、私は、開発中のシステムと実際の市場の両方で同じようにMetaTrader 5プラットフォームを使用することがアイディアであると述べてきました。これが適切におこなわれることが重要です。ある道具を使用して訓練して戦い方を学んだ末、戦いの最中に別の道具を使用しなければならないというようなことは誰もしたくありません。
preview
リプレイシステムの開発(第67回):コントロールインジケーターの改良

リプレイシステムの開発(第67回):コントロールインジケーターの改良

この記事では、コードを少し手直しすることで、どのような改善が得られるかを見ていきます。今回の改良は、コードの簡素化を図り、MQL5ライブラリの呼び出しをより活用し、そして何よりも、将来的に開発する可能性のある他のプロジェクトでも、より安定して安全かつ使いやすくなることを目的としています。
preview
多通貨エキスパートアドバイザーの開発(第17回):実際の取引に向けたさらなる準備

多通貨エキスパートアドバイザーの開発(第17回):実際の取引に向けたさらなる準備

現在、EAはデータベースを利用して、取引戦略の各インスタンスの初期化文字列を取得しています。しかし、データベースは非常に大容量であり、実際のEAの動作には不要な情報も多数含まれています。そこで、データベースへの接続を必須とせずにEAを機能させる方法を考えてみましょう。
preview
知っておくべきMQL5ウィザードのテクニック(第82回):DQN強化学習でTRIXとWPRのパターンを使用する

知っておくべきMQL5ウィザードのテクニック(第82回):DQN強化学習でTRIXとWPRのパターンを使用する

前回の記事では、推論学習の枠組みにおける一目均衡表とADXの組み合わせを検証しました。本記事では、第68回で最後に取り上げたインジケーターの組み合わせ、すなわちTRIXとWilliams Percent Range (WPR)を対象に、強化学習を再度取り上げます。今回使用するアルゴリズムは、QR-DQN (Quantile Regression DQN)です。これまでと同様に、MQL5ウィザードでの実装を前提としたカスタムシグナルクラスとして提示します。
preview
ニューラルネットワークが簡単に(第80回):Graph Transformer Generative Adversarial Model (GTGAN)

ニューラルネットワークが簡単に(第80回):Graph Transformer Generative Adversarial Model (GTGAN)

この記事では、2024年1月に導入された、グラフ制約のある建築レイアウト生成の複雑な問題を解くためのGTGAN (Graph Transformer Generative Adversarial Model)アルゴリズムについて知ろうと思います。
preview
知っておくべきMQL5ウィザードのテクニック(第35回):サポートベクトル回帰

知っておくべきMQL5ウィザードのテクニック(第35回):サポートベクトル回帰

サポートベクトル回帰(SVR)は、2つのデータセット間の関係を最も適切に表現する関数または「超平面」を見つけるための理想的な手法です。本稿では、MQL5ウィザードのカスタムクラス内での時系列予測において、この手法を活用することを試みます。
preview
MQL5 Algo Forgeへの移行(第2回):複数のリポジトリの操作

MQL5 Algo Forgeへの移行(第2回):複数のリポジトリの操作

本稿では、プロジェクトのソースコードを公開リポジトリに保存する際の1つのアプローチについて検討します。コードを複数のブランチに分散させることで、プロジェクト開発における明確で便利なルールを確立していきます。
preview
チャート同期でテクニカル分析を簡単にする

チャート同期でテクニカル分析を簡単にする

「Chart Synchronization for Easier Technical Analysis」は、単一の銘柄に対してすべてのチャート時間足でトレンドライン、四角形、インジケーターなどの一貫したグラフィックオブジェクトが表示されるようにするツールです。パン、ズーム、銘柄変更などの操作はすべての同期したチャートに反映されるため、トレーダーは複数の時間足で同じプライスアクションの文脈をシームレスに確認し、比較できます。
preview
多通貨エキスパートアドバイザーの開発(第14回):リスクマネージャーにおける適応型ボリューム変更

多通貨エキスパートアドバイザーの開発(第14回):リスクマネージャーにおける適応型ボリューム変更

以前開発されたリスクマネージャーには基本的な機能のみが含まれていました。取引戦略のロジックに干渉することなく取引結果を向上させるために、どのような開発の可能性があるかを検討してみましょう。
preview
古典的な戦略を再構築する(第4回):SP500と米財務省中期証券

古典的な戦略を再構築する(第4回):SP500と米財務省中期証券

この連載では、最新のアルゴリズムを用いて古典的な取引戦略を分析し、AIによって戦略を改善できるかどうかを検証します。本日の記事では、SP500と米財務省中期証券との関係を活用した古典的な取引手法を再考します。
preview
取引におけるニューラルネットワーク:双曲潜在拡散モデル(HypDiff)

取引におけるニューラルネットワーク:双曲潜在拡散モデル(HypDiff)

この記事では、異方性拡散プロセスを用いた双曲潜在空間における初期データのエンコーディング手法について検討します。これにより、現在の市場状況におけるトポロジー的特徴をより正確に保持でき、分析の質が向上します。
preview
古典的な戦略を再構築する(第13回):移動平均線のクロスオーバーにおける遅延の最小化

古典的な戦略を再構築する(第13回):移動平均線のクロスオーバーにおける遅延の最小化

移動平均クロスオーバーは、私たちのコミュニティにおけるトレーダーの間で広く知られている戦略ですが、その基本的な仕組みは誕生以来ほとんど変化していません。本稿では、この戦略に存在する“遅延”を最小限に抑えることを目的とした、わずかながらも重要な改良について紹介します。元の戦略を愛用しているトレーダーの方々にも、今回ご紹介する洞察をもとに、戦略の見直しを検討していただければ幸いです。同一の期間を持つ2つの移動平均を使用することで、戦略の根本的な原則を損なうことなく、遅延を大幅に削減することが可能になります。
preview
アルゴリズム取引戦略:AIで金市場の頂点を目指す

アルゴリズム取引戦略:AIで金市場の頂点を目指す

本記事では、機械学習を用いた金(ゴールド)の取引戦略作成手法を紹介します。提案された手法は、時系列データをさまざまな角度から分析して予測するアプローチに基づいており、従来の金融時系列の分析と予測のみを用いた取引システム作成手法と比較して、その利点や欠点を明らかにすることができます。
preview
知っておくべきMQL5ウィザードのテクニック(第67回):TRIXパターンとWilliams Percent Rangeの使用

知っておくべきMQL5ウィザードのテクニック(第67回):TRIXパターンとWilliams Percent Rangeの使用

三重指数移動平均オシレーター(TRIX: Triple Exponential Moving Average Oscillator)とウィリアムズパーセントレンジオシレーター(WPR: Williams Percent Range)は、MQL5のエキスパートアドバイザー(EA)において併用できるもう一組のインジケーターです。このインジケーターペアは、これまで取り上げたものと同様に補完関係にあり、TRIXがトレンドを定義し、ウィリアムズパーセントレンジがサポートおよびレジスタンス水準を確認します。いつものように、MQL5ウィザードを使用して、この2つが持つ可能性をプロトタイピングします。
preview
ニューラルネットワークの実践:擬似逆行列(II)

ニューラルネットワークの実践:擬似逆行列(II)

この連載は教育的な性質のものであり、特定の機能の実装を示すことを目的としていないため、この記事では少し異なる方法でおこないます。因数分解を適用して行列の逆行列を取得する方法を示す代わりに、擬似逆行列の因数分解に焦点を当てます。その理由は、特別な方法で一般的な係数を取得することができる場合、一般的な係数を取得する方法を示すことに意味がないからです。さらに良いことに、読者は物事がなぜそのように起こるのかをより深く理解できるようになります。それでは、時間の経過とともにハードウェアがソフトウェアに取って代わる理由を考えてみましょう。
preview
取引におけるニューラルネットワーク:時系列予測のための言語モデルの使用

取引におけるニューラルネットワーク:時系列予測のための言語モデルの使用

時系列予測モデルの研究を続けます。本記事では、事前訓練済みの言語モデルを活用した複雑なアルゴリズムについて説明します。
preview
MQL5で取引管理者パネルを作成する(第8回):分析パネル

MQL5で取引管理者パネルを作成する(第8回):分析パネル

今日は、管理パネルEAに統合された専用ウィンドウ内に、便利な取引メトリクスを組み込む方法について掘り下げていきます。本稿では、MQL5を活用して分析パネル(Analytics Panel)を開発する方法に焦点を当て、そのパネルが取引管理者にもたらすデータの価値について解説します。この開発プロセスは教育的意義が大きく、初心者・経験者を問わず開発者にとって有益な学びを提供します。この機能は、高度なソフトウェアツールを通じて取引マネージャーを支援する本連載の可能性を示す好例です。さらに、取引管理パネル(Trading Administrator Panel)の機能拡張の一環として、PieChartクラスとChartCanvasクラスの実装についても取り上げます。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)モジュール化

MQL5で取引管理者パネルを作成する(第9回):コード編成(I)モジュール化

本ディスカッションでは、MQL5プログラムをより小さく扱いやすいモジュールに分割する一歩を踏み出します。これらのモジュール化されたコンポーネントをメインプログラムに統合することで、構造が整理され保守性が向上します。この手法によりメインプログラムの構造が簡素化されるだけでなく、各コンポーネントを他のエキスパートアドバイザー(EA)やインジケーター開発にも再利用可能にします。モジュール設計を採用することで、将来的な機能拡張の基盤を確立し、私たちのプロジェクトだけでなく広く開発者コミュニティにも貢献できるものとなります。
preview
機械学習を用いたトレンド取引戦略の開発

機械学習を用いたトレンド取引戦略の開発

この研究では、トレンドフォロー型取引戦略を開発するための新しい手法を提案します。このセクションでは、学習データのアノテーション方法と、それを用いて分類器を学習させるプロセスについて説明します。このプロセスにより、MetaTrader 5上で稼働可能な、完全に実用的な取引システムが構築されます。
preview
MQL5でスマート取引マネージャーを構築する:損益分岐点、トレーリングストップ、部分決済を自動化する

MQL5でスマート取引マネージャーを構築する:損益分岐点、トレーリングストップ、部分決済を自動化する

「スマート取引マネージャー」エキスパートアドバイザー(EA)をMQL5で構築し、損益分岐点へのストップロス移動、トレーリングストップ、部分決済などの機能で取引管理を自動化する方法を学びましょう。これは、時間を節約し、取引の一貫性を向上させたいトレーダー向けの、実践的かつステップバイステップのガイドです。
preview
ウィリアム・ギャンの手法(第3回):占星術は効果があるのか

ウィリアム・ギャンの手法(第3回):占星術は効果があるのか

惑星や星の位置は金融市場に影響を与えるのでしょうか。統計とビッグデータを武器に、星と株価チャートが交差する世界への刺激的な旅に出ましょう。
preview
知っておくべきMQL5ウィザードのテクニック(第81回): β-VAE推論学習で一目均衡表とADX-Wilderのパターンを利用する

知っておくべきMQL5ウィザードのテクニック(第81回): β-VAE推論学習で一目均衡表とADX-Wilderのパターンを利用する

本記事は第80回の続編です。前回は、強化学習フレームワーク下で一目均衡表とADXの組み合わせを検証しました。今回は焦点を推論学習に移します。一目均衡表とADXは前回も述べた通り補完的な指標ですが、今回は前回の記事で触れたパイプライン使用に関する結論を再検討します。推論学習には、変分オートエンコーダのβアルゴリズムを用います。また、MQL5ウィザードとの統合を目的として設計されたカスタムシグナルクラスの実装も継続します。
preview
MQL5入門(第22回):5-0ハーモニックパターンを用いたエキスパートアドバイザーの構築

MQL5入門(第22回):5-0ハーモニックパターンを用いたエキスパートアドバイザーの構築

本記事では、MQL5において5-0ハーモニックパターンを検出して取引する方法、その妥当性をフィボナッチ比率で検証する方法、そしてチャート上に表示する方法について解説します。