MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

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

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

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

本稿では、プロジェクトのソースコードを公開リポジトリに保存する際の1つのアプローチについて検討します。コードを複数のブランチに分散させることで、プロジェクト開発における明確で便利なルールを確立していきます。
preview
多通貨エキスパートアドバイザーの開発(第14回):リスクマネージャーにおける適応型ボリューム変更

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

以前開発されたリスクマネージャーには基本的な機能のみが含まれていました。取引戦略のロジックに干渉することなく取引結果を向上させるために、どのような開発の可能性があるかを検討してみましょう。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)モジュール化

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

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

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

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

ダイナミックマルチペアEAの形成(第5回):スキャルピングとスイングトレードの切替設計

今回は、スキャルピングとスイングトレードのモードを状況に応じて切り替えることができるダイナミックマルチペアエキスパートアドバイザー(EA)の設計方法を解説します。シグナル生成、取引実行、リスク管理の構造面およびアルゴリズム面での違いを網羅し、市場状況やユーザー入力に応じてEAが状況に応じて戦略を切り替える仕組みを紹介します。
preview
取引におけるニューラルネットワーク:時系列予測のための言語モデルの使用

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

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

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

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

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

この連載は教育的な性質のものであり、特定の機能の実装を示すことを目的としていないため、この記事では少し異なる方法でおこないます。因数分解を適用して行列の逆行列を取得する方法を示す代わりに、擬似逆行列の因数分解に焦点を当てます。その理由は、特別な方法で一般的な係数を取得することができる場合、一般的な係数を取得する方法を示すことに意味がないからです。さらに良いことに、読者は物事がなぜそのように起こるのかをより深く理解できるようになります。それでは、時間の経過とともにハードウェアがソフトウェアに取って代わる理由を考えてみましょう。
preview
古典的な戦略を再構築する(第4回):SP500と米財務省中期証券

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

この連載では、最新のアルゴリズムを用いて古典的な取引戦略を分析し、AIによって戦略を改善できるかどうかを検証します。本日の記事では、SP500と米財務省中期証券との関係を活用した古典的な取引手法を再考します。
preview
知っておくべきMQL5ウィザードのテクニック(第34回):非従来型RBMによる価格の埋め込み

知っておくべきMQL5ウィザードのテクニック(第34回):非従来型RBMによる価格の埋め込み

制限ボルツマンマシンは、1980年代半ば、計算資源が非常に高価だった時代に開発されたニューラルネットワークの一種です。当初は、入力された訓練データセットの次元を削減し、隠れた確率や特性を捉えるために、ギブスサンプリングとコントラストダイバージェンス(Contrastive Divergence)に依存していました。RBMが予測用の多層パーセプトロンに価格を「埋め込む」場合、バックプロパゲーションがどのように同様の性能を発揮できるかを検証します。
preview
古典的な戦略を再構築する(第13回):移動平均線のクロスオーバーにおける遅延の最小化

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

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

Pythonの価格変動離散化手法

Python + MQL5を使用した価格離散化手法を見ていきます。本記事では、バー生成に関する幅広い手法を実装したPythonライブラリの開発経験についご紹介します。クラシックなボリュームバーやレンジバーから、よりエキゾチックな練行足やカギ足といった手法までを網羅します。スリーラインブレイクローソク足やレンジバーの統計分析をおこないながら、価格を離散的に表現する新たな方法を探っていきます。
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
母集団アルゴリズムのハイブリダイゼーション:逐次構造と並列構造

母集団アルゴリズムのハイブリダイゼーション:逐次構造と並列構造

ここでは、最適化アルゴリズムのハイブリダイゼーションの世界に飛び込み、3つの主要なタイプ、すなわち戦略混合、逐次ハイブリダイゼーション、並列ハイブリダイゼーションについて見ていきます。関連する最適化アルゴリズムを組み合わせ、テストする一連の実験をおこないます。
preview
ウィリアム・ギャンの手法(第3回):占星術は効果があるのか

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

