MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MQL5でカスタムキャンバスグラフィックを使用したケルトナーチャネルインジケーターの構築

MQL5でカスタムキャンバスグラフィックを使用したケルトナーチャネルインジケーターの構築

本記事では、MQL5を用いてカスタムキャンバスグラフィック付きのケルトナーチャネルインジケーターを構築します。移動平均の統合、ATRの計算、そして視覚的に強化されたチャート表示について詳しく解説します。また、インジケーターの実用性を評価するためのバックテスト手法についても取り上げ、実際の取引に役立つ洞察を提供します。
preview
リプレイシステムの開発(第59回):新たな未来

リプレイシステムの開発(第59回):新たな未来

さまざまなアイデアを適切に理解することで、より少ない労力でより多くのことを実現できます。この記事では、サービスがチャートと対話する前にテンプレートを構成する必要がある理由について説明します。また、マウスポインタを改良し、より多くの機能を持たせることについても考察します。
preview
DoEasy - コントロール(第33部):垂直スクロールバー

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

この記事では、DoEasyライブラリのグラフィカル要素の開発を続け、フォームオブジェクトコントロールの垂直スクロールを追加し、さらに将来必要となる便利な関数やメソッドを紹介します。
preview
化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

第2回では、化学演算子を1つのアルゴリズムに集め、その結果の詳細な分析を紹介します。化学反応最適化(CRO)法がテスト機能に関する複雑な問題の解決にどのように対処するかを見てみましょう。
preview
取引におけるニューラルネットワーク:時系列予測のための軽量モデル

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

軽量な時系列予測モデルは、最小限のパラメータ数で高いパフォーマンスを実現します。これにより、コンピューティングリソースの消費を抑えつつ、意思決定の迅速化が可能となります。こうしたモデルは軽量でありながら、より複雑なモデルと同等の予測精度を達成できます。
preview
リプレイシステムの開発(第71回):正しい時間を知る(IV)

リプレイシステムの開発(第71回):正しい時間を知る(IV)

この記事では、前回の記事で紹介したリプレイ/シミュレーションサービスに関連する実装方法について見ていきます。人生の多くのことと同様に、問題は必ず発生するものです。そして今回も例外ではありませんでした。本記事では、引き続き改善をおこなっていきます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
ログレコードをマスターする(第5回):キャッシュとローテーションによるハンドラの最適化

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

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

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

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

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

この記事では、ストラテジーテスターでエキスパートアドバイザー(EA)のランタイムを改善する方法について掘り下げていきます。これらのニュースイベントの時間は、指定された時間内にアクセスされます。これにより、EAはボラティリティの高い環境でも低い環境でも、イベントドリブン取引を効率的に管理できます。
preview
取引におけるニューラルネットワーク:制御されたセグメンテーション

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

この記事では、複雑なマルチモーダルインタラクション分析と特徴量理解の方法について説明します。
preview
取引におけるニューラルネットワーク:パターンTransformerを用いた市場分析

取引におけるニューラルネットワーク:パターンTransformerを用いた市場分析

モデルを使用して市場の状況を分析する場合、主にローソク足に注目します。しかし、ローソク足パターンが将来の価格変動を予測するのに役立つことは長い間知られていました。この記事では、これら両方のアプローチを統合できる方法について説明します。
preview
PythonとMQL5による多銘柄分析(第3回):三角為替レート

PythonとMQL5による多銘柄分析(第3回):三角為替レート

トレーダーは、誤ったシグナルによるドローダウンに直面することが多い一方で、確認を待ちすぎることで、有望な機会を逃すこともあります。本稿では、ドル建て銀価格(XAGUSD)、ユーロ建て銀価格(XAGEUR)、およびEURUSD為替レートを用いた三角裁定取引戦略を紹介し、市場のノイズをフィルタリングする方法を解説します。市場間の相関関係を活用することで、隠れた市場センチメントをリアルタイムで捉え、エントリータイミングをより洗練させることが可能になります。
preview
リプレイシステムの開発(第48回):サービスの概念を理解する

