MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
MQL5経済指標カレンダーを使った取引(第2回):ニュースダッシュボードパネルの作成

MQL5経済指標カレンダーを使った取引(第2回):ニュースダッシュボードパネルの作成

この記事では、MQL5経済指標カレンダーを使用して、取引戦略を強化するための実用的なニュースダッシュボードパネルを作成します。まず、イベント名、重要度、タイミングなどの重要な要素に焦点を当ててレイアウトを設計し、その後、MQL5内でのセットアップに進みます。最後に、最も関連性の高いニュースのみを表示するフィルタリングシステムを実装し、トレーダーが影響力のある経済イベントに迅速にアクセスできるようにします。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第5回):自己適応型取引ルール

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

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

初級から中級へ:変数(II)

今日は、static変数の取り扱いについて学びます。このメカニズムを使用する際に守らなければならないいくつかの推奨事項があるため、この問題は初心者やある程度の経験を持つプログラマーにとってしばしば混乱を招きます。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
MQL5入門(第26回):MQL5のAPIとWebRequest関数の習得

MQL5入門(第26回):MQL5のAPIとWebRequest関数の習得

本記事では、MQL5におけるWebRequest関数とAPIの使用方法を紹介し、外部プラットフォームと通信する方法を解説します。MetaTrader 5から直接Telegramボットを作成し、チャットやグループのIDを取得し、メッセージの送信、編集、削除をおこなう方法を学びます。これにより、今後のMQL5プロジェクトでのAPI統合の基礎をしっかり身につけることができます。
preview
MQL5入門(第16回):テクニカルチャートパターンを使用したエキスパートアドバイザーの構築

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

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

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

Pythonのsqlite3モジュールは、SQLiteデータベースを扱うためのシンプルで高速かつ便利な方法を提供しています。本記事では、MQL5に組み込まれているデータベース操作用の関数群を活用し、Pythonのsqlite3モジュールと同様の操作感でSQLite3データベースを扱える独自モジュールを構築します。
preview
DoEasy-コントロール(第19部):TabControl、WinFormsオブジェクトイベントでのタブのスクロール

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

この記事では、スクロールボタンを使用してTabControlでタブヘッダーをスクロールする機能を作成します。この機能は、コントロールの両方側からタブヘッダーを1行に配置するためのものです。
preview
最適化アルゴリズムの効率における乱数生成器の品質の役割

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

この記事では、メルセンヌ・ツイスタ乱数生成器を取り上げ、MQL5の標準的な乱数生成器と比較します。また、乱数生成器の品質が最適化アルゴリズムの結果に与える影響についても調べます。
preview
取引におけるニューラルネットワーク:点群解析(PointNet)

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

直接的な点群解析は、不要なデータの増加を避け、分類やセグメンテーションタスクにおけるモデルの性能を向上させます。このような手法は、元データの摂動に対して高い性能と堅牢性を示します。
preview
アーチェリーアルゴリズム(AA)

アーチェリーアルゴリズム(AA)

この記事では、アーチェリーに着想を得た最適化アルゴリズムについて詳しく検討し、有望な「矢」の着地点を選定するメカニズムとしてルーレット法の活用に焦点を当てます。この手法により、解の質を評価し、さらなる探索に最も有望な位置を選び出すことが可能になります。
preview
ログレコードをマスターする(第4回):ログをファイルに保存する

ログレコードをマスターする(第4回):ログをファイルに保存する

この記事では、基本的なファイル操作と、カスタマイズに対応した柔軟なハンドラの設定方法について紹介します。CLogifyHandlerFileクラスを更新し、ログをファイルに直接書き込むようにします。また、EURUSDで1週間にわたるストラテジーをシミュレーションし、各ティックごとにログを生成して、合計5分11秒のパフォーマンステストを実施します。この結果は今後の記事で比較し、パフォーマンス向上のためにキャッシュシステムの導入もおこなう予定です。
preview
リプレイシステムの開発(第43回):Chart Traderプロジェクト(II)

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

