MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
注文板に基づいた取引システムの開発(第1回):インジケーター

注文板に基づいた取引システムの開発(第1回):インジケーター

市場の厚みは、特に高頻度取引(HFT)アルゴリズムにおいて、高速な取引を実行するために不可欠な要素です。本連載では、多くの取引可能な銘柄に対してブローカー経由で取得できるこの種の取引イベントについて取り上げます。まずは、チャート上に直接表示されるヒストグラムのカラーパレット、位置、サイズをカスタマイズ可能なインジケーターから始めます。次に、特定の条件下でこのインジケーターをテストするためのBookEventイベントの生成方法について解説します。今後の記事では、価格分布データの保存方法や、そのデータをストラテジーテスターで活用する方法などのトピックも取り上げる予定です。
preview
取引におけるニューラルネットワーク:点群解析(PointNet)

取引におけるニューラルネットワーク:点群解析(PointNet)

直接的な点群解析は、不要なデータの増加を避け、分類やセグメンテーションタスクにおけるモデルの性能を向上させます。このような手法は、元データの摂動に対して高い性能と堅牢性を示します。
preview
初級から中級へ:Includeディレクティブ

初級から中級へ:Includeディレクティブ

本日の記事では、MQL5のさまざまなコードで広く使用されているコンパイルディレクティブについて解説します。本稿ではこのディレクティブについて表面的な説明に留めますが、今後プログラミングレベルが上がるにつれて不可欠なものとなるため、使い方を理解し始めることが重要です。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
取引におけるニューラルネットワーク:階層型ベクトルTransformer(最終回)

取引におけるニューラルネットワーク:階層型ベクトルTransformer(最終回)

階層的ベクトルTransformer法の研究を引き続き進めていきます。本記事では、モデルの構築を完了し、実際の履歴データを用いて訓練およびテストをおこないます。
preview
初級から中級へ:BREAK文とCONTINUE文

初級から中級へ:BREAK文とCONTINUE文

この記事では、ループ内でのRETURN、BREAK、CONTINUE文の使い方について解説します。ループの実行フローにおいて、これらの各文がどのような役割を果たすかを理解することは、より複雑なアプリケーションを扱う上で非常に重要です。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
USDとEURの指数チャート—MetaTrader 5サービスの例

USDとEURの指数チャート—MetaTrader 5サービスの例

MetaTrader 5サービスを例に、米ドル指数(USDX)およびユーロ指数(EURX)チャートの作成と更新について考察します。サービス起動時には、必要な合成銘柄が存在するかを確認し、未作成であれば新規作成します。その後、それを気配値表示ウィンドウに追加します。続いて、合成銘柄の1分足およびティック履歴を作成し、最後にその銘柄のチャートを表示します。
preview
タブーサーチ(TS)

タブーサーチ(TS)

この記事では、最初期かつ最も広く知られているメタヒューリスティック手法の一つであるタブーサーチアルゴリズムについて解説します。初期解の選択や近傍解の探索から始め、特にタブーリストの活用に焦点を当てながら、アルゴリズムの動作を詳しく見ていきます。本記事では、タブーサーチの主要な特徴と要素について取り上げます。
preview
初心者からプロまでMQL5をマスターする(第5回):基本的な制御フロー演算子

初心者からプロまでMQL5をマスターする(第5回):基本的な制御フロー演算子

この記事では、プログラムの実行フローを変更するために使用される主要な演算子(条件文、ループ、switch文)について説明します。これらの演算子を利用することで、作成する関数がより「インテリジェント」に動作できるようになります。
preview
MQL5でパラボリックSARと単純移動平均(SMA)を使用した高速取引戦略アルゴリズムを実装する

MQL5でパラボリックSARと単純移動平均(SMA)を使用した高速取引戦略アルゴリズムを実装する

この記事では、パラボリックSARと単純移動平均(SMA)インジケーターを活用し、応答性の高い取引戦略を構築する高速取引型エキスパートアドバイザー(EA)をMQL5で開発します。インジケーターの使用方法、シグナルの生成、テストおよび最適化プロセスなど、戦略の実装について詳しく解説します。
preview
多通貨エキスパートアドバイザーの開発(第17回):実際の取引に向けたさらなる準備

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