リプレイシステムの開発(第48回):サービスの概念を理解する

何か新しいことを学んでみませんか。この記事では、スクリプトをサービスに変換する方法と、それがなぜ便利なのかについて説明します。
preview
人工電界アルゴリズム(AEFA)

人工電界アルゴリズム(AEFA)

この記事では、クーロンの静電気力の法則に触発された人工電界アルゴリズム(AEFA: Artificial Electric Field Algorithm)を紹介します。このアルゴリズムは、荷電粒子とその相互作用を利用して複雑な最適化問題を解決するために電気現象をシミュレートします。AEFAは、自然法則に基づいた他のアルゴリズムと比較して、独自の特性を示します。
preview
多通貨エキスパートアドバイザーの開発(第17回):実際の取引に向けたさらなる準備

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

現在、EAはデータベースを利用して、取引戦略の各インスタンスの初期化文字列を取得しています。しかし、データベースは非常に大容量であり、実際のEAの動作には不要な情報も多数含まれています。そこで、データベースへの接続を必須とせずにEAを機能させる方法を考えてみましょう。
preview
初級から中級へ:演算子の優先順位

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

これは間違いなく、純粋に理論だけで説明するには最も難しいテーマの一つです。だからこそ、ここで取り上げるすべての内容を実際に手を動かして練習する必要があります。一見すると単純そうに見えるかもしれませんが、演算子というトピックは、継続的な学習と実践を通じて初めて理解できるものです。
preview
事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

取引の質をさらに高めるため、今回はストラテジーテスターで完了済みの取引を分析するテーマを引き続き取り上げます。異なる種類のトレーリングストップを使用すると、既存の取引結果がどのように変化するかを見ていきましょう。
preview
プライスアクション分析ツールキットの開発(第16回):クォーターズ理論の紹介(II) - Intrusion Detector EA

プライスアクション分析ツールキットの開発(第16回):クォーターズ理論の紹介(II) - Intrusion Detector EA

前回の記事では、「Quarters Drawer」というシンプルなスクリプトを紹介しました。このツールを基盤として、今回はさらに一歩進め、これらのクォーターを監視し、市場がどのように反応するかを見極めるためのモニター型エキスパートアドバイザー(EA)を作成します。本記事では、ゾーン検出ツールの開発プロセスについて紹介します。
preview
リプレイシステムの開発(第50回):物事は複雑になる(II)

リプレイシステムの開発(第50回):物事は複雑になる(II)

チャートIDの問題を解決すると同時に、ユーザーが希望する資産の分析とシミュレーションに個人用テンプレートを使用できるようにする機能を提供し始めます。ここで提示される資料は教育目的のみであり、提示される概念の学習および習得以外の目的には決して適用されないものとします。
preview
母集団アルゴリズムのハイブリダイゼーション:逐次構造と並列構造

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

ここでは、最適化アルゴリズムのハイブリダイゼーションの世界に飛び込み、3つの主要なタイプ、すなわち戦略混合、逐次ハイブリダイゼーション、並列ハイブリダイゼーションについて見ていきます。関連する最適化アルゴリズムを組み合わせ、テストする一連の実験をおこないます。
preview
Connexusにおけるヘッダ(第3部):リクエスト用HTTPヘッダの使い方をマスターする

Connexusにおけるヘッダ(第3部):リクエスト用HTTPヘッダの使い方をマスターする

Connexusライブラリの開発を続けます。この章では、HTTPプロトコルにおけるヘッダの概念を探求し、ヘッダとは何か、何のためにあるのか、リクエストでどのように使うのかを説明します。APIとの通信で使用される主なヘッダを取り上げ、ライブラリでの設定方法の実践例を紹介します。
preview
データサイエンスとML(第34回):時系列分解、株式市場を核心にまで分解

データサイエンスとML(第34回):時系列分解、株式市場を核心にまで分解