惑星や星の位置は金融市場に影響を与えるのでしょうか。統計とビッグデータを武器に、星と株価チャートが交差する世界への刺激的な旅に出ましょう。
preview
外国為替データ分析における連関規則の使用

外国為替データ分析における連関規則の使用

スーパーマーケットの小売分析で使われる予測ルールを、実際のFX市場に応用する方法は?クッキー、牛乳、パンの購買傾向と株式市場の取引が関係する方法は?この記事では、連関規則を活用した革新的なアルゴリズム取引手法について解説します。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(I)

初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(I)

MetaTrader 5ターミナルでの取引において、ニュースのアクセス性は非常に重要な要素です。数多くのニュースAPIが存在するものの、多くのトレーダーはそれらを効果的に取引環境に統合することに課題を抱えています。本記事では、ニュースを最も必要とする場所であるチャート上に直接表示する、効率的なソリューションの構築を目指します。その実現のために、APIソースからのリアルタイムニュースを監視し、表示するNews Headline EA(エキスパートアドバイザー)を作成します。
preview
チャート同期でテクニカル分析を簡単にする

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

「Chart Synchronization for Easier Technical Analysis」は、単一の銘柄に対してすべてのチャート時間足でトレンドライン、四角形、インジケーターなどの一貫したグラフィックオブジェクトが表示されるようにするツールです。パン、ズーム、銘柄変更などの操作はすべての同期したチャートに反映されるため、トレーダーは複数の時間足で同じプライスアクションの文脈をシームレスに確認し、比較できます。
preview
知っておくべきMQL5ウィザードのテクニック(第81回): β-VAE推論学習で一目均衡表とADX-Wilderのパターンを利用する

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

本記事は第80回の続編です。前回は、強化学習フレームワーク下で一目均衡表とADXの組み合わせを検証しました。今回は焦点を推論学習に移します。一目均衡表とADXは前回も述べた通り補完的な指標ですが、今回は前回の記事で触れたパイプライン使用に関する結論を再検討します。推論学習には、変分オートエンコーダのβアルゴリズムを用います。また、MQL5ウィザードとの統合を目的として設計されたカスタムシグナルクラスの実装も継続します。
preview
母集団最適化アルゴリズム:極値から抜け出す力(第I部)

母集団最適化アルゴリズム:極値から抜け出す力(第I部)

本稿では、母集団最適化アルゴリズムの挙動を、集団の多様性が低い場合に効率的に極小値を脱出し、最大値に到達する能力という観点から検証することを目的としたユニークな実験を紹介します。この方向性で取り組むことで、ユーザーが設定した座標を出発点として、どの特定のアルゴリズムが検索を成功させることができるのか、またその成功にどのような要因が影響するのかについて、さらなる洞察が得られるでしょう。
preview
アルゴリズム取引戦略:AIで金市場の頂点を目指す

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

本記事では、機械学習を用いた金(ゴールド)の取引戦略作成手法を紹介します。提案された手法は、時系列データをさまざまな角度から分析して予測するアプローチに基づいており、従来の金融時系列の分析と予測のみを用いた取引システム作成手法と比較して、その利点や欠点を明らかにすることができます。
preview
ニュース取引が簡単に(第4回):パフォーマンス向上

ニュース取引が簡単に(第4回):パフォーマンス向上

この記事では、ストラテジーテスターでエキスパートアドバイザー(EA)のランタイムを改善する方法について掘り下げていきます。これらのニュースイベントの時間は、指定された時間内にアクセスされます。これにより、EAはボラティリティの高い環境でも低い環境でも、イベントドリブン取引を効率的に管理できます。
preview
機械学習を用いたトレンド取引戦略の開発

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