現在、EAはデータベースを利用して、取引戦略の各インスタンスの初期化文字列を取得しています。しかし、データベースは非常に大容量であり、実際のEAの動作には不要な情報も多数含まれています。そこで、データベースへの接続を必須とせずにEAを機能させる方法を考えてみましょう。
preview
取引におけるニューラルネットワーク:階層型ベクトルTransformer (HiVT)

取引におけるニューラルネットワーク:階層型ベクトルTransformer (HiVT)

マルチモーダル時系列の高速かつ正確な予測のために開発された階層的ベクトルTransformer (HiVT: Hierarchical Vector Transformer)メソッドについて詳しく説明します。
preview
初級から中級へ:WHILE文とDO WHILE文

初級から中級へ:WHILE文とDO WHILE文

この記事では、最初のループ文を実際的かつ視覚的に見ていきます。多くの初心者はループを作成するという作業に直面すると不安を感じますが、正しく安全におこなう方法を知るには経験と練習が必要です。しかし、コード内でループを使用する際の主な問題と注意事項を示すことで、皆さんの悩みや苦しみを軽減できるかもしれません。
preview
取引におけるニューラルネットワーク:統合軌道生成モデル(UniTraj)

取引におけるニューラルネットワーク:統合軌道生成モデル(UniTraj)

エージェントの行動を理解することはさまざまな分野で重要ですが、ほとんどの手法は特定のタスク(理解、ノイズ除去、予測)に焦点を当てており、そのため実際のシナリオでは効果的に活用できないことが多いです。この記事では、さまざまな問題を解決するために適応可能なモデルについて説明します。
preview
ニューラルネットワークの実践:最初のニューロン

ニューラルネットワークの実践:最初のニューロン

この記事では、シンプルで控えめなもの、つまりニューロンの構築を始めます。ごく少量のMQL5コードでプログラムしますが、それでも私のテストではこのニューロンは見事に機能しました。とはいえ、私がここで何を言おうとしているのかを理解するには、これまでのニューラルネットワークに関する連載を少し振り返ってみる必要があります。
preview
初級から中級へ:IF ELSE

初級から中級へ:IF ELSE

この記事では、IF演算子と、それに対応するELSEの使い方について解説します。この文は、あらゆるプログラミング言語において、最も重要かつ意義深いものです。しかし、その使いやすさにもかかわらず、使用経験や関連概念に対する理解がないと、時に混乱を招くことがあります。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
リプレイシステムの開発(第62回):サービスの再生(III)

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

この記事では、実際のデータを使用する際にアプリケーションのパフォーマンスに影響を及ぼす可能性のある「ティック過剰」の問題について取り上げます。このティック過剰は、1分足を適切なタイミングで構築するうえで支障となることがよくあります。
preview
リプレイシステムの開発(第61回):サービスの再生(II)

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

この記事では、リプレイ/シミュレーションシステムをより効率的かつ安全に動作させるための変更点について解説します。また、クラスを最大限に活用したいと考えている方にも役立つ情報を取り上げます。さらに、クラスを使用する際にコードのパフォーマンスを低下させるMQL5特有の問題点を取り上げ、それに対する具体的な解決策についても説明します。
preview
知っておくべきMQL5ウィザードのテクニック(第52回):ACオシレーター

知っておくべきMQL5ウィザードのテクニック(第52回):ACオシレーター

ACオシレーター(アクセラレーターオシレーター、Accelerator Oscillator)は、価格のモメンタムの「速度」だけでなく、その「加速」を追跡する、ビル・ウィリアムズによって開発されたインジケーターの一つです。最近の記事で取り上げたオーサムオシレーター(AO)と非常によく似ていますが、単なるスピードではなく加速に重点を置くことで、遅延の影響を回避しようとしています。本記事では、毎回のようにこのオシレーターからどのようなパターンが得られるかを分析し、ウィザード形式で構築されたエキスパートアドバイザー(EA)を通じて、それらが実際の取引においてどのような意味を持ち得るかを検証します。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第3回):ダイナミックトレンドフォローと平均回帰戦略

MQL5で自己最適化エキスパートアドバイザーを構築する(第3回):ダイナミックトレンドフォローと平均回帰戦略

