MQL5プログラミング記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
JSONをマスターする:MQL5で独自のJSONリーダーをゼロから作成する

JSONをマスターする:MQL5で独自のJSONリーダーをゼロから作成する

オブジェクトと配列の処理、エラーチェック、シリアル化を備えたMQL5でカスタムJSONパーサーを作成する手順をステップバイステップで説明します。MetaTrader5でJSONを処理するためのこの柔軟なソリューションを使用して、取引ロジックと構造化データを橋渡しするための実用的な洞察を得ることができます。
preview
母集団最適化アルゴリズム:人工多社会的検索オブジェクト(MSO)

母集団最適化アルゴリズム:人工多社会的検索オブジェクト(MSO)

前回に引き続き、社会的集団について考えてみたいと思います。この記事では、移動と記憶のアルゴリズムを用いて社会集団の進化を探求しています。その結果は、社会システムの進化を理解し、最適化や解の探索に応用するのに役立つでしょう。
preview
ニューラルネットワークが簡単に(第85回):多変量時系列予測

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

この記事では、線形モデルとTransformerの長所を調和的に組み合わせた、新しい複雑な時系列予測手法を紹介します。
preview
古典的な戦略を再構築する(第6回):多時間枠分析

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

この連載では、古典的な戦略を再検討し、AIを使って改善できるかどうかを検証します。本日の記事では、人気の高い多時間枠分析という戦略を検証し、AIによって戦略が強化されるかどうかを判断します。
preview
FX裁定取引:リスク管理を伴う公正価値への回帰を目指す行列取引システム

FX裁定取引:リスク管理を伴う公正価値への回帰を目指す行列取引システム

本記事では、クロスレート計算アルゴリズムの詳細な説明、不均衡マトリクスの可視化、さらに効率的な取引のためのMinDiscrepancyおよびMaxRiskパラメータの最適な設定方法について解説します。本システムは、クロスレートを用いて各通貨ペアの「公正価値」を自動的に算出し、価格が公正価値より低い方向へ乖離した場合には買いシグナルを、高い方向へ乖離した場合には売りシグナルを生成します。
preview
MQL5における取引戦略の自動化(第45回):逆フェアバリューギャップ(IFVG)

MQL5における取引戦略の自動化(第45回):逆フェアバリューギャップ(IFVG)

本記事では、MQL5において逆フェアバリューギャップ(IFVG, Inverse Fair Value Gap)検出システムを構築します。このシステムは、直近のバーにおける強気/弱気のFVG(フェアバリューギャップ)を最小ギャップサイズフィルターを適用して識別し、価格との相互作用に基づき、その状態をnormal(通常)、mitigated(解消)、inverted(反転)として追跡します(遠側ブレイクによるミティゲーション、再エントリー時のリトレース(押し戻し)、内側から遠側をブレイクしてクローズすることによるインバージョンを含みます)。また、重複は無視し、追跡するFVGの数を制限します。
preview
リプレイシステムの開発(第37回):道を切り開く(I)

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

今回は、もっと前にやりたかったことをようやく始めます。確固たる地盤がないため、この部分を公に発表する自信がありませんでした。今、私にはその根拠があります。この記事の内容を理解することにできるだけ集中することをお勧めします。単に読むだけではなくて、という意味です。ここで強調しておきたいのは、この記事を理解できなければ、それに続く記事の内容を理解することはできないということです。
preview
取引におけるニューラルネットワーク:相対エンコーディング対応Transformer

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

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

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

本記事では、取引におけるリスク管理の基礎を解説し、適切なロットサイズやストップロスを計算するための最初の関数の作成方法を学びます。さらに、これらの機能がどのように動作するのかを、各ステップを追いながら詳しく説明します。本記事の目的は、自動売買においてこれらの概念をどのように適用するかを明確に理解することです。最後に、インクルードファイルを使用したシンプルなスクリプトを作成し、すべてを実践に落とし込みます。
preview
リプレイシステムの開発(第40回):第2段階の開始(I)

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

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

リプレイシステムの開発(第44回):Chart Tradeプロジェクト(III)

