MQL5言語のプログラミング例に関する記事

icon

MQL5言語でMetaTraderプラットフォームのインジケータと自動売買ロボットを作成する方法を示すコード例を含む膨大な記事のコレクションにアクセスします。ソースコードは記事に添付されているので、MetaEditorで開いて実行して、アプリがどのように機能するかを確認できます。

これらの記事は自動取引初心者にも、プログラム経験があるプロのトレーダーにも役に立つでしょう。それらは単に例を特徴とするだけではなく、新しいアイデアも含んでいます。

新しい記事を追加
最新 | ベスト
preview
初級から中級まで:再帰

初級から中級まで:再帰

この記事では、とても興味深く、難易度のやや高いプログラミングの概念について見ていきます。ただし、この概念は細心の注意をもって扱うべきです。なぜなら、誤用や誤解によって、本来は比較的単純なプログラムが、不要に複雑化してしまう危険があるからです。しかし、正しく使用し、かつ適切な状況にうまく適用できれば、再帰は、そうでなければ非常に面倒で時間のかかる問題を解決するための優れた味方となります。ここに掲載されている資料は、教育目的のみのものです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
リプレイシステムの開発(第75回):新しいChart Trade(II)

リプレイシステムの開発(第75回):新しいChart Trade(II)

この記事では、C_ChartFloatingRADクラスについて説明します。これはChart Tradeを機能させるための要となる部分です。ただし、解説はこれで終わりではありません。本記事の内容はかなり広範かつ深い理解を必要とするため、続きは次回の記事で補完します。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

初心者からプロまでMQL5をマスターする(第6回):エキスパートアドバイザー開発の基礎

この記事は初心者向け連載の続きです。今回はエキスパートアドバイザー(EA)開発の基本原理について解説します。2つのEAを作成します。1つ目はインジケーターを使わず、予約注文で取引をおこなうEA。2つ目は標準の移動平均線(MA)インジケーターを利用し、成行価格で取引をおこなうEAです。ここでは、前回までの記事の内容をある程度理解していることを前提としています。
preview
初級から中級まで:共用体(II)

初級から中級まで:共用体(II)

今日はとても面白く興味深い記事をご紹介します。今回は共用体(union)を取り上げ、以前に触れた問題の解決を試みます。また、アプリケーションでunionを使用した際に発生しうる、少し変わった状況についても探っていきます。ここで提示される資料は教育目的のみに使用されます。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
リプレイシステムの開発(第74回):新しいChart Trade(I)

リプレイシステムの開発(第74回):新しいChart Trade(I)

この記事では、Chart Tradeに関する本連載の最後に示したコードを修正します。これらの変更は、現在のリプレイ/シミュレーションシステムのモデルにコードを適合させるために必要です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
MQL5での移動平均をゼロから作成する:単純明快

MQL5での移動平均をゼロから作成する:単純明快

簡単な例を使って、移動平均の計算原理を検証するとともに、移動平均を含むインジケーター計算の最適化方法について学びます。
preview
原子軌道探索(AOS)アルゴリズム

原子軌道探索(AOS)アルゴリズム

この記事では、原子軌道モデルの概念を利用して解を探索する原子軌道検索(AOS:Atomic Orbital Search)アルゴリズムについて考えます。AOSは、原子内における確率分布や相互作用のダイナミクスに基づいており、解の探索プロセスをシミュレートするアルゴリズムです。この記事では、候補解の位置更新やエネルギーの吸収・放出のメカニズムを含めたAOSの数学的な側面について詳しく説明します。AOSは、量子力学の原理を計算問題に応用する新たな可能性を切り開く、革新的な最適化手法です。
preview
リプレイシステムの開発(第73回):異例のコミュニケーション(II)

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

この記事では、インジケーターとサービス間でリアルタイムに情報を伝達する方法について解説し、また時間軸を変更した際に発生しうる問題の原因とその解決方法について理解を深めます。おまけとして、最新バージョンのリプレイ/シミュレーションアプリへのアクセスも提供します。
preview
初級から中級まで:共用体(I)

初級から中級まで:共用体(I)

この記事では、union(共用体)とは何かを見ていきます。ここでは実験を通じて、unionを使用できる最初の構文について分析していきます。ただし、ここで紹介するのは一連の概念や情報の中核部分にすぎません。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
初級から中級まで:配列(IV)

初級から中級まで:配列(IV)

この記事では、C、C++、Javaなどの言語で実装されていることと非常によく似たことを実現する方法について見ていきます。つまり、関数や手続きにほぼ無限の数のパラメータを渡す方法についてです。これは一見すると高度なトピックに思えるかもしれませんが、前回までの内容をきちんと理解していれば、実装は決して難しくありません。もちろん、それらの内容を本当に理解していることが前提です。
preview
リプレイシステムの開発(第72回):異例のコミュニケーション(I)

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

