MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
プライスアクション分析ツールキットの開発(第23回):Currency Strength Meter

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

通貨ペアの方向性を本当に決定しているのは何でしょうか。それは各通貨自体の強さです。本記事では、通貨の強さを、その通貨が含まれるすべてのペアを順に分析することで測定します。この洞察により、各通貨ペアが相対的な強さに基づいてどのように動くかを予測することができます。詳しくは本稿をご覧ください。
preview
取引システムの構築(第3回):現実的な利益目標のための最小リスクレベルの決定

取引システムの構築(第3回):現実的な利益目標のための最小リスクレベルの決定

すべてのトレーダーの究極の目標は収益を上げることです。そのため、多くのトレーダーは、定められた取引期間内に達成すべき具体的な利益目標を設定します。本記事では、モンテカルロシミュレーションを用いて、取引目標を達成するために必要な取引ごとの最適なリスク割合を算出します。この結果は、利益目標が現実的か、それとも過度に野心的かを判断する際に役立ちます。最後に、取引目標に見合った実用的なリスク割合を設定するために調整可能なパラメータについても解説します。
preview
MQL5入門(第23回):オープニングレンジブレイクアウト戦略の自動化

MQL5入門(第23回):オープニングレンジブレイクアウト戦略の自動化

この記事では、MQL5でオープニングレンジブレイクアウト(ORB)エキスパートアドバイザー(EA)を作成する方法を解説します。EAが市場の初期レンジからのブレイクアウトをどのように検知し、それに応じてポジションを建てるかを説明します。また、建てるポジションの数を制御したり、指定した時間で自動的に取引を停止する方法についても学べます。
preview
MQL5での取引戦略の自動化(第42回):セッションベースのオープニングレンジブレイクアウト(ORB)システム

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

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

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

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

プッシュ通知による取引の監視:MetaTrader 5サービスの例

この記事では、取引結果をスマートフォンに通知するサービスアプリの作成について説明します。標準ライブラリオブジェクトのリストを処理して、必要なプロパティごとにオブジェクトの選択を整理する方法を学習します。
preview
周期と取引

周期と取引

この記事は、取引における周期の活用についてです。周期モデルに基づいた取引戦略の構築を考えてみます。
preview
事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

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

取引の質をさらに高めるため、今回はストラテジーテスターで完了済みの取引を分析するテーマを引き続き取り上げます。異なる種類のトレーリングストップを使用すると、既存の取引結果がどのように変化するかを見ていきましょう。
preview
MQL5でカスタムキャンバスグラフィックを使用したケルトナーチャネルインジケーターの構築

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

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

MQL5でのAI搭載取引システムの構築(第1回):AI API向けJSON処理の実装

本記事では、AI API連携のためのデータ交換を扱うJSON解析フレームワークをMQL5で開発します。特に、JSON構造を処理するためのクラスに焦点を当てています。JSONデータのシリアライズ(出力用)およびデシリアライズ(入力用)メソッドを実装し、文字列、数値、オブジェクトなどの各データ型をサポートします。これにより、ChatGPTのようなAIサービスとMQL5間で正確にデータをやり取りでき、将来的なAI駆動型取引システム構築に向けた基盤を提供します。
preview
リプレイシステムの開発(第64回):サービスの再生(V)

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

この記事では、コード内の2つのエラーを修正する方法について説明します。ただし、初心者プログラマーの皆さんに、物事が必ずしも期待どおりに進むとは限らないことを理解してもらえるよう、できるだけわかりやすく解説したいと思います。いずれにせよ、これは学びの機会です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。ここで紹介する内容は教育目的のみに限定されており、提示された概念を探求すること以外の目的でこのアプリケーションを最終的な文書と見なすべきではありません。
preview
ニューラルネットワークが簡単に(第91回):周波数領域予測(FreDF)

ニューラルネットワークが簡単に(第91回):周波数領域予測(FreDF)

周波数領域における時系列の分析と予測を継続的に探求していきます。この記事では、これまでに学習した多くのアルゴリズムに追加できる、周波数領域でデータを予測する新しい方法について説明します。
preview
アンサンブル学習におけるゲーティングメカニズム

アンサンブル学習におけるゲーティングメカニズム

この記事では、アンサンブルモデルの検討をさらに進め、「ゲート」という概念に注目し、モデル出力を組み合わせることで予測精度や汎化性能の向上にどのように役立つかを解説します。
preview
MQL5入門(第16回):テクニカルチャートパターンを使用したエキスパートアドバイザーの構築

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

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

DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

この記事では、スクロールボタンを使用してTabControlでタブヘッダーをスクロールする機能を作成します。この機能は、コントロールの両方側からタブヘッダーを1行に配置するためのものです。
preview
知っておくべきMQL5ウィザードのテクニック(第22回):条件付きGAN

知っておくべきMQL5ウィザードのテクニック(第22回):条件付きGAN

敵対的生成ネットワーク(GAN: Generative Adversarial Network)は、より正確な結果を得るために、互いに訓練し合うニューラルネットワークのペアです。ExpertSignalクラスにおける金融時系列の予測への応用の可能性を考慮し、これらのネットワークの条件型を採用します。
preview
化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

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

第2回では、化学演算子を1つのアルゴリズムに集め、その結果の詳細な分析を紹介します。化学反応最適化(CRO)法がテスト機能に関する複雑な問題の解決にどのように対処するかを見てみましょう。
preview
初級から中級まで:オーバーロード

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

おそらく、この記事は初心者プログラマーにとって最も混乱を招くものになるでしょう。実際のところ、ここでは、同じコード内で必ずしもすべての関数や手続きが一意の名前を持つとは限らないことを示します。同じ名前の関数や手続きを使うことができるのです。これをオーバーロードと呼びます。
preview
古典的な戦略を再構築する(第8回):USDCADをめぐる為替市場と貴金属市場

古典的な戦略を再構築する(第8回):USDCADをめぐる為替市場と貴金属市場

この連載では、よく知られた取引戦略を再検討し、AIを使って改善できるかどうかを検証します。本日のディスカッションでは、貴金属と通貨の間に信頼できる関係があるかどうかを検証します。
preview
MQL5-Telegram統合エキスパートアドバイザーの作成(第6回):レスポンシブなインラインボタンの追加

MQL5-Telegram統合エキスパートアドバイザーの作成(第6回):レスポンシブなインラインボタンの追加

この記事では、インタラクティブなインラインボタンをMQL5エキスパートアドバイザー(EA)に統合し、Telegram経由でリアルタイムにコントロールできるようにします。各ボタンを押すたびに特定のアクションがトリガーされ、ユーザーにレスポンスが返されます。また、Telegramメッセージやコールバッククエリを効率的に処理するための関数もモジュール化します。
preview
知っておくべきMQL5ウィザードのテクニック(第55回):PER付きSAC

知っておくべきMQL5ウィザードのテクニック(第55回):PER付きSAC

強化学習において、リプレイバッファは特にDQNやSACのようなオフポリシーアルゴリズムにおいて重要な役割を果たします。これにより、メモリバッファのサンプリング処理が注目されます。たとえばSACのデフォルト設定では、このバッファからランダムにサンプルを取得しますが、Prioritized Experience Replay (PER)を用いることで、TDスコア(時間差分誤差)に基づいてサンプリングを調整することができます。本稿では、強化学習の意義を改めて確認し、いつものように交差検証ではなく、この仮説だけを検証する、ウィザードで組み立てたエキスパートアドバイザー(EA)を用いて考察します。
preview
3D反転パターンに基づくアルゴリズム取引

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

3Dバーによる自動売買の新しい世界を発見します。多次元の価格バー上で自動売買ロボットはどのように見えるのでしょうか。3Dバーの「黄色のクラスタ」はトレンドの反転を予測できるのでしょうか。多次元取引はどのように見えるのでしょうか。
preview
MQL5で他の言語の実用的なモジュールを実装する(第1回):Pythonにヒントを得たSQLite3ライブラリの構築

MQL5で他の言語の実用的なモジュールを実装する(第1回):Pythonにヒントを得たSQLite3ライブラリの構築

Pythonのsqlite3モジュールは、SQLiteデータベースを扱うためのシンプルで高速かつ便利な方法を提供しています。本記事では、MQL5に組み込まれているデータベース操作用の関数群を活用し、Pythonのsqlite3モジュールと同様の操作感でSQLite3データベースを扱える独自モジュールを構築します。
preview
多通貨エキスパートアドバイザーの開発(第16回):異なるクォート履歴がテスト結果に与える影響

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

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

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

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

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