前回の記事では、OBJ_CHARTで使用するテンプレートデータの操作方法について解説しました。ただし、あの記事ではトピックの概要に焦点を当て、詳細な部分には触れていませんでした。これは、説明をよりシンプルにするために、非常に簡略化された手法を用いたからです。物事は一見シンプルに見えることが多いですが、実際にはそうではないケースもあり、全体を正確に理解するためには、まず最も基本的な部分をしっかり押さえる必要があります。
preview
MetaTrader 5用のMQTTクライアントの開発:TDDアプローチ(第3部)

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

この記事は、MQTTプロトコルのネイティブMQL5クライアントの開発手順を説明する連載の第3部です。今回は、CONNECT/CONNACKパケット交換の操作時の動作部分を実装するために、テスト駆動開発をどのように使用しているかについて詳しく説明します。この手順の最後に、クライアントは、接続の試みから生じる可能性のあるサーバー結果のどれに対しても、絶対的に、適切に振る舞うことができなければなりません。
preview
彗尾アルゴリズム(CTA)

彗尾アルゴリズム(CTA)

この記事では、ユニークな宇宙物体である彗星と、太陽に接近する際に形成されるその印象的な尾にインスパイアされた「彗尾最適化アルゴリズム(CTA: Comet Tail Algorithm)」について考察します。このアルゴリズムは、彗星とその尾の運動の概念に基づき、最適化問題の最適解を見つけることを目的としています。
preview
プライスアクション分析ツールキットの開発(第23回):Currency Strength Meter

プライスアクション分析ツールキットの開発(第23回):Currency Strength Meter

通貨ペアの方向性を本当に決定しているのは何でしょうか。それは各通貨自体の強さです。本記事では、通貨の強さを、その通貨が含まれるすべてのペアを順に分析することで測定します。この洞察により、各通貨ペアが相対的な強さに基づいてどのように動くかを予測することができます。詳しくは本稿をご覧ください。
preview
FVGをマスターする:ブレーカーと市場構造の変化によるフォーメーション、ロジック、自動取引

FVGをマスターする:ブレーカーと市場構造の変化によるフォーメーション、ロジック、自動取引

これは、FVG(Fair Value Gaps、フェアバリューギャップ)の発生の形成ロジックや、ブレーカーおよびMSS(Market Structure Shifts、市場構造の変化)を用いた自動取引について解説することを目的として執筆した記事です。
preview
取引戦略の開発:出来高制限アプローチの使用

取引戦略の開発:出来高制限アプローチの使用

テクニカル分析の世界では、価格がしばしば中心的な役割を果たします。トレーダーはサポートやレジスタンス、パターンを綿密に描きますが、多くの場合、これらの動きを駆動する重要な力である「出来高」を見落としています。本記事では、新しい出来高分析のアプローチであるVolume Boundaryインジケーターについて解説します。この指標は、バタフライ曲線やトリプルサイン曲線といった高度な平滑化関数を用いることで変換をおこない、より明確な解釈と体系的な取引戦略の構築を可能にします。
preview
リプレイシステムの開発(第30回):エキスパートアドバイザープロジェクト - C_Mouseクラス(IV)

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

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

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

第2回では、化学演算子を1つのアルゴリズムに集め、その結果の詳細な分析を紹介します。化学反応最適化(CRO)法がテスト機能に関する複雑な問題の解決にどのように対処するかを見てみましょう。
preview
DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

今回は、新しく作成したSplitContainerコントロールのプロパティと外観を変更する機能を実装します。
preview
リプレイシステムの開発(第29回):エキスパートアドバイザープロジェクト - C_Mouseクラス(III)

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

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

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

モデルでは、しばしば様々なAttentionアルゴリズムを使用します。そして、おそらく最もよく使用するのがTransformerです。Transformerの主な欠点はリソースを必要とすることです。この記事では、品質を損なうことなく計算コストを削減する新しいアルゴリズムについて考察します。
preview
多通貨エキスパートアドバイザーの開発(第16回):異なるクォート履歴がテスト結果に与える影響

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

開発中のエキスパートアドバイザー(EA)は、さまざまなブローカーとの取引で良好な結果を示すことが期待されていますが、現時点では、MetaQuotesデモ口座からのクォートを使用してテストを実行しています。テストや最適化に使用したクォートとは異なる価格データを持つ取引口座でも、EAが正しく機能する準備が整っているのかを確認してみましょう。
preview
MQL5取引ツールキット(第3回):未決注文管理EX5ライブラリの開発

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

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

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

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

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

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