ノイズが多く、予測が難しいデータで溢れる世界では、意味のあるパターンを特定するのは困難です。この記事では、データをトレンド、季節パターン、ノイズといった主要な要素に分解する強力な分析手法「季節分解」について解説します。こうしてデータを分解することで、隠れた洞察を見つけ、より明確で解釈しやすい情報を得ることが可能になります。
preview
知っておくべきMQL5ウィザードのテクニック(第60回):移動平均とストキャスティクスパターンを用いた推論(ワッサースタインVAE)

知っておくべきMQL5ウィザードのテクニック(第60回):移動平均とストキャスティクスパターンを用いた推論(ワッサースタインVAE)

MA(移動平均)とストキャスティクスの補完的な組み合わせに着目し、教師あり学習および強化学習を経た後の段階において、推論が果たしうる役割を検証します。推論にはさまざまなアプローチが存在しますが、この記事では変分オートエンコーダ(VAE: Variational Auto-Encoder)を用いる方法を採用します。まずはPythonでこのアプローチを探求し、その後、訓練済みモデルをONNX形式でエクスポートし、MetaTraderのウィザードで構築したエキスパートアドバイザー(EA)で活用します。
preview
知っておくべきMQL5ウィザードのテクニック(第65回):FrAMAとForce Indexのパターンを活用する

知っておくべきMQL5ウィザードのテクニック(第65回):FrAMAとForce Indexのパターンを活用する

フラクタル適応移動平均(FrAMA)とForce Indexオシレーターは、MQL5エキスパートアドバイザー(EA)内で組み合わせて使用できるもう1つのインジケーターのペアです。FrAMAはトレンドフォロー型インジケーターですが、Force Indexはボリュームベースのオシレーターであるため、これら2つのインジケーターは互いに少し補完し合います。いつものように、MQL5ウィザードを使用して、これら2つの可能性を迅速に調査します。
preview
MQL5での取引戦略の自動化(第21回):適応学習率によるニューラルネットワーク取引の強化

MQL5での取引戦略の自動化(第21回):適応学習率によるニューラルネットワーク取引の強化

本記事では、MQL5におけるニューラルネットワーク取引戦略を、適応型学習率を用いて精度を向上させる形で強化します。このメカニズムを設計・実装した後、そのパフォーマンスを検証します。記事の最後には、アルゴリズム取引における最適化の知見もまとめます。
preview
MQL5 Algo Forgeへの移行(第4回):バージョンとリリースの操作

MQL5 Algo Forgeへの移行(第4回):バージョンとリリースの操作

SimpleCandlesプロジェクトおよびAdwizardプロジェクトの開発を継続しつつ、MQL5 Algo Forgeのバージョン管理システムおよびリポジトリのより詳細な活用方法についても説明していきます。
preview
MQL5入門(第16回):テクニカルチャートパターンを使用したエキスパートアドバイザーの構築

MQL5入門(第16回):テクニカルチャートパターンを使用したエキスパートアドバイザーの構築

本記事では、初心者向けにMQL5エキスパートアドバイザー(EA)の構築方法を紹介します。このEAは、クラシックなテクニカルチャートパターンである三尊を識別し、取引をおこないます。記事では、プライスアクションを用いたパターン検出方法、チャートへの描画、エントリー・ストップロス・テイクプロフィットの設定、さらにそのパターンに基づく取引実行の自動化について解説します。
preview
MQL5での取引戦略の自動化(第20回):CCIとAOを使用した多銘柄戦略

MQL5での取引戦略の自動化(第20回):CCIとAOを使用した多銘柄戦略

この記事では、CCI (Commodity Channel Index)とAO (Awesome Oscillator)を用いてトレンド反転を検出する多銘柄取引戦略を作成します。戦略の設計、MQL5での実装、バックテストのプロセスについて解説します。記事の最後には、パフォーマンス改善のためのヒントも紹介します。
preview
リプレイシステムの開発(第65回)サービスの再生(VI)

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