私たちが本日作成する内容は、理解が難しいものになるでしょう。したがって本稿では、初期段階についてのみ説明します。この段階は次のステップに進むための重要な前提条件となるため、ぜひ注意深く読んでください。この資料の目的はあくまで学習にあります。提示された概念を実際に応用するのではなく、あくまで理解・習得することが目的です。
preview
MQL5におけるSQLiteの機能:銘柄とマジックナンバー別の取引統計を表示するダッシュボード

MQL5におけるSQLiteの機能:銘柄とマジックナンバー別の取引統計を表示するダッシュボード

この記事では、口座別、銘柄別、および取引戦略別に取引統計をダッシュボードに表示するインジケーターの作成について考察します。コードは、ドキュメントおよびデータベース操作に関する記事の例に基づいて実装します。
preview
高度なICT取引システムの開発:インジケーターへのオーダーブロックの実装

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

この記事では、オーダーブロックのミティゲーションを検出し、描画し、アラートを発するインジケーターの作り方を学びます。また、チャート上でこれらのブロックを正確に特定する方法や、正確なアラートの設定方法、価格の動きをより理解しやすくするために矩形で位置を可視化する方法についても詳しく解説します。このインジケーターは、スマートマネーコンセプトやインナーサークルトレーダーの手法を用いるトレーダーにとって重要なツールとなるでしょう。
preview
リプレイシステムの開発(第71回):正しい時間を知る(IV)

リプレイシステムの開発(第71回):正しい時間を知る(IV)

この記事では、前回の記事で紹介したリプレイ/シミュレーションサービスに関連する実装方法について見ていきます。人生の多くのことと同様に、問題は必ず発生するものです。そして今回も例外ではありませんでした。本記事では、引き続き改善をおこなっていきます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
初級から中級まで:配列(III)

初級から中級まで:配列(III)

この記事では、MQL5における配列の扱い方について解説します。具体的には、関数や手続き(プロシージャ)間で配列を使って情報を受け渡す方法に焦点を当てます。本連載の今後の資料で説明・実演される内容の準備段階として、今回の記事は非常に重要です。そのため、ここで紹介される内容を注意深く学ぶことを強くお勧めします。
preview
リプレイシステムの開発(第70回):正しい時間を知る(III)

リプレイシステムの開発(第70回):正しい時間を知る(III)

この記事では、CustomBookAdd関数を適切かつ効果的に使う方法について見ていきます。一見シンプルに見えるこの関数ですが、実際には多くの細かな注意点があります。たとえば、マウスインジケーターに対してカスタム銘柄がオークション中なのか、取引中なのか、市場が閉まっているのかを伝えることができます。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
初級から中級まで:配列(II)

初級から中級まで:配列(II)

この記事では、動的配列と静的配列について見ていきます。この2つの使い方に違いはあるのでしょうか。それとも、どちらを使っても常に同じ結果になるのでしょうか。また、どのような場面でそれぞれを使うべきなのか、そして「定数配列」とは何かについても解説します。配列のすべての要素を初期化せずに使うリスクにも触れながら、これらの構造が何のために設計されたのかを一緒に考えていきます。
preview
Metatrader 5のWebsockets — Windows APIを使用した非同期クライアント接続

Metatrader 5のWebsockets — Windows APIを使用した非同期クライアント接続

この記事では、MetaTraderプログラム向けに非同期のWebSocketクライアント接続を可能にするカスタムDLL(ダイナミックリンクライブラリ)の開発について解説します。
preview
MQL5で取引管理者パネルを作成する(第10回):外部リソースベースのインターフェイス

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

本日は、MQL5の機能を活用して、BMP形式の画像などの外部リソースを利用し、トレーディング管理パネル用に独自のスタイルを持ったホームインターフェイスを作成します。ここで紹介する手法は、画像やサウンドなど複数のリソースを一括でパッケージ化して配布する際に特に有効です。このディスカッションでは、こうした機能をどのように実装し、New_Admin_Panel EAにおいてモダンで視覚的に魅力的なインターフェイスを提供するかを一緒に見ていきましょう。
preview
古典的な戦略を再構築する(第14回):高確率セットアップ

古典的な戦略を再構築する(第14回):高確率セットアップ

高確率セットアップ(high probability setups)は、私たちの取引コミュニティではよく知られていますが、残念ながら明確には定義されていません。この記事では、「高確率セットアップ」とは具体的に何かを、経験的かつアルゴリズム的な方法で定義し、それを特定して活用することを目指します。勾配ブースティング木を用いることで、任意の取引戦略のパフォーマンスを向上させる方法、そしてコンピュータに対して「何をすべきか」をより明確かつ意味のある形で伝える手段を、読者に示します。
preview
初心者からエキスパートへ:ローソク足のプログラミング