プログラミングを学びたいと夢見る人のほとんどは、実際に自分が何をしているのかわかっていません。彼らの活動は、ある方法で物事を創造しようとすることから成っています。しかし、プログラミングとは、適切な解決策を仕立てることではありません。このようなやり方は、解決策よりも多くの問題を引き起こす可能性があります。ここでは、より高度で、それゆえに異なることをします。
preview
古典的な戦略を再構築する(第5回):USDZARの多銘柄分析

古典的な戦略を再構築する(第5回):USDZARの多銘柄分析

この連載では、古典的な戦略を再検討し、AIを使って戦略を改善できるかどうかを検証します。今日の記事では、複数の相関する証券をまとめて分析するという一般的な戦略について検討し、エキゾチックな通貨ペアであるUSDZAR(米ドル/南アフリカランド)に焦点を当てます。
preview
3D反転パターンに基づくアルゴリズム取引

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

3Dバーによる自動売買の新しい世界を発見します。多次元の価格バー上で自動売買ロボットはどのように見えるのでしょうか。3Dバーの「黄色のクラスタ」はトレンドの反転を予測できるのでしょうか。多次元取引はどのように見えるのでしょうか。
preview
データサイエンスとML(第35回):MQL5でのNumPy活用術 - 少ないコードで複雑なアルゴリズムを構築する技法

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

NumPyライブラリは、Pythonプログラミング言語においてほぼすべての機械学習アルゴリズムの中核を支えています。本記事では、高度なモデルやアルゴリズムの構築を支援するために、複雑なコードをまとめたモジュールを実装していきます。
preview
ニューラルネットワークが簡単に(第91回):周波数領域予測(FreDF)

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

周波数領域における時系列の分析と予測を継続的に探求していきます。この記事では、これまでに学習した多くのアルゴリズムに追加できる、周波数領域でデータを予測する新しい方法について説明します。
preview
知っておくべきMQL5ウィザードのテクニック(第59回):移動平均とストキャスティクスのパターンを用いた強化学習(DDPG)

知っておくべきMQL5ウィザードのテクニック(第59回):移動平均とストキャスティクスのパターンを用いた強化学習(DDPG)

MAとストキャスティクスを使用したDDPGに関する前回の記事に引き続き、今回は、DDPGの実装に欠かせない他の重要な強化学習クラスを検証していきます。主にPythonでコーディングしていますが、最終的には訓練済みネットワークをONNX形式でエクスポートし、MQL5に組み込んでウィザードで構築したエキスパートアドバイザー(EA)のリソースとして統合します。
preview
プライスアクション分析ツールキットの開発(第34回):高度なデータ取得パイプラインを用いた生の市場データからの予測モデル構築

プライスアクション分析ツールキットの開発(第34回):高度なデータ取得パイプラインを用いた生の市場データからの予測モデル構築

突然のマーケットスパイクを見逃したり、それが発生したときに対応が間に合わなかったことはありませんか。ライブイベントを予測する最良の方法は、過去のパターンから学ぶことです。本記事では、MetaTrader 5で履歴データを取得し、それをPythonに送信して保存するスクリプトの作成方法を紹介します。これにより、スパイク検知システムの基礎を構築できます。以下で各ステップを詳しく見ていきましょう。
preview
知っておくべきMQL5ウィザードのテクニック(第55回):PER付きSAC

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

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

ニューラルネットワークの実践:直線関数

この記事では、データベース内のデータを表現できる関数を取得するためのいくつかの方法について簡単に説明します。統計や確率の研究を用いて結果を解釈する方法については詳細に触れません。この問題の数学的側面について深く知りたい方にお任せします。これらの問いを検討することは、ニューラルネットワークの研究において非常に重要です。ここでは、このテーマを冷静に掘り下げていきます。
preview
化学反応最適化(CRO)アルゴリズム(第2回):組み立てと結果

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

第2回では、化学演算子を1つのアルゴリズムに集め、その結果の詳細な分析を紹介します。化学反応最適化(CRO)法がテスト機能に関する複雑な問題の解決にどのように対処するかを見てみましょう。
preview
HTTPとConnexus(第2回):HTTPアーキテクチャとライブラリ設計の理解

