MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
平均足を使ったプロフェッショナルな取引システムの構築(第1回):カスタムインジケーターの開発

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

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

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

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

3D反転パターンに基づくアルゴリズム取引

3Dバーによる自動売買の新しい世界を発見します。多次元の価格バー上で自動売買ロボットはどのように見えるのでしょうか。3Dバーの「黄色のクラスタ」はトレンドの反転を予測できるのでしょうか。多次元取引はどのように見えるのでしょうか。
preview
MQL5での取引戦略の自動化(第42回):セッションベースのオープニングレンジブレイクアウト(ORB)システム

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

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

リプレイシステムの開発(第37回):道を切り開く(I)

今回は、もっと前にやりたかったことをようやく始めます。確固たる地盤がないため、この部分を公に発表する自信がありませんでした。今、私にはその根拠があります。この記事の内容を理解することにできるだけ集中することをお勧めします。単に読むだけではなくて、という意味です。ここで強調しておきたいのは、この記事を理解できなければ、それに続く記事の内容を理解することはできないということです。
preview
知っておくべきMQL5ウィザードのテクニック(第31回):損失関数の選択

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

損失関数は、機械学習アルゴリズムの重要な指標です。これは、与えられたパラメータセットが目標に対してどれだけうまく機能しているかを定量的に評価し、学習プロセスにフィードバックを提供する役割を果たします。本記事では、MQL5のカスタムウィザードクラスを使って、損失関数のさまざまな形式を探っていきます。
preview
MQL5とデータ処理パッケージの統合(第4回):ビッグデータの取り扱い

MQL5とデータ処理パッケージの統合(第4回):ビッグデータの取り扱い

今回は、MQL5と強力なデータ処理ツールを統合する高度なテクニックに焦点を当て、取引分析および意思決定を強化するためのビッグデータの効率的な活用方法を探ります。
preview
ラリー・ウィリアムズの『市場の秘密』(第12回):相場環境に基づくスマッシュデー反転トレード

ラリー・ウィリアムズの『市場の秘密』(第12回):相場環境に基づくスマッシュデー反転トレード

体系化されたコンテキストの中で、ラリー・ウィリアムズのスマッシュデー反転パターンをMQL5で自動化する方法を解説します。限定された有効期間内でセットアップを検証し、Supertrendを用いた曜日フィルタを備え、エントリーはレベル突破時またはバー確定時のいずれにも対応するエキスパートアドバイザー(EA)を実装します。エントリー方式としては、レベル突破時の即時エントリー、またはローソク足確定後のエントリーに対応しています。また、同時保有ポジション数を1つに制限し、リスクベースまたは固定ロットによるポジションサイジングをサポートします。さらに、段階的な開発手順、バックテスト方法、再現可能な設定も併せて提示します。
preview
ニューラルネットワークの実践:最小二乗法

ニューラルネットワークの実践:最小二乗法

この記事では、数式がコードで実装されたときよりも見た目が複雑になる理由など、いくつかのアイデアについて説明します。さらに、チャートの象限を設定する方法と、MQL5コードで発生する可能性のある1つの興味深い問題についても検討します。正直に言うと、まだどう説明すればいいのかよくわかりません。とにかく、コードで修正する方法を紹介します。
preview
ニューラルネットワークが簡単に(第77回):Cross-Covariance Transformer (XCiT)

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

モデルでは、しばしば様々なAttentionアルゴリズムを使用します。そして、おそらく最もよく使用するのがTransformerです。Transformerの主な欠点はリソースを必要とすることです。この記事では、品質を損なうことなく計算コストを削減する新しいアルゴリズムについて考察します。
preview
ニューラルネットワークが簡単に(第93回):周波数領域と時間領域における適応予測(最終回)

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

本稿では、時系列予測において2つのブロック(周波数と時間)の結果を適応的に組み合わせるATFNetモデルのアプローチの実装を継続します。
preview
初級から中級まで:テンプレートとtypename(I)

初級から中級まで:テンプレートとtypename(I)

