MQL4とMQL5のプログラム記事

icon

取引戦略をプログラミングするための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
ブレインストーム最適化アルゴリズム(第2部):マルチモーダリティ

ブレインストーム最適化アルゴリズム(第2部):マルチモーダリティ

記事の第2部では、BSOアルゴリズムの実用的な実装に移り、テスト関数のテストを実施し、BSOの効率を他の最適化手法と比較します。
preview
取引におけるニューラルネットワーク:双曲潜在拡散モデル(HypDiff)

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

この記事では、異方性拡散プロセスを用いた双曲潜在空間における初期データのエンコーディング手法について検討します。これにより、現在の市場状況におけるトポロジー的特徴をより正確に保持でき、分析の質が向上します。
preview
MQL5での取引戦略の自動化(第21回):適応学習率によるニューラルネットワーク取引の強化

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

本記事では、MQL5におけるニューラルネットワーク取引戦略を、適応型学習率を用いて精度を向上させる形で強化します。このメカニズムを設計・実装した後、そのパフォーマンスを検証します。記事の最後には、アルゴリズム取引における最適化の知見もまとめます。
preview
取引におけるニューラルネットワーク:時系列予測のための軽量モデル

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

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

ダイナミックマルチペアEAの形成(第2回):ポートフォリオの分散化と最適化

ポートフォリオの分散化と最適化とは、複数の資産に戦略的に投資を分散しながら、リスク調整後のパフォーマンス指標に基づいてリターンを最大化する理想的な資産配分を選定する手法です。
preview
集団型ADAM(適応モーメント推定法)

集団型ADAM(適応モーメント推定法)

この記事では、よく知られていて人気のあるADAM勾配最適化手法を集団アルゴリズムに変換し、さらにハイブリッド個体を導入して修正した方法を紹介しています。この新しいアプローチでは、確率分布を使って成功した判断の要素を組み合わせたエージェントを作ることができます。大きな革新点は、有望な解からの情報を適応的に蓄積するハイブリッド集団個体を形成することであり、それによって複雑な多次元空間での探索効率が高まります。
preview
MQL5で取引管理者パネルを作成する(第10回):外部リソースベースのインターフェイス

MQL5で取引管理者パネルを作成する(第10回):外部リソースベースのインターフェイス

本日は、MQL5の機能を活用して、BMP形式の画像などの外部リソースを利用し、トレーディング管理パネル用に独自のスタイルを持ったホームインターフェイスを作成します。ここで紹介する手法は、画像やサウンドなど複数のリソースを一括でパッケージ化して配布する際に特に有効です。このディスカッションでは、こうした機能をどのように実装し、New_Admin_Panel EAにおいてモダンで視覚的に魅力的なインターフェイスを提供するかを一緒に見ていきましょう。
preview
知っておくべきMQL5ウィザードのテクニック(第60回):移動平均とストキャスティクスパターンを用いた推論(ワッサースタインVAE)

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

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

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

この記事では、クーロンの静電気力の法則に触発された人工電界アルゴリズム(AEFA: Artificial Electric Field Algorithm)を紹介します。このアルゴリズムは、荷電粒子とその相互作用を利用して複雑な最適化問題を解決するために電気現象をシミュレートします。AEFAは、自然法則に基づいた他のアルゴリズムと比較して、独自の特性を示します。
preview
人工蜂の巣アルゴリズム(ABHA):理論と方法

人工蜂の巣アルゴリズム(ABHA):理論と方法

この記事では、2009年に開発された人工蜂の巣アルゴリズム(ABHA)について説明します。このアルゴリズムは、連続的な最適化問題を解決することを目的としています。この記事では、蜂がそれぞれの役割を担って効率的に資源を見つける蜂のコロニーの行動から、ABHAがどのようにインスピレーションを得ているかを探ります。
preview
取引におけるニューラルネットワーク:シーン認識オブジェクト検出(HyperDet3D)

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

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

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

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

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

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

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

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

ログレコードをマスターする(第6回):ログをデータベースに保存する

この記事では、ログを構造化され、スケーラブルな方法で保存するためにデータベースを使用する手法を取り上げます。基本的な概念、主要な操作、MQL5におけるデータベースハンドラの設定と実装を順を追って解説し、最後にその結果を検証し、このアプローチが最適化と効率的なモニタリングにどのように役立つかを明らかにします。
preview
多通貨エキスパートアドバイザーの開発(第14回):リスクマネージャーにおける適応型ボリューム変更

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

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

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

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

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

この記事では、CCI (Commodity Channel Index)とAO (Awesome Oscillator)を用いてトレンド反転を検出する多銘柄取引戦略を作成します。戦略の設計、MQL5での実装、バックテストのプロセスについて解説します。記事の最後には、パフォーマンス改善のためのヒントも紹介します。
preview
MetaTrader 5機械学習の設計図(第2回):機械学習のための金融データのラベリング

MetaTrader 5機械学習の設計図(第2回):機械学習のための金融データのラベリング

本連載「機械学習の設計図」の第2回では、単純なラベル付けがなぜモデルを誤った方向に導いてしまうのか、そしてトリプルバリア法やトレンドスキャン法といった高度な手法をどのように適用すれば、リスクを考慮した堅牢なターゲットを定義できるのかをご紹介します。計算負荷の高いこれらの手法を最適化する実践的なPythonコード例も多数取り上げ、市場のノイズに満ちたデータを、現実の取引環境に即した信頼性の高いラベルへと変換する方法を詳しく解説します。
preview
初心者からエキスパートへ:隠れフィボナッチリトレースメントレベルの謎を解く