自己教師あり学習は、ラベル付けされていない大量のデータを分析する効果的な手段となり得ます。この手法の効率性は、モデルが金融市場特有の特徴に適応することで実現され、従来手法の有効性も向上します。本記事では、入力間の相対的な依存関係や関係性を考慮した新しいAttention(注意)機構を紹介します。
preview
汎用MLP近似器に基づくエキスパートアドバイザー

汎用MLP近似器に基づくエキスパートアドバイザー

この記事では、機械学習の深い知識がなくても利用できる、取引EAでのニューラルネットワークの簡単でアクセスしやすい使用方法を紹介しています。この方法では、目的関数の正規化を省略できるほか、「重みの爆発」や「収束停止」といった問題を解消し、直感的な学習と結果の視覚的な管理を可能にしています。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第5回):自己適応型取引ルール

MQL5で自己最適化エキスパートアドバイザーを構築する(第5回):自己適応型取引ルール

インジケーターを安全に使用する方法を定義したベストプラクティスに従うのは、必ずしも容易ではありません。市場の動きが穏やかな状況では、インジケーターが意図した通りのシグナルを発しないことがあり、その結果、アルゴリズム取引における貴重なチャンスを逃してしまう可能性があります。本稿では、この問題に対する潜在的な解決策として、利用可能な市場データに応じて取引ルールを適応させることが可能な取引アプリケーションの構築方法を提案します。
preview
初心者からエキスパートへ:隠れフィボナッチリトレースメントレベルの謎を解く

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

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

Developing a Replay System (Part 36): Making Adjustments (II)

One of the things that can make our lives as programmers difficult is assumptions. In this article, I will show you how dangerous it is to make assumptions: both in MQL5 programming, where you assume that the type will have a certain value, and in MetaTrader 5, where you assume that different servers work the same.
preview
知っておくべきMQL5ウィザードのテクニック(第31回):損失関数の選択

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

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

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

この記事では、クーロンの静電気力の法則に触発された人工電界アルゴリズム(AEFA: Artificial Electric Field Algorithm)を紹介します。このアルゴリズムは、荷電粒子とその相互作用を利用して複雑な最適化問題を解決するために電気現象をシミュレートします。AEFAは、自然法則に基づいた他のアルゴリズムと比較して、独自の特性を示します。
preview
取引におけるニューラルネットワーク:階層型ダブルタワーTransformer (Hidformer)

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

階層型ダブルタワーTransformer (Hidformer: Hierarchical Double-Tower Transformer)フレームワークについて紹介します。このフレームワークは時系列予測およびデータ分析向けに開発されました。Hidformerの開発者は、Transformerアーキテクチャに対して複数の改良を提案しており、その結果、予測精度の向上と計算リソースの削減を実現しています。
preview
MQL5取引ツール(第7回):複数銘柄ポジションと口座監視のための情報ダッシュボード

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

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

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

開発の第2段階に進む前に、いくつかのアイデアを修正する必要があります。MQL5に必要なことをさせる方法をご存知ですか。ドキュメントに書かれている以上のことをしようとしたことはありますか。そうでないなら、準備をしましょう。ここでは、ほとんどの人が普段やらないことをやるからです。
preview
初級から中級へ:配列と文字列(II)

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

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

MQL5における段階的特徴量選択

この記事では、MQL5で実装された段階的特徴量選択の修正バージョンを紹介します。このアプローチは、Timothy Masters著の「Modern Data Mining Algorithms in C++ and CUDA C」で概説されている手法に基づいています。
preview
集団型ADAM(適応モーメント推定法)

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

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

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

前回の記事で開始した、MQL5を使用したRefMask3Dフレームワークの構築作業を引き続き進めていきます。このフレームワークは、点群におけるマルチモーダルインタラクションと特徴量解析を包括的に研究し、自然言語で提供される説明に基づいてターゲットオブジェクトを特定・識別することを目的としています。
preview
MQL5経済指標カレンダーを使った取引(第6回):ニュースイベント分析とカウントダウンタイマーによるトレードエントリーの自動化

MQL5経済指標カレンダーを使った取引(第6回):ニュースイベント分析とカウントダウンタイマーによるトレードエントリーの自動化

本記事では、MQL5経済指標カレンダーを活用して、ユーザー定義のフィルターと時間オフセットに基づいた自動取引エントリーを実装します。対象となる経済指標イベントを検出し、予想値と前回値の比較により、買うか売るかの判断を下します。動的なカウントダウンタイマーは、ニュース公開までの残り時間を表示し、取引後には自動的にリセットされます。