初心者からエキスパートへ:ローソク足のプログラミング

この記事では、MQL5プログラミングの第一歩を、完全な初心者でも理解できるように解説します。よく知られているローソク足パターンを、実際に機能するカスタムインジケーターへと変換する方法を紹介します。ローソク足パターンは、実際の価格変動を反映し、市場の転換を示唆するため、非常に有用です。チャートを目視で確認してパターンを探す手法ではミスや非効率が生じやすいため、この記事では、パターンを自動的に識別・ラベル付けしてくれるインジケーターを作成する方法を説明します。その過程で、インデックス(索引)、時系列、ATR(市場の変動性に応じた精度向上のため)などの重要な概念についても解説し、今後のプロジェクトで再利用可能なカスタムローソク足パターンライブラリの開発にも触れていきます。
preview
プライスアクション分析ツールキットの開発(第20回):External Flow (IV) — Correlation Pathfinder

プライスアクション分析ツールキットの開発(第20回):External Flow (IV) — Correlation Pathfinder

Correlation Pathfinderは、「プライスアクション分析ツールキット開発」連載の一環として、通貨ペアの動的な関係を理解するための新しいアプローチを提供します。このツールはデータの収集と分析を自動化し、EUR/USDやGBP/USDなどのペアがどのように連動して動いているかを可視化します。リスク管理を強化し、より効果的にチャンスを捉えるための実用的かつリアルタイムな情報で、取引戦略のレベルを引き上げましょう。
preview
PythonとMQL5を使用した特徴量エンジニアリング(第4回):UMAP回帰によるローソク足パターン認識

PythonとMQL5を使用した特徴量エンジニアリング(第4回):UMAP回帰によるローソク足パターン認識

次元削減手法は、機械学習モデルのパフォーマンスを向上させるために広く用いられています。ここでは、UMAP (Uniform Manifold Approximation and Projection)という比較的新しい手法について説明します。UMAPは、古い手法に見られるデータの歪みや人工的な構造といった欠点を明確に克服することを目的として開発されました。UMAPは非常に強力な次元削減技術であり、似たローソク足を新たに効果的にグループ化できるため、アウトオブサンプル(未知データ)に対する誤差率を低減し、取引パフォーマンスを向上させることができます。
preview
プライスアクション分析ツールキットの開発(第19回):ZigZag Analyzer

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

すべてのプライスアクショントレーダーは、トレンドを確認し、転換点や継続の可能性があるレベルを見つけるために、トレンドラインを手動で使用します。本連載では、市場分析を簡単にするために、傾斜トレンドラインを描画することに特化したツールを紹介します。このツールは、トレーダーが効果的なプライスアクション評価に不可欠な主要トレンドとレベルを明確に示すことで、分析プロセスを簡素化します。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(V):AnalyticsPanelクラス

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

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

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

この記事では、ログを構造化され、スケーラブルな方法で保存するためにデータベースを使用する手法を取り上げます。基本的な概念、主要な操作、MQL5におけるデータベースハンドラの設定と実装を順を追って解説し、最後にその結果を検証し、このアプローチが最適化と効率的なモニタリングにどのように役立つかを明らかにします。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(IV):取引管理パネルクラス

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

このディスカッションでは、New_Admin_Panel EAにおけるTradeManagementPanelの最新版について解説します。このアップデートでは、組み込みクラスを活用することで、ユーザーフレンドリーな取引管理インターフェイスを提供するようにパネルが強化されました。パネルには、新規ポジションのオープン用取引ボタンや、既存のポジションおよび指値注文の管理用コントロールが含まれています。特に注目すべき機能は、インターフェイス上から直接ストップロス(SL)やテイクプロフィット(TP)を設定できるリスク管理機能が統合された点です。このアップデートにより、大規模なプログラムにおけるコードの整理が改善され、端末上では複雑になりがちな注文管理ツールへのアクセスが簡素化されました。
preview
デイトレードLarry Connors RSI2平均回帰戦略

デイトレードLarry Connors RSI2平均回帰戦略

Larry Connorsは著名なトレーダー兼著者であり、特に2期間RSI (RSI2)などのクオンツトレーディングや戦略で知られています。RSI2は短期的な買われすぎ・売られすぎの市場状況を識別するのに役立ちます。本記事では、まず私たちの研究の動機を説明し、その後Connorsの代表的な3つの戦略をMQL5で再現し、S&P 500指数CFDのデイトレードに適用していきます。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第6回):自己適応型取引ルール(II)

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

本記事では、より良い売買シグナルを得るために、RSIのレベルと期間を最適化する方法を探ります。最適なRSI値を推定する手法や、グリッドサーチと統計モデルを用いた期間選定の自動化について紹介します。最後に、Pythonによる分析を活用しながら、MQL5でソリューションを実装します。私たちのアプローチは、複雑になりがちな問題をシンプルに解決することを目指した、実用的かつ分かりやすいものです。
preview
プライスアクション分析ツールキットの開発(第18回):クォーターズ理論の紹介(III) - Quarters Board

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

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