この記事では、リプレイ/シミュレーションアプリケーションと併用する際に発生するマウスポインタの問題について、その実装と解決方法を解説します。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
初級から中級へ:値渡しまたは参照渡し

初級から中級へ:値渡しまたは参照渡し

この記事では、値渡しと参照渡しの違いを実際の例を通じて理解します。これは単純で一般的な概念であり、特に問題を引き起こすようには思えませんが、多くの経験豊富なプログラマーでさえ、この小さな違いのためにコードの作成中に思わぬ失敗をすることがあります。値渡しまたは参照渡しをいつ、どのように、なぜ使用するかを知ることは、プログラマーとしての私たちの生活に大きな違いをもたらします。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
Connexusヘルパー(第5回):HTTPメソッドとステータスコード

Connexusヘルパー(第5回):HTTPメソッドとステータスコード

この記事では、Web上でクライアントとサーバー間の重要な通信手段であるHTTPメソッドとステータスコードについて理解します。各メソッドの役割を理解することで、リクエストをより正確に制御できるようになり、サーバーに対して実行したいアクションを明確に伝えることができます。これにより、通信の効率が向上します。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

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

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

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

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

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

この記事では、MQL5の取引システムをストラテジーテスターでの検証に対応するため、経済指標カレンダーのデータをリソースとして埋め込み、ライブ環境ではないテスト分析に活用する方法を解説します。イベントの読み込みと、時間・通貨・影響度に基づくフィルタリングを実装し、最終的にストラテジーテスター内でその動作を検証します。これにより、ニュースに基づいた戦略の効果的なバックテストが可能になります。
preview
機械学習の限界を克服する(第3回):既約誤差に関する新たな視点

機械学習の限界を克服する(第3回):既約誤差に関する新たな視点

本記事では、モデルがおこなうすべての予測に密かに影響を与える、隠れた幾何学的誤差の源に新たな視点を提供します。取引における機械学習予測の評価方法と活用法を再考することで、従来見過ごされてきたこの視点が、より鋭い意思決定、より高いリターン、そして、すでに理解していると思っていたモデルをより賢く活用する道を開くことを示します。
preview
初級から中級へ:変数(I)

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

多くの初心者プログラマーは、自分のコードが期待どおりに動作しない理由を理解するのに苦労します。コードを正しく機能させるためには、さまざまな要素が関わります。ただ関数や操作を組み合わせるだけでは、コードが適切に動作するとは限りません。今日は、単にコードをコピー&ペーストするのではなく、実際に正しくコードを書く方法を学んでみましょう。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
ウィリアム・ギャンの手法(第3回):占星術は効果があるのか

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

惑星や星の位置は金融市場に影響を与えるのでしょうか。統計とビッグデータを武器に、星と株価チャートが交差する世界への刺激的な旅に出ましょう。
preview
取引におけるニューラルネットワーク:データの局所構造の探索

取引におけるニューラルネットワーク:データの局所構造の探索

ノイズの多い状況下で市場データの局所構造を効果的に識別・保持することは、取引において極めて重要な課題です。自己アテンション(Self-Attention)メカニズムの活用は、このようなデータの処理において有望な結果を示していますが、従来のアプローチでは基盤となる構造の局所的な特性が考慮されていません。この記事では、こうした構造的依存関係を組み込むことが可能なアルゴリズムを紹介します。
preview
マーケットプロファイルインジケーター(第2回):キャンバス上の最適化と描画

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

この記事では、複数のグラフィカルオブジェクトでの描画を、CCanvasクラスのオブジェクト上での描画に置き換えた、最適化されたマーケットプロファイルインジケーターのバージョンについて考察しています。
preview
MQL5の分類タスクを強化するアンサンブル法

MQL5の分類タスクを強化するアンサンブル法

本記事では、MQL5における複数のアンサンブル分類器の実装を紹介し、それらがさまざまな状況下でどれほど効果的に機能するかについて論じます。