この記事では、多くの初心者が避けがちな概念の1つを取り上げます。これはテンプレートに関連する話題で、多くの人がテンプレートの基本原理を理解していないため、決して簡単なテーマではありません。その基本原理とは、関数や手続きのオーバーロードです。
preview
PythonとMQL5を使用した特徴量エンジニアリング(第2回):価格の角度

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

MQL5フォーラムには、価格変動の傾斜を計算する方法についての支援を求める投稿が多数あります。この記事では、取引したい市場における価格の変化によって形成される角度を計算する1つの方法を説明します。さらに、この新しい特徴量の設計に追加の労力と時間を投資する価値があるかどうかについてもお答えします。M1でUSDZARペアを予測する際に、価格の傾斜によってAIモデルの精度が向上するかどうかを調査します。
preview
MetaTrader 5機械学習の設計図(第5回):逐次ブートストラップ - ラベルのバイアス除去とリターンの向上

MetaTrader 5機械学習の設計図(第5回):逐次ブートストラップ - ラベルのバイアス除去とリターンの向上

逐次ブートストラップは、金融機械学習におけるブートストラップサンプリングを再構築する手法であり、時間的に重複するラベルを積極的に回避することで、より独立性の高い学習サンプル、より鋭い不確実性推定、そしてより堅牢な取引モデルを実現します。この実践ガイドでは、その直感的な考え方を説明し、アルゴリズムを段階的に示し、大規模データセット向けの最適化コードパターンを提供し、シミュレーションおよび実際のバックテストを通じて測定可能な性能向上を実証します。
preview
リプレイシステムの開発(第40回):第2段階の開始(I)

リプレイシステムの開発(第40回):第2段階の開始(I)

今日は、リプレイ/シミュレーターシステムの新しい段階について話しましょう。この段階で、会話は本当に面白くなり、内容もかなり濃くなります。記事を熟読し、そこに掲載されているリンクを利用することを強くお勧めします。そうすることで、内容をより深く理解することができます。
preview
ボラティリティベースのブレイクアウトシステムの開発

ボラティリティベースのブレイクアウトシステムの開発

ボラティリティベースのブレイクアウトシステムは、市場のレンジを特定したうえで、ATRなどのボラティリティ指標によるフィルタを通過した場合に、価格がそのレンジを上方または下方へブレイクしたタイミングでエントリーする手法です。このアプローチにより、強い方向性を伴う値動きを捉えやすくなります。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

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

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

リプレイシステムの開発(第33回):発注システム(II)

今日も発注システムの開発を続けます。ご覧のように、他の記事ですでに紹介したものを大量に再利用することになります。とはいえ、この記事にはささやかなご褒美があります。まず、デモ口座からでもリアル口座からでも、取引サーバーで使えるシステムを開発します。MetaTrader 5プラットフォームを幅広く活用し、当初から必要なサポートをすべて提供します。
preview
リプレイシステムの開発(第56回):モジュールの適応

リプレイシステムの開発(第56回):モジュールの適応

モジュール同士はすでに適切に連携していますが、リプレイサービスでマウスポインタを使用しようとするとエラーが発生します。次のステップに進む前に、この問題を修正する必要があります。さらに、マウスインジケーターのコードにある別の問題も修正します。この修正によって、今回のバージョンは最終的に安定し、洗練されたものになります。
preview
最適化アルゴリズムの効率における乱数生成器の品質の役割

最適化アルゴリズムの効率における乱数生成器の品質の役割

この記事では、メルセンヌ・ツイスタ乱数生成器を取り上げ、MQL5の標準的な乱数生成器と比較します。また、乱数生成器の品質が最適化アルゴリズムの結果に与える影響についても調べます。
preview
初級から中級へ:配列と文字列(II)

初級から中級へ:配列と文字列(II)