金融市場は一般的に、「レンジ相場」または「トレンド相場」のいずれかに分類されます。このような静的な市場の見方は、短期的な取引においては判断を容易にしてくれるかもしれません。しかし、実際の市場の動きとはかけ離れている側面もあります。この記事では、金融市場がこれら2つのモードをどのように移行するのかを探り、その理解を活かしてアルゴリズム取引戦略への自信をどのように高められるのかを考察します。
preview
MQL5の分類タスクを強化するアンサンブル法

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

本記事では、MQL5における複数のアンサンブル分類器の実装を紹介し、それらがさまざまな状況下でどれほど効果的に機能するかについて論じます。
preview
知っておくべきMQL5ウィザードのテクニック(第51回):SACによる強化学習

知っておくべきMQL5ウィザードのテクニック(第51回):SACによる強化学習

Soft Actor Criticは、Actorネットワーク1つとCriticネットワーク2つ、合計3つのニューラルネットワークを用いる強化学習アルゴリズムです。これらのモデルは、CriticがActorネットワークの予測精度を高めるように設計された、いわばマスタースレーブの関係で連携します。本連載では、ONNXの導入も兼ねて、こうした概念を、ウィザード形式で構築されたエキスパートアドバイザー(EA)内のカスタムシグナルとしてどのように実装・活用できるかを探っていきます。
preview
DiscordとMetaTrader 5の統合:リアルタイム通知機能を備えたトレーディングボットの構築

DiscordとMetaTrader 5の統合:リアルタイム通知機能を備えたトレーディングボットの構築

この記事では、MetaTrader 5とDiscordサーバーを統合し、どこからでもリアルタイムで取引通知を受信する方法について解説します。Discordへのアラート配信を有効にするための、MetaTrader 5側およびDiscord側の設定方法を詳しく説明します。また、このような通知ソリューションでWebRequestやWebhookを利用する際に生じるセキュリティ上の注意点についても取り上げます。
preview
MQL5取引ツールキット(第5回):ポジション関数による履歴管理EX5ライブラリの拡張

MQL5取引ツールキット(第5回):ポジション関数による履歴管理EX5ライブラリの拡張

エクスポート可能なEX5関数を作成して、過去のポジションデータを効率的にクエリおよび保存する方法を解説します。このステップバイステップのガイドでは、直近にクローズされたポジションの主要なプロパティを取得するモジュールを開発し、HistoryManagement EX5ライブラリを拡張していきます。対象となるプロパティには、純利益、取引時間、ピップ単位でのストップロスやテイクプロフィット、利益値、その他多くの重要な情報が含まれます。
preview
Candlestick Trend Constraintモデルの構築(第10回):戦略的ゴールデンクロスとデスクロス(EA)

Candlestick Trend Constraintモデルの構築(第10回):戦略的ゴールデンクロスとデスクロス(EA)

移動平均線のクロスオーバーに基づくゴールデンクロスおよびデッドクロス戦略は、長期的な市場トレンドを見極める上で最も信頼性の高い指標の一つであることをご存知でしょうか。ゴールデンクロスは、短期移動平均線が長期移動平均線を上回るときに強気トレンドの到来を示します。一方、デッドクロスは、短期移動平均線が長期線を下回ることで弱気トレンドの兆候を示します。これらの戦略は非常にシンプルでありながら効果的ですが、手動で運用すると機会の逸失やエントリーの遅れが発生しやすいという課題があります。しかし、MQL5を活用してTrend Constraintエキスパートアドバイザー(EA)内で自動化することで、これらの戦略は独立して機能し、市場の反転に迅速かつ効率的に対応できるようになります。また、制約付きの戦略と組み合わせることで、広範なトレンドと整合性を保つことができます。このアプローチにより、反転戦略とトレンドフォロー戦略のシームレスな統合が実現され、精密なエントリーと一貫したパフォーマンス向上をもたらします。
preview
ログレコードをマスターする(第2回):ログのフォーマット処理

ログレコードをマスターする(第2回):ログのフォーマット処理

この記事では、ライブラリ内でログフォーマッターを作成し、適用する方法について詳しく解説します。フォーマッターの基本構造から実践的な実装例まで幅広く取り上げます。この記事を読み終える頃には、ライブラリ内でログを整形するために必要な知識を習得し、その裏側で何がどのように動作しているのかを理解できるようになります。
preview
古典的な戦略を再構築する(第13回):移動平均線のクロスオーバーにおける遅延の最小化

古典的な戦略を再構築する(第13回):移動平均線のクロスオーバーにおける遅延の最小化