この研究では、トレンドフォロー型取引戦略を開発するための新しい手法を提案します。このセクションでは、学習データのアノテーション方法と、それを用いて分類器を学習させるプロセスについて説明します。このプロセスにより、MetaTrader 5上で稼働可能な、完全に実用的な取引システムが構築されます。
preview
知っておくべきMQL5ウィザードのテクニック(第58回):移動平均と確率的オシレーターパターンを用いた強化学習(DDPG)

知っておくべきMQL5ウィザードのテクニック(第58回):移動平均と確率的オシレーターパターンを用いた強化学習(DDPG)

移動平均とストキャスティクスはよく使われるインジケーターで、前回の記事ではこの2つの組み合わせパターンを教師あり学習ネットワークで分析して、どのパターンが使えそうかを確認しました。今回はそこから一歩進めて、訓練済みネットワークに強化学習を組み合わせたらパフォーマンスにどんな影響があるかを見ていきます。テスト期間はかなり短いので、その点は踏まえておいてください。とはいえ、今回もMQL5ウィザードのおかげで、コード量はかなり少なくて済んでいます。
preview
知っておくべきMQL5ウィザードのテクニック(第77回):ゲーターオシレーターとA/Dオシレーターの使用

知っておくべきMQL5ウィザードのテクニック(第77回):ゲーターオシレーターとA/Dオシレーターの使用

ビル・ウィリアムズが開発したゲーターオシレーター(Gator Oscillator)とA/Dオシレーター(Accumulation/Distribution Oscillator)は、MQL5のエキスパートアドバイザー(EA)内で調和的に活用できるインジケーターペアの一例です。ゲーターオシレーターはトレンドを確認するために使用し、A/Dオシレーターは出来高を通じてそのトレンドを検証する補助指標として機能します。本記事では、これら2つのインジケーターの組み合わせについて、MQL5ウィザードを活用して構築およびテストをおこない、その有効性を検証します。
preview
リプレイシステムの開発(第61回):サービスの再生(II)

リプレイシステムの開発(第61回):サービスの再生(II)

この記事では、リプレイ/シミュレーションシステムをより効率的かつ安全に動作させるための変更点について解説します。また、クラスを最大限に活用したいと考えている方にも役立つ情報を取り上げます。さらに、クラスを使用する際にコードのパフォーマンスを低下させるMQL5特有の問題点を取り上げ、それに対する具体的な解決策についても説明します。
preview
初級から中級へ:SWITCH文

初級から中級へ:SWITCH文

この記事では、SWITCH文の最も基本的かつシンプルな使い方について学びます。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
MQL5入門(第22回):5-0ハーモニックパターンを用いたエキスパートアドバイザーの構築

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

本記事では、MQL5において5-0ハーモニックパターンを検出して取引する方法、その妥当性をフィボナッチ比率で検証する方法、そしてチャート上に表示する方法について解説します。
preview
MQL5での取引戦略の自動化(第39回):信頼区間とダッシュボードを備えた統計的平均回帰

MQL5での取引戦略の自動化(第39回):信頼区間とダッシュボードを備えた統計的平均回帰

統計的平均回帰取引用のMQL5エキスパートアドバイザー(EA)を開発します。指定期間における平均、分散、歪度、尖度、ジャック=ベラ統計量などのモーメントを算出し、非正規分布を特定するとともに、適応的な閾値を用いた信頼区間に基づいて売買シグナルを生成します。
preview
DoEasy - コントロール(第33部):垂直スクロールバー

DoEasy - コントロール(第33部):垂直スクロールバー

この記事では、DoEasyライブラリのグラフィカル要素の開発を続け、フォームオブジェクトコントロールの垂直スクロールを追加し、さらに将来必要となる便利な関数やメソッドを紹介します。
preview
人工藻類アルゴリズム(AAA)

人工藻類アルゴリズム(AAA)