この記事では、プログラミングがまだ非常に初歩的な段階にあるにもかかわらず、すでにいくつかの興味深いアプリケーションを実装できることを示します。今回は、比較的シンプルなパスワードジェネレーターを作成します。このようにして、これまでに説明してきたいくつかの概念を実際に適用することができます。加えて、特定の問題に対する解決策をどのように構築できるかについても考察していきます。
preview
人工蜂の巣アルゴリズム(ABHA):テストと結果

人工蜂の巣アルゴリズム(ABHA):テストと結果

この記事では、人工蜂の巣アルゴリズム(ABHA)の探索を続け、コードの詳細を掘り下げるとともに、残りのメソッドについて考察します。ご存じのとおり、このモデルにおける各蜂は個別のエージェントとして表現されており、その行動は内部情報、外部情報、および動機付けの状態に依存します。さまざまな関数を用いてアルゴリズムをテストし、その結果を評価表としてまとめて提示します。
preview
MQL5経済指標カレンダーを使った取引(第7回):リソースベースのニュースイベント分析による戦略テストの準備

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

この記事では、MQL5の取引システムをストラテジーテスターでの検証に対応するため、経済指標カレンダーのデータをリソースとして埋め込み、ライブ環境ではないテスト分析に活用する方法を解説します。イベントの読み込みと、時間・通貨・影響度に基づくフィルタリングを実装し、最終的にストラテジーテスター内でその動作を検証します。これにより、ニュースに基づいた戦略の効果的なバックテストが可能になります。
preview
チャート同期でテクニカル分析を簡単にする

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

「Chart Synchronization for Easier Technical Analysis」は、単一の銘柄に対してすべてのチャート時間足でトレンドライン、四角形、インジケーターなどの一貫したグラフィックオブジェクトが表示されるようにするツールです。パン、ズーム、銘柄変更などの操作はすべての同期したチャートに反映されるため、トレーダーは複数の時間足で同じプライスアクションの文脈をシームレスに確認し、比較できます。
preview
MQL5入門(第26回):サポートおよびレジスタンスゾーンを使ったEAの構築

MQL5入門(第26回):サポートおよびレジスタンスゾーンを使ったEAの構築

本記事では、サポートおよびレジスタンスゾーンを自動的に検出し、それに基づいて取引を実行するMQL5エキスパートアドバイザー(EA)の作成方法を学びます。EAにこれらの重要な価格レベルを認識させ、価格の反応を監視し、手動操作なしで取引判断をおこなう方法を理解することができます。
preview
行列分解:より実用的なモデリング

行列分解:より実用的なモデリング

行と列ではなく列のみが指定されているため、行列モデリングが少し奇妙であることに気付かなかったかもしれません。行列分解を実行するコードを読むと、これは非常に奇妙に見えます。行と列がリストされていることを期待していた場合、因数分解しようとしたときに混乱する可能性があります。さらに、この行列モデリング方法は最適ではありません。これは、この方法で行列をモデル化すると、いくつかの制限に遭遇し、より適切な方法でモデル化がおこなわれていれば必要のない他の方法や関数を使用せざるを得なくなるためです。
preview
初級から中級へ:配列と文字列(I)

初級から中級へ:配列と文字列(I)

本日の記事では、いくつかの特殊なデータ型について見ていきます。まず、文字列とは何かを定義し、いくつかの基本的な操作方法を説明します。これにより、興味深いデータ型を扱えるようになりますが、初心者にとっては少し混乱することもあるかもしれません。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
初級から中級まで:オーバーロード

初級から中級まで:オーバーロード

おそらく、この記事は初心者プログラマーにとって最も混乱を招くものになるでしょう。実際のところ、ここでは、同じコード内で必ずしもすべての関数や手続きが一意の名前を持つとは限らないことを示します。同じ名前の関数や手続きを使うことができるのです。これをオーバーロードと呼びます。
preview
リプレイシステムの開発(第51回):物事は複雑になる(III)

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

この記事では、MQL5プログラミングの分野で最も難解な問題の1つである、チャートIDを正しく取得する方法と、オブジェクトがチャートにプロットされない場合がある理由について解説します。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)

MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第6回)