移動平均クロスオーバーは、私たちのコミュニティにおけるトレーダーの間で広く知られている戦略ですが、その基本的な仕組みは誕生以来ほとんど変化していません。本稿では、この戦略に存在する“遅延”を最小限に抑えることを目的とした、わずかながらも重要な改良について紹介します。元の戦略を愛用しているトレーダーの方々にも、今回ご紹介する洞察をもとに、戦略の見直しを検討していただければ幸いです。同一の期間を持つ2つの移動平均を使用することで、戦略の根本的な原則を損なうことなく、遅延を大幅に削減することが可能になります。
preview
MQL5での取引戦略の自動化(第3回):ダイナミック取引管理のためのZone Recovery RSIシステム

MQL5での取引戦略の自動化(第3回):ダイナミック取引管理のためのZone Recovery RSIシステム

この記事では、MQL5を使ってZone Recovery RSI EAシステムを構築し、RSIシグナルによって取引を開始し、損失を管理するためのリカバリーストラテジーを実装します。取引エントリー、リカバリーロジック、ポジション管理を自動化するために、ZoneRecoveryクラスを作成します。この記事の最後では、EAのパフォーマンスを最適化し、その有効性を高めるためのバックテストの洞察を紹介します。
preview
プライスアクション分析ツールキットの開発(第6回):Mean Reversion Signal Reaper

プライスアクション分析ツールキットの開発(第6回):Mean Reversion Signal Reaper

いくつかの概念は一見するとシンプルに思えるかもしれませんが、実際にそれを形にするのは想像以上に難しいことがあります。この記事では、平均回帰(Mean Reversion)戦略を用いて市場を巧みに分析するエキスパートアドバイザー(EA)の自動化に取り組んだ、革新的なアプローチをご紹介します。この魅力的な自動化プロセスの奥深さを、一緒に紐解いていきましょう。
preview
スイングエントリーモニタリングEAの開発

スイングエントリーモニタリングEAの開発

年末が近づくと、多くの長期トレーダーは市場の過去を振り返り、その動きや傾向を分析して、将来の動向を予測しようとします。この記事では、MQL5を用いて長期エントリーの監視をおこなうエキスパートアドバイザー(EA)の開発について解説します。手動取引や自動監視システムの不在によって、長期的な取引チャンスを逃してしまうという課題に取り組むことが本稿の目的です。今回は、特に取引量の多い通貨ペアの一つを例に挙げ、効果的な戦略を立案しながらソリューションを構築していきます。
preview
出来高ベースの取引システムを構築し最適化する方法(チャイキンマネーフロー:CMF)

出来高ベースの取引システムを構築し最適化する方法(チャイキンマネーフロー:CMF)

この記事では、出来高ベースの指標であるチャイキンマネーフロー(CMF)の構築方法、計算方法、使用方法を説明した上で、その概要を説明します。カスタムインジケーターの構築方法を理解します。使用できるいくつかの簡単な戦略を共有し、それらをテストしてどれが優れているかを理解します。
preview
MQL5でのファイル操作の習得:基本的なI/OからカスタムCSVリーダーの構築まで

MQL5でのファイル操作の習得:基本的なI/OからカスタムCSVリーダーの構築まで

この記事では、取引ログ、CSVの処理、外部データの統合など、MQL5における基本的なファイル操作テクニックに焦点を当て、概念的な理解と実践的なコーディングガイドの両面から解説します。読者は、カスタムCSVインポート用のクラスを段階的に構築する方法を学び、実践的なスキルを身につけることができます。
preview
ニュース取引が簡単に(第6回):取引の実施(III)

ニュース取引が簡単に(第6回):取引の実施(III)

この記事では、IDに基づいて個々のニュースイベントをフィルターする関数を実装します。さらに、以前のSQLクエリを改善し、追加情報が提供されたり、クエリの実行時間が短縮されるようになります。さらに、これまでの記事で作成したコードを機能的なものにします。
preview
独自のLLMをEAに統合する(第5部):LLMを使った取引戦略の開発とテスト(III) - アダプタチューニング

独自のLLMをEAに統合する(第5部):LLMを使った取引戦略の開発とテスト(III) - アダプタチューニング