DoEasy - コントロール(第22部):SplitContainer - 作成したオブジェクトのプロパティを変更する

今回は、新しく作成したSplitContainerコントロールのプロパティと外観を変更する機能を実装します。
preview
高度なICT取引システムの開発:オーダーブロックインジケーターでのシグナルの実装

高度なICT取引システムの開発:オーダーブロックインジケーターでのシグナルの実装

この記事では、板情報(オーダーブックの数量)に基づいてオーダーブロックインジケーターを開発し、バッファを使用して最適化し、精度を向上させる方法を学習します。これにより、プロジェクトの現段階が終了し、リスク管理クラスとインジケーターによって生成されたシグナルを使用する取引ボットの実装を含む次の段階の準備が整います。
preview
プライスアクション分析ツールキットの開発(第22回):Correlation Dashboard

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

このツールは、複数の通貨ペア間のリアルタイム相関係数を計算し表示するCorrelation Dashboardです。ペア同士がどのように連動して動くかを可視化することで、プライスアクション分析に有益な文脈を加え、市場間のダイナミクスを先読みする手助けとなります。ここでは、その機能と活用方法を紹介します。
preview
ダイナミックマルチペアEAの形成(第5回):スキャルピングとスイングトレードの切替設計

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

今回は、スキャルピングとスイングトレードのモードを状況に応じて切り替えることができるダイナミックマルチペアエキスパートアドバイザー(EA)の設計方法を解説します。シグナル生成、取引実行、リスク管理の構造面およびアルゴリズム面での違いを網羅し、市場状況やユーザー入力に応じてEAが状況に応じて戦略を切り替える仕組みを紹介します。
preview
知っておくべきMQL5ウィザードのテクニック(第71回):MACDとOBVのパターンの使用

知っておくべきMQL5ウィザードのテクニック(第71回):MACDとOBVのパターンの使用

移動平均収束拡散法(MACD)オシレーターとオンバランスボリューム(OBV)オシレーターは、MQL5のエキスパートアドバイザー(EA)内で併用できるもう一つの指標ペアです。本連載における慣例どおり、この組み合わせも補完関係にあり、MACDがトレンドを確認し、OBVが出来高を検証します。MQL5ウィザードを用いて、この2つが持つ潜在力を構築、検証します。
preview
MQL5での取引戦略の自動化(第33回):プライスアクションに基づくシャークハーモニックパターンシステムの作成

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

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

初心者からエキスパートへ:市場構造を認識したRSI取引

本記事では、相対力指数(RSI)オシレーターを市場構造と組み合わせて取引するための実践的な手法を解説します。特に、チャネル型のプライスアクションパターンに焦点を当て、それらが一般的にどのように取引されているか、そしてMQL5をどのように活用してこのプロセスを強化できるかを説明します。最終的には、トレンド継続の機会をより高い精度と一貫性で捉えることを目的とした、ルールベースの自動チャネル取引システムを構築できるようになるでしょう。
preview
リプレイシステムの開発(第33回):発注システム(II)

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

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

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

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

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

この記事では、多くの初心者が避けがちな概念の1つを取り上げます。これはテンプレートに関連する話題で、多くの人がテンプレートの基本原理を理解していないため、決して簡単なテーマではありません。その基本原理とは、関数や手続きのオーバーロードです。
preview
PythonとMQL5による多銘柄分析(前編):NASDAQ集積回路メーカー

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

ポートフォリオのリターンを最大化するために、AIを活用してポジションサイジングと注文数量を最適化する方法について解説します。本稿では、アルゴリズムを用いて最適なポートフォリオを特定し、期待リターンやリスク許容度に応じてポートフォリオを調整する手法を紹介します。このプロセスでは、SciPyライブラリやMQL5言語を活用し、保有中のすべてのデータを基に、最適かつ分散化されたポートフォリオを構築します。
preview
強化学習と弱者淘汰を組み合わせた進化型取引アルゴリズム(ETARE)

強化学習と弱者淘汰を組み合わせた進化型取引アルゴリズム(ETARE)

この記事では、進化アルゴリズムと深層強化学習を組み合わせた、外国為替取引のための革新的な取引アルゴリズムを紹介します。このアルゴリズムは、非効率な個体を絶滅させるメカニズムを使用して取引戦略を最適化します。
preview
行列分解:より実用的なモデリング

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

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