この記事は、MQTT 5.0プロトコル用のネイティブMQL5クライアントの開発ステップを説明する連載の第6部です。今回は、私たちの最初のリファクタリングにおける主な変更点、私たちがどのようにしてパケット構築クラスのための実行可能な設計図にたどり着いたか、どのようにPUBLISHとPUBACKパケットを構築しているか、そしてPUBACK Reason Codeの背後にあるセマンティクスについてコメントします。
preview
ニューラルネットワークが簡単に(第85回):多変量時系列予測

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

この記事では、線形モデルとTransformerの長所を調和的に組み合わせた、新しい複雑な時系列予測手法を紹介します。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)

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

このディスカッションでは、大規模なコードベースを扱う際に直面する課題について掘り下げます。MQL5におけるコード構成のベストプラクティスを紹介し、取引管理パネルのソースコードの可読性と拡張性を向上させるための実践的なアプローチを実装します。また、他の開発者がアルゴリズム開発で活用できる再利用可能なコードコンポーネントの開発も目指しています。ぜひ最後までお読みいただき、ご意見をお寄せください。
preview
データサイエンスとML(第35回):MQL5でのNumPy活用術 - 少ないコードで複雑なアルゴリズムを構築する技法

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

NumPyライブラリは、Pythonプログラミング言語においてほぼすべての機械学習アルゴリズムの中核を支えています。本記事では、高度なモデルやアルゴリズムの構築を支援するために、複雑なコードをまとめたモジュールを実装していきます。
preview
MQL5取引ツール(第7回):複数銘柄ポジションと口座監視のための情報ダッシュボード

MQL5取引ツール(第7回):複数銘柄ポジションと口座監視のための情報ダッシュボード

本記事では、MQL5で情報ダッシュボードを開発し、複数銘柄のポジションや口座指標(残高、証拠金、余剰証拠金など)を監視できるようにします。リアルタイム更新可能なソート可能グリッド、CSVエクスポート機能、ヘッダーのグロー効果を実装し、使いやすさと視覚的魅力を向上させます。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

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

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

PythonとMQL5による多銘柄分析(前編):NASDAQ集積回路メーカー

ポートフォリオのリターンを最大化するために、AIを活用してポジションサイジングと注文数量を最適化する方法について解説します。本稿では、アルゴリズムを用いて最適なポートフォリオを特定し、期待リターンやリスク許容度に応じてポートフォリオを調整する手法を紹介します。このプロセスでは、SciPyライブラリやMQL5言語を活用し、保有中のすべてのデータを基に、最適かつ分散化されたポートフォリオを構築します。
preview
プライスアクション分析ツールキットの開発(第33回):Candle Range Theory Tool

プライスアクション分析ツールキットの開発(第33回):Candle Range Theory Tool

MetaTrader 5向けのCandle-Range Theoryスイートで、市場の読みをアップグレードできます。これは完全にMQL5ネイティブなソリューションで、ローソク足をリアルタイムのボラティリティ情報に変換します。軽量なCRangePatternライブラリは、各ローソク足の真の値幅を適応型ATRと比較し、確定直後に分類します。CRTインジケーターは、その分類結果をチャート上に鮮明な色分けされた矩形や矢印として表示し、収束の進行、急騰・急落、全レンジ包み込みを瞬時に可視化します。
preview
MQL5入門(第22回):5-0ハーモニックパターンを用いたエキスパートアドバイザーの構築

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

本記事では、MQL5において5-0ハーモニックパターンを検出して取引する方法、その妥当性をフィボナッチ比率で検証する方法、そしてチャート上に表示する方法について解説します。
preview
MQL5での取引戦略の自動化(第43回):適応型線形回帰チャネル戦略

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

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

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

エキスパートアドバイザー(EA)のパフォーマンスに対する学習率の感度を、主に適応学習率を調べることでまとめます。これらの学習率は、訓練の過程で層の各パラメータごとにカスタマイズすることを目的としており、潜在的な利点と期待されるパフォーマンスの差を評価します。