今日の人工知能の急速な発展に伴い、言語モデル(LLM)は人工知能の重要な部分となっています。私たちは、強力なLLMをアルゴリズム取引に統合する方法を考える必要があります。ほとんどの人にとって、これらの強力なモデルをニーズに応じてファインチューニングし、ローカルに展開して、アルゴリズム取引に適用することは困難です。本連載では、この目標を達成するために段階的なアプローチをとっていきます。
preview
MQL5での取引戦略の自動化(第2回):一目均衡表とオーサムオシレーターを備えた雲抜けシステム

MQL5での取引戦略の自動化(第2回):一目均衡表とオーサムオシレーターを備えた雲抜けシステム

この記事では、一目均衡表とオーサムオシレーター(Awesome Oscillator)を活用し、「雲抜け戦略」を自動化するエキスパートアドバイザー(EA)を作成します。インジケーターハンドルの初期化、ブレイクアウト条件の検出、自動売買におけるエントリーおよびエグジットの実装手順について、段階的に解説します。さらに、トレーリングストップやポジション管理ロジックを組み込むことで、EAのパフォーマンスと市場適応力を高める方法にも触れます。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第2回):USDJPYスキャルピング戦略

MQL5で自己最適化エキスパートアドバイザーを構築する(第2回):USDJPYスキャルピング戦略

今日は私たちと一緒にUSDJPYペアを中心とした取引戦略の構築に挑戦するしましょう。日足のローソク足パターンは、潜在的により強い動きがあるため、日足パターンで形成されるローソク足パターンを取引します。私たちの当初の戦略は利益を生み、これにより獲得した資本を保護するために、戦略を継続的に改良し、安全性をさらに高める努力を続けることができました。
preview
プライスアクション分析ツールキットの開発(第5回):Volatility Navigator EA

プライスアクション分析ツールキットの開発(第5回):Volatility Navigator EA

市場の方向性を判断するのは簡単ですが、いつエントリーするかを知るのは難しい場合があります。連載「プライスアクション分析ツールキットの開発」の一環として、エントリーポイント、テイクプロフィットレベル、ストップロスの配置を提供する別のツールを紹介できることを嬉しく思います。これを実現するために、MQL5プログラミング言語を利用しました。この記事では、各ステップについて詳しく見ていきましょう。
preview
MQL5における数値予測を強化するアンサンブル法

MQL5における数値予測を強化するアンサンブル法

この記事では、MQL5における複数のアンサンブル学習手法の実装を紹介し、それらの手法がさまざまな状況下でどの程度有効かを検証します。
preview
古典的な戦略を再構築する(第12回):EURUSDブレイクアウト戦略

古典的な戦略を再構築する(第12回):EURUSDブレイクアウト戦略

MQL5で収益性の高いブレイクアウト取引戦略を構築する挑戦に、ぜひご参加ください。EURUSDペアを選択し、時間枠で価格ブレイクアウトを取引しましたが、私たちのシステムでは偽のブレイクアウトと真のトレンドの始まりを区別するのが難しかったです。そこで、損失を最小限に抑えながら利益を増やすことを目的としたフィルターをシステムに組み込みました。最終的にはシステムを収益性の高いものにし、誤ったブレイクアウトに対する耐性を高めることに成功しました。
preview
出来高による取引の洞察:トレンドの確認

出来高による取引の洞察:トレンドの確認

強化型トレンド確認手法は、プライスアクション、出来高分析、そして機械学習を組み合わせることで、真の市場動向を見極めることを目的としています。この手法では、取引を検証するために、価格のブレイクアウトと平均比50%以上の出来高急増という2つの条件を満たす必要があります。さらに、追加の確認手段としてLSTMニューラルネットワークを活用します。システムはATR (Average True Range)に基づいたポジションサイズ設定と動的リスク管理を採用しており、誤ったシグナルを排除しつつ、多様な市場環境に柔軟に対応できる設計となっています。
preview
プライスアクション分析ツールキットの開発(第4回):Analytics Forecaster EA

プライスアクション分析ツールキットの開発(第4回):Analytics Forecaster EA

チャート上に表示された分析済みのメトリックを見るだけにとどまらず、Telegramとの統合によってブロードキャストを拡張するという、より広い視点へと移行しています。この機能強化により、Telegramアプリを通じて、重要な結果がモバイルデバイスに直接配信されるようになります。この記事では、この新たな取り組みを一緒に探っていきましょう。