初心者からエキスパートへ:隠れフィボナッチリトレースメントレベルの謎を解く

本記事では、市場が反応する可能性のある非標準的なフィボナッチリトレースメントレベルを、データ駆動型の手法で発見および検証するアプローチを紹介します。MQL5での実装を想定した完全なワークフローを提示し、データ収集やバーやスイングの検出から始め、クラスタリング、統計的仮説検定、バックテスト、さらにMetaTrader 5のフィボナッチツールへの統合までを包括的にカバーします。ここでの目的は、経験的な観察に基づく推測を、統計的に裏付けられた売買シグナルへと変換する再現可能なパイプラインを構築することです。
preview
ニューラルネットワークの実践:擬似逆行列(II)

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

この連載は教育的な性質のものであり、特定の機能の実装を示すことを目的としていないため、この記事では少し異なる方法でおこないます。因数分解を適用して行列の逆行列を取得する方法を示す代わりに、擬似逆行列の因数分解に焦点を当てます。その理由は、特別な方法で一般的な係数を取得することができる場合、一般的な係数を取得する方法を示すことに意味がないからです。さらに良いことに、読者は物事がなぜそのように起こるのかをより深く理解できるようになります。それでは、時間の経過とともにハードウェアがソフトウェアに取って代わる理由を考えてみましょう。
preview
データサイエンスとML(第34回):時系列分解、株式市場を核心にまで分解

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

ノイズが多く、予測が難しいデータで溢れる世界では、意味のあるパターンを特定するのは困難です。この記事では、データをトレンド、季節パターン、ノイズといった主要な要素に分解する強力な分析手法「季節分解」について解説します。こうしてデータを分解することで、隠れた洞察を見つけ、より明確で解釈しやすい情報を得ることが可能になります。
preview
プライスアクション分析ツールキットの開発(第22回):Correlation Dashboard

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

このツールは、複数の通貨ペア間のリアルタイム相関係数を計算し表示するCorrelation Dashboardです。ペア同士がどのように連動して動くかを可視化することで、プライスアクション分析に有益な文脈を加え、市場間のダイナミクスを先読みする手助けとなります。ここでは、その機能と活用方法を紹介します。
preview
ニューラルネットワークが簡単に(第92回):周波数および時間領域における適応的予測

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

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

取引におけるニューラルネットワーク:階層型ダブルタワーTransformer (Hidformer)

階層型ダブルタワーTransformer (Hidformer: Hierarchical Double-Tower Transformer)フレームワークについて紹介します。このフレームワークは時系列予測およびデータ分析向けに開発されました。Hidformerの開発者は、Transformerアーキテクチャに対して複数の改良を提案しており、その結果、予測精度の向上と計算リソースの削減を実現しています。
preview
MQL5での取引戦略の自動化(第33回):プライスアクションに基づくシャークハーモニックパターンシステムの作成

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

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

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

SimpleCandlesプロジェクトおよびAdwizardプロジェクトの開発を継続しつつ、MQL5 Algo Forgeのバージョン管理システムおよびリポジトリのより詳細な活用方法についても説明していきます。
preview
リプレイシステムの開発(第42回):Chart Traderプロジェクト(I)

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

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

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

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

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

この連載では、最新のアルゴリズムを用いて古典的な取引戦略を分析し、AIによって戦略を改善できるかどうかを検証します。本日の記事では、SP500と米財務省中期証券との関係を活用した古典的な取引手法を再考します。
preview
外国為替データ分析における連関規則の使用

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

スーパーマーケットの小売分析で使われる予測ルールを、実際のFX市場に応用する方法は?クッキー、牛乳、パンの購買傾向と株式市場の取引が関係する方法は?この記事では、連関規則を活用した革新的なアルゴリズム取引手法について解説します。
preview
高度なICT取引システムの開発:オーダーブロックインジケーターでのシグナルの実装

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

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

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

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

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

本稿では、プロジェクトのソースコードを公開リポジトリに保存する際の1つのアプローチについて検討します。コードを複数のブランチに分散させることで、プロジェクト開発における明確で便利なルールを確立していきます。
preview
プライスアクション分析ツールキットの開発(第23回):Currency Strength Meter

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

通貨ペアの方向性を本当に決定しているのは何でしょうか。それは各通貨自体の強さです。本記事では、通貨の強さを、その通貨が含まれるすべてのペアを順に分析することで測定します。この洞察により、各通貨ペアが相対的な強さに基づいてどのように動くかを予測することができます。詳しくは本稿をご覧ください。
preview
DoEasy - コントロール(第33部):垂直スクロールバー

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

この記事では、DoEasyライブラリのグラフィカル要素の開発を続け、フォームオブジェクトコントロールの垂直スクロールを追加し、さらに将来必要となる便利な関数やメソッドを紹介します。
preview
多通貨エキスパートアドバイザーの開発(第17回):実際の取引に向けたさらなる準備

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

現在、EAはデータベースを利用して、取引戦略の各インスタンスの初期化文字列を取得しています。しかし、データベースは非常に大容量であり、実際のEAの動作には不要な情報も多数含まれています。そこで、データベースへの接続を必須とせずにEAを機能させる方法を考えてみましょう。
preview
MQL5経済指標カレンダーを使った取引(第7回):リソースベースのニュースイベント分析による戦略テストの準備

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

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

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

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