MQL5における予測および分類評価のためのリサンプリング手法

本記事では、1つのデータセットを訓練(学習)用と検証用の両方として使用するモデル評価手法について、理論と実装の両面から検討します。
preview
初心者からエキスパートへ:サポートとレジスタンスの強度指標(SRSI)

初心者からエキスパートへ:サポートとレジスタンスの強度指標(SRSI)

本記事では、MQL5プログラミングを活用して市場の価格レベルを正確に特定し、弱いレベルと強いレベルを見分ける方法についての知見を共有します。さらに、実用的なサポートおよびレジスタンス強度インジケーター(SRSI)を完全に開発していきます。
preview
受信者動作特性曲線の紹介

受信者動作特性曲線の紹介

ROC曲線は、分類器の性能を評価するために使用されるグラフ表現です。ROC曲線は比較的単純に見えますが、実際に使用する際には、よくある誤解や陥りやすい落とし穴があります。この記事の目的は、分類器の性能評価を理解しようとする実務者に向けて、ROC曲線を紹介することです。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(III)コミュニケーションモジュール

MQL5で取引管理者パネルを作成する(第9回):コード編成(III)コミュニケーションモジュール

MQL5インターフェイス設計における最新の進展を、再設計されたコミュニケーションパネルの公開とともに詳しく解説します。また、モジュール化の原則に基づいて新しい管理パネルを構築するシリーズも引き続き展開していきます。この記事では、CommunicationsDialogクラスを段階的に開発し、それをDialogクラスから継承する方法を丁寧に解説します。さらに、開発には配列およびListViewクラスを活用します。MQL5開発スキルを高めるための実用的な知見を得るために、ぜひ記事を読み、コメント欄でディスカッションにご参加ください。
preview
PythonとMQL5による多銘柄分析(第3回):三角為替レート

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

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

外国為替平均回帰戦略のためのカルマンフィルター

カルマンフィルターは、価格変動のノイズを除去して金融時系列の真の状態を推定するために、アルゴリズム取引で用いられる再帰的なアルゴリズムです。新しい市場データに基づいて予測を動的に更新するため、平均回帰のような適応型戦略において非常に有用です。本記事ではまず、カルマンフィルターの計算方法と実装について紹介します。次に、このフィルターをクラシックな平均回帰型の外国為替(FX)戦略に適用する例を示します。最後に、異なる通貨ペアにおいてカルマンフィルターと移動平均を比較し、さまざまな統計分析をおこないます。
preview
プライスアクション分析ツールキットの開発(第15回):クォーターズ理論の紹介(I) - Quarters Drawerスクリプト

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

サポートとレジスタンスのポイントは、トレンドの反転や継続の可能性を示す重要なレベルです。これらのレベルを見つけるのは難しいこともありますが、一度特定できれば、市場をより的確に捉える準備が整います。さらなるサポートとして、本記事で紹介されているQuarters Drawerツールをぜひご活用ください。このツールは、主要およびマイナーなサポート・レジスタンスレベルの特定に役立ちます。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第6回):ストップアウト防止

MQL5で自己最適化エキスパートアドバイザーを構築する(第6回):ストップアウト防止

本日は、勝ちトレードでストップアウトされる回数を最小限に抑えるためのアルゴリズム的手法を探るディスカッションにご参加ください。この問題は非常に難易度が高く、取引コミュニティで見られる多くの提案は、明確で一貫したルールに欠けているのが実情です。私たちはこの課題に対してアルゴリズム的なアプローチを用いることで、トレードの収益性を高め、1回あたりの平均損失を減らすことに成功しました。とはいえ、ストップアウトを完全に排除するには、まださらなる改良が必要です。私たちの解決策は、それには至らないものの、誰にとっても試す価値のある良い第一歩です。
preview
MQL5で取引管理者パネルを作成する(第9回):コード編成(I)モジュール化

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

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

エキスパートアドバイザーの堅牢性テスト

戦略開発には、多くの複雑な要素が含まれていますが、これらの多くは初心者トレーダーには十分に伝えられていません。その結果、私自身を含め多くのトレーダーが、こうした教訓を痛みを伴う経験を通じて学ぶことになりました。この記事では、MQL5で戦略を開発する際に初心者トレーダーが直面しがちな一般的な落とし穴について、私の観察に基づいて解説します。EAの信頼性を見極め、簡単に実践できる方法で自作EAの堅牢性を検証するための、さまざまなヒントやコツ、具体例を紹介します。本記事の目的は、読者がEA購入時の詐欺を回避し、自身の戦略開発での失敗を未然に防げるよう支援することです。