HTTPとConnexus(第2回):HTTPアーキテクチャとライブラリ設計の理解

この記事では、HTTPプロトコルの基礎について、主なメソッド(GET、POST、PUT、DELETE)、ステータスコード、URLの構造について説明します。さらに、HTTPリクエストにおけるURLとクエリパラメータの操作を容易にするCQueryParamとCURLクラスによるConexxusライブラリの構築の始まりも紹介します。
preview
知っておくべきMQL5ウィザードのテクニック(第54回):SACとテンソルのハイブリッドによる強化学習

知っておくべきMQL5ウィザードのテクニック(第54回):SACとテンソルのハイブリッドによる強化学習

Soft Actor Critic (SAC)は、以前の記事で紹介した強化学習アルゴリズムです。その際には、効率的にネットワークを学習させる手法としてPythonやONNXの活用についても触れました。今回は、このアルゴリズムを改めて取り上げ、Pythonでよく使われるテンソルや計算グラフを活用することを目的としています。
preview
リプレイシステムの開発(第73回):異例のコミュニケーション(II)

リプレイシステムの開発(第73回):異例のコミュニケーション(II)

この記事では、インジケーターとサービス間でリアルタイムに情報を伝達する方法について解説し、また時間軸を変更した際に発生しうる問題の原因とその解決方法について理解を深めます。おまけとして、最新バージョンのリプレイ/シミュレーションアプリへのアクセスも提供します。
preview
強化学習と弱者淘汰を組み合わせた進化型取引アルゴリズム(ETARE)

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

この記事では、進化アルゴリズムと深層強化学習を組み合わせた、外国為替取引のための革新的な取引アルゴリズムを紹介します。このアルゴリズムは、非効率な個体を絶滅させるメカニズムを使用して取引戦略を最適化します。
preview
MQL5取引ツール(第7回):複数銘柄ポジションと口座監視のための情報ダッシュボード

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

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

プライスアクション分析ツールキットの開発(第16回):クォーターズ理論の紹介(II) - Intrusion Detector EA

前回の記事では、「Quarters Drawer」というシンプルなスクリプトを紹介しました。このツールを基盤として、今回はさらに一歩進め、これらのクォーターを監視し、市場がどのように反応するかを見極めるためのモニター型エキスパートアドバイザー(EA)を作成します。本記事では、ゾーン検出ツールの開発プロセスについて紹介します。
preview
リプレイシステムの開発(第67回):コントロールインジケーターの改良

リプレイシステムの開発(第67回):コントロールインジケーターの改良

この記事では、コードを少し手直しすることで、どのような改善が得られるかを見ていきます。今回の改良は、コードの簡素化を図り、MQL5ライブラリの呼び出しをより活用し、そして何よりも、将来的に開発する可能性のある他のプロジェクトでも、より安定して安全かつ使いやすくなることを目的としています。
preview
MQL5で取引管理者パネルを作成する(第2回):応答性と迅速なメッセージングの強化

MQL5で取引管理者パネルを作成する(第2回):応答性と迅速なメッセージングの強化

この記事では、以前作成した管理パネルの応答性を強化します。さらに、取引シグナルの文脈におけるクイックメッセージングの重要性についても検討します。
preview
初級から中級へ:配列と文字列(II)

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

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

名義変数の順序符号化

この記事では、PythonとMQL5の両方を使用して、名義予測値を機械学習アルゴリズムに適した数値フォーマットに変換する方法について議論し、実演します。
preview
MQL5で取引管理者パネルを作成する(第7回):信頼できるユーザー、回復、暗号化

MQL5で取引管理者パネルを作成する(第7回):信頼できるユーザー、回復、暗号化