本稿では、微細藻類に特徴的な生物学的プロセスに基づく人工藻類アルゴリズム(AAA)について考察します。このアルゴリズムには、螺旋運動、進化過程、適応過程が含まれており、最適化問題を解くことができます。この記事では、AAAが機能する原理と、数学的モデリングにおけるその可能性について詳しく分析し、自然とアルゴリズムによる解とのつながりを強調しています。
preview
知っておくべきMQL5ウィザードのテクニック(第56回):ビル・ウィリアムズフラクタル

知っておくべきMQL5ウィザードのテクニック(第56回):ビル・ウィリアムズフラクタル

ビル・ウィリアムズによるフラクタルは、最初にチャート上で目にしたときには見落とされがちな強力なインジケーターです。一見するとチャートが煩雑に見え、鋭さに欠けるように思えるかもしれません。この記事では、このインジケーターの覆いを取り払い、そのさまざまなパターンがどのように機能するのかを、MQL5ウィザードで組み上げたエキスパートアドバイザー(EA)によるフォワードウォークテストを通じて検証していきます。
preview
FX裁定取引:合成通貨の動きとその平均回帰の分析

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

本記事では、PythonおよびMQL5を用いて合成通貨の動きを分析し、現在のFX裁定取引の実現可能性について検討します。また、合成通貨を分析するための既製Pythonコードを紹介するとともに、FXにおける合成通貨の概念についても詳しく解説します。
preview
プライスアクション分析ツールキットの開発(第24回):プライスアクション定量分析ツール

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

ローソク足のパターンは、潜在的な市場の動きに関する貴重な洞察を提供します。単一のローソク足でも、現在のトレンドの継続を示すものもあれば、価格の動きの中での位置によって反転を示唆するものもあります。本記事では、4つの主要なローソク足形成を自動で識別するエキスパートアドバイザー(EA)を紹介します。次のセクションを参照して、このツールがどのようにプライスアクション分析を強化できるかを学んでください。
preview
MQL5での取引戦略の自動化(第43回):適応型線形回帰チャネル戦略

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

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

初級から中級へ:変数(III)

今日は、定義済みのMQL5言語変数と定数の使用方法を見ていきます。さらに、別の特殊なタイプの変数である関数を分析します。これらの変数を適切に操作する方法を知っているかどうかは、動作するアプリケーションと動作しないアプリケーションの違いを意味する場合があります。ここで紹介されている内容を理解するには、以前の記事で説明した内容を理解する必要があります。
preview
初級から中級へ:演算子の優先順位

初級から中級へ:演算子の優先順位

これは間違いなく、純粋に理論だけで説明するには最も難しいテーマの一つです。だからこそ、ここで取り上げるすべての内容を実際に手を動かして練習する必要があります。一見すると単純そうに見えるかもしれませんが、演算子というトピックは、継続的な学習と実践を通じて初めて理解できるものです。
preview
プライスアクション分析ツールキットの開発(第47回):MetaTrader 5で外国為替セッションとブレイクアウトを追跡する

プライスアクション分析ツールキットの開発(第47回):MetaTrader 5で外国為替セッションとブレイクアウトを追跡する

世界中の市場セッションは1日の取引のリズムを形成しており、それらの重なりを理解することは、エントリーやエグジットのタイミングを見極めるうえで非常に重要です。本記事では、これらの世界的な取引時間をチャート上で視覚的に再現するインタラクティブな取引セッションEAを構築します。このEAは、アジア、東京、ロンドン、ニューヨークの各セッションを色分けされた矩形として自動的に描画し、各市場の開始と終了に応じてリアルタイムで更新します。また、チャート上のトグルボタン、動的な情報パネル、そしてライブのステータスやブレイクアウトメッセージを表示するスクロール式のティッカーヘッドラインも搭載しています。複数のブローカーでテストされたこのEAは、精度とデザイン性を兼ね備えており、ボラティリティの移行を視覚的に把握し、セッション間のブレイクアウトを特定し、グローバル市場の動きを常に意識したトレードを可能にします。