チャートの更新や管理パネル(Admin Panel) EAとのチャットに新しいペアを追加する際、または端末を再起動するたびにトリガーされるセキュリティプロンプトは、時に煩わしく感じられることがあります。このディスカッションでは、ログイン試行回数を追跡して信頼できるユーザーを識別する機能を検討し、実装します。一定回数の試行に失敗した場合、アプリケーションは高度なログイン手続きに移行し、パスコードを忘れたユーザーが回復できるようにします。さらに、管理パネルに暗号化を効果的に統合してセキュリティを強化する方法についても取り上げます。
preview
事後取引分析:ストラテジーテスターにおけるトレーリングストップと新しいストップレベルの選択

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

取引の質をさらに高めるため、今回はストラテジーテスターで完了済みの取引を分析するテーマを引き続き取り上げます。異なる種類のトレーリングストップを使用すると、既存の取引結果がどのように変化するかを見ていきましょう。
preview
PythonとMQL5による多銘柄分析(第3回):三角為替レート

PythonとMQL5による多銘柄分析(第3回):三角為替レート

トレーダーは、誤ったシグナルによるドローダウンに直面することが多い一方で、確認を待ちすぎることで、有望な機会を逃すこともあります。本稿では、ドル建て銀価格(XAGUSD)、ユーロ建て銀価格(XAGEUR)、およびEURUSD為替レートを用いた三角裁定取引戦略を紹介し、市場のノイズをフィルタリングする方法を解説します。市場間の相関関係を活用することで、隠れた市場センチメントをリアルタイムで捉え、エントリータイミングをより洗練させることが可能になります。
preview
MQL5経済指標カレンダーを使った取引(第6回):ニュースイベント分析とカウントダウンタイマーによるトレードエントリーの自動化

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

本記事では、MQL5経済指標カレンダーを活用して、ユーザー定義のフィルターと時間オフセットに基づいた自動取引エントリーを実装します。対象となる経済指標イベントを検出し、予想値と前回値の比較により、買うか売るかの判断を下します。動的なカウントダウンタイマーは、ニュース公開までの残り時間を表示し、取引後には自動的にリセットされます。
preview
プライスアクション分析ツールキットの開発(第18回):クォーターズ理論の紹介(III) - Quarters Board

プライスアクション分析ツールキットの開発(第18回):クォーターズ理論の紹介(III) - Quarters Board

この記事では、元のQuarters Scriptを改良し、「Quarters Board」というツールを導入しています。これにより、コードを編集し直すことなく、チャート上でクォーターレベルを直接オン・オフできるようになります。特定のレベルを簡単に有効化・無効化できるほか、エキスパートアドバイザー(EA)はトレンド方向に関するコメントも提供し、市場の動きをより理解しやすくします。
preview
周期と取引

周期と取引

この記事は、取引における周期の活用についてです。周期モデルに基づいた取引戦略の構築を考えてみます。
preview
データサイエンスとML(第45回):FacebookのPROPHETモデルを用いた外国為替時系列予測

データサイエンスとML(第45回):FacebookのPROPHETモデルを用いた外国為替時系列予測

Prophetモデルは、Meta(旧Facebook)によって開発された強力な時系列予測ツールであり、トレンドや季節性、イベント効果(holiday effects)を最小限の手作業で捉えることができます。このモデルは、需要予測やビジネスプランニングにおいて広く活用されてきました。本記事では、ProphetモデルをFXのボラティリティ予測に応用する効果について探り、従来のビジネス用途を超えた利用例を紹介します。
preview
リプレイシステムの開発(第54回):最初のモジュールの誕生

リプレイシステムの開発(第54回):最初のモジュールの誕生

この記事では、リプレイ/シミュレーターシステムで使用するための、他の目的にも汎用的に使用できる、実際に機能するモジュールの最初のものを組み立てる方法について説明します。マウスモジュールです。
preview
リプレイシステムの開発(第55回):コントロールモジュール

リプレイシステムの開発(第55回):コントロールモジュール

この記事では、開発中のメッセージシステムに統合できるように、コントロールインジケーターを実装します。それほど難しくはありませんが、このモジュールの初期化について理解しておくべき細かい点がいくつかあります。ここで提示される資料は教育目的のみに使用されます。示された概念を学習し習得する以外の目的での利用は決して想定されていません。