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

icon

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

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

新しい記事を追加
最新 | ベスト
preview
市場シミュレーション(第8回):ソケット(II)

市場シミュレーション(第8回):ソケット(II)

ソケットを使って何か実用的なものを作ってみましょう。今回の記事では、ミニチャットの作成を始めます。一緒にどのようにおこなうかを見ていきましょう。とても面白い内容になるでしょう。ここで提供するコードは教育目的のみの使用を想定しています。商用目的や既製のアプリケーションでの使用には適していません。ソケット上で送信されるデータは安全に保護されず、内容が第三者からアクセス可能になる可能性があるためです。
preview
初級から中級まで:インジケーター(IV)

初級から中級まで:インジケーター(IV)

本記事では、ローソク足に色を付ける実践的なアプローチを簡単に作成および実装する方法を解説します。このコンセプトは、トレーダーから非常に高く評価されています。実装する際には、バーやローソク足が元の見た目を保持し、ローソク足ごとの視認性を妨げないよう注意する必要があります。
preview
MQL5でボラティリティモデルを構築する(第I回):初期実装

MQL5でボラティリティモデルを構築する(第I回):初期実装

本記事では、Pythonのarchパッケージに類似した機能を持つ、ボラティリティモデリング用のMQL5ライブラリを提示します。このライブラリは現在、一般的な条件付き平均モデル(HAR、AR、一定平均、ゼロ平均)および条件付き分散モデル(一定分散、ARCH、GARCH)をサポートしています。
preview
MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続

MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続

本記事では、MQL5標準ライブラリを用いてエキスパートアドバイザー(EA)を効率的に構築するために、クラス構造をどのように読み解くべきかを整理します。標準ライブラリは高い拡張性と機能性を備えていますが、その全体像が見えにくく、体系的な指針がないまま複雑なツールキットを渡されたように感じることも少なくありません。そこで本記事では、実際の開発現場でクラスを確実に連携させるための、簡潔かつ再現性の高い統合手順を紹介します。
preview
MQL5における二変量コピュラ(第2回):MQL5でのアルキメデスコピュラの実装

MQL5における二変量コピュラ(第2回):MQL5でのアルキメデスコピュラの実装

連載第2回では、二変量アルキメデスコピュラの特性と、それらをMQL5で実装する方法について解説します。また、コピュラを活用したシンプルなペアトレード戦略の開発についても取り上げます。
preview
MQL5標準ライブラリエクスプローラー(第5回):マルチシグナルEA

MQL5標準ライブラリエクスプローラー(第5回):マルチシグナルEA

本セッションでは、MQL5標準ライブラリを使用して、複数のシグナルを組み合わせた高度なエキスパートアドバイザー(EA)を構築します。このアプローチにより、組み込みシグナルと独自ロジックをシームレスに統合し、柔軟かつ強力な取引アルゴリズムの構築方法を示します。詳細については、続きをご覧ください。
preview
初級から中級まで:構造体(V)

初級から中級まで:構造体(V)

本記事では、構造体をどのようにオーバーロード(拡張)するかについて探っていきます。特に初めて目にする方にとっては、最初は理解するのがかなり難しいかもしれません。より複雑で高度なトピックに踏み込む前に、これらの概念をしっかりと理解しておくことが非常に重要です。
preview
初級から中級まで:構造体(VI)

初級から中級まで:構造体(VI)

本記事では、共通の構造化されたコード基盤をどのように実装していくかについて解説します。目的は、プログラミングの作業負担を軽減し、使用しているプログラミング言語(ここではMQL5)そのものが持つ潜在能力を最大限に活用することです。
preview
MQL5 MVCパラダイムのテーブルのビューコンポーネント:基本グラフィック要素

MQL5 MVCパラダイムのテーブルのビューコンポーネント:基本グラフィック要素

本記事では、MQL5におけるMVC (Model-View-Controller)パラダイムでのテーブル実装の一環として、ビューコンポーネント向けの基本的なグラフィック要素を開発するプロセスを扱います。本記事はビューコンポーネントに関する最初の記事であり、MetaTrader 5クライアントターミナル向けテーブル作成に関する連載の第3回目です。
preview
初級から中級まで:テンプレートとtypename(V)

初級から中級まで:テンプレートとtypename(V)

本記事では、テンプレートの最後の簡単な使用例を探り、コード内でtypenameを使用する利点と必要性についても解説します。最初は少し難しく感じるかもしれませんが、テンプレートやtypenameを後で正しく使うためには、しっかり理解しておくことが重要です。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(IX) - ニュース取引のための単一チャートでのマルチペア管理

初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(IX) - ニュース取引のための単一チャートでのマルチペア管理

ニュース取引では、ボラティリティが高まるため、非常に短時間で複数のポジションや通貨ペアを管理する必要があります。本記事では、News Headline EAにこの機能を統合することで、マルチペア取引の課題にどのように対応できるかを解説します。MQL5を用いたアルゴリズム取引により、マルチペア取引を効率的かつ強力に実現する方法を一緒に探っていきます。
preview
古典的な戦略を再構築する(第14回):移動平均クロスオーバーの徹底解説

古典的な戦略を再構築する(第14回):移動平均クロスオーバーの徹底解説

本記事では、古典的な移動平均クロスオーバー戦略を改めて取り上げ、ノイズが多く変動の激しい市場環境においてなぜこの戦略がうまく機能しないのかを検証します。そのうえで、シグナル品質を向上させ、弱いまたは収益性の低い取引を除外するための5つの代替フィルタリング手法を紹介します。また、統計モデルが人間の直感や従来のルールでは捉えきれない誤差をどのように学習し、補正できるかについても説明します。読者は、時代遅れの戦略をどのように現代化するか、また金融モデリングにおいてRMSEのような指標に過度に依存することの落とし穴について理解を深めることができます。
preview
市場シミュレーション(第10回):ソケット(IV)

市場シミュレーション(第10回):ソケット(IV)

本記事では、MetaTrader 5を管理するためにExcelを活用する方法を、興味深い形で解説していきます。そのために、組み込みVBAを使わずに済むよう、Excelアドインを使用します。アドインが何を意味するのか分からない場合、本記事でExcelで直接Pythonをプログラミングする方法を学ぶことができます。
preview
市場シミュレーション(第4回):C_Ordersクラスの作成(I)

市場シミュレーション(第4回):C_Ordersクラスの作成(I)

本記事では、取引サーバーに注文を送信できるようにするためのC_Ordersクラスの作成を開始します。これは少しずつ進めていきますが、目的は、メッセージングシステムを通じてこれがどのようにおこなわれるのかを詳細に説明することです。
preview
市場シミュレーション(第5回):C_Ordersクラスの作成(II)

市場シミュレーション(第5回):C_Ordersクラスの作成(II)

本記事では、Chart Tradeとエキスパートアドバイザー(EA)が連携して、ユーザーが保有しているすべてのポジションを決済する要求をどのように処理するのかを解説します。一見すると単純な処理に思えるかもしれませんが、実際には注意すべきいくつかの複雑な点があります。
preview
カオス最適化アルゴリズム(COA)

カオス最適化アルゴリズム(COA)

本記事では、カオス理論と適応型探索メカニズムを組み合わせた改良型カオス最適化(COA)を紹介します。このアルゴリズムでは、複数のカオス写像と慣性成分を利用して探索空間を効率的に走査します。また、金融最適化におけるカオス的手法の理論的基盤についても解説します。
preview
データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク

MQL5においてSQLiteデータをORMレイヤーを通して管理する方法を体系的に紹介します。エンティティモデリングとデータベースアクセスのためのコアクラス、フルエントなCRUD API、OnGet/OnSetによるリフレクション的フック、そしてモデルを簡単に定義するためのマクロなどを取り上げます。実用的なコード例として、テーブル作成、フィールドのバインド、データの挿入、更新、取得、削除を示します。これにより開発者は、SQLを繰り返し記述することなく、再利用可能で型安全なコンポーネントを利用できるようになります。
preview
古典的な戦略を再構築する(第21回):ボリンジャーバンドとRSIのアンサンブル戦略の発見

古典的な戦略を再構築する(第21回):ボリンジャーバンドとRSIのアンサンブル戦略の発見

EURUSD市場を対象としたアンサンブル型アルゴリズム取引戦略の開発について説明します。この戦略は、ボリンジャーバンドとRSI(相対力指数)を組み合わせたものです。初期のルールベース戦略は高品質なシグナルを生成した一方で、取引頻度が低く、収益性にも限界がありました。その後、複数の戦略バリエーションを反復的に評価した結果、市場に対する理解の誤り、ノイズの増加、パフォーマンスの劣化といった問題が明らかになりました。これらの課題に対し、統計的学習アルゴリズムを適切に活用し、モデリング対象をテクニカル指標へと再定義し、適切なスケーリングを適用したうえで、機械学習による予測と従来の取引ルールを組み合わせることで、最終的には許容可能なシグナル品質を維持しながら、収益性と取引頻度の大幅な改善を達成しました。
preview
初心者からエキスパートへ:市場の不規則性への対処

初心者からエキスパートへ:市場の不規則性への対処

市場のルールは常に変化しており、かつて有効だった原則も、時間の経過とともにその効力を徐々に失っていきます。過去に機能していたものが、現在では一貫して機能しなくなることがあります。本記事では、このような市場の不確実性に対応するために、「確率レンジ(ゾーン)」という考え方に焦点を当てます。さらに、MQL5を用いて、特に値動きが不安定な相場環境でも機能するアルゴリズムの構築方法を解説していきます。ディスカッションにぜひご参加ください。
preview
Market Memory Zonesインジケーターの開発:価格が戻りやすい領域

Market Memory Zonesインジケーターの開発:価格が戻りやすい領域

強い市場活動によって形成される価格ゾーンを識別するインジケーターを開発します。具体的には、インパルス的な値動き、構造のシフト、流動性イベントなどによって生成される領域を対象とします。これらのゾーンは、未約定の注文や急激な価格変動によって市場に「記憶」が残されたエリアを表します。チャート上にこれらの領域をマーキングすることで、将来的に価格が再訪し反応する可能性が統計的に高いポイントを可視化します。
preview
古典的な戦略を再構築する(第20回):現代のストキャスティクス

古典的な戦略を再構築する(第20回):現代のストキャスティクス

本記事では、古典的なテクニカル指標であるストキャスティクスを、従来の平均回帰ツールとしての使い方にとどまらず、どのように再解釈および再活用できるかを解説します。異なる分析視点からこの指標を捉え直すことで、慣れ親しんだ手法が新たな価値を生み出し、トレンドフォロー型の解釈を含む代替的な売買ルールの構築にも応用できることを示します。最終的に、MetaTrader 5ターミナルに搭載されているあらゆるテクニカル指標には未開拓の可能性が潜んでおり、試行錯誤を慎重に重ねることで、従来の見方では気づきにくい有意義な解釈を発見できることを示します。
preview
リスク管理(第4回):主要クラスメソッドの完了

リスク管理(第4回):主要クラスメソッドの完了

MQL5におけるリスク管理に関する連載の第4回です。本連載では、取引戦略を保護しつつ最適化するための高度な手法を段階的に解説しています。前回までの内容で重要な基礎はすでに整っており、本記事では第3回で後回しにしていた残りの実装をすべて完結させます。具体的には、設定された利益および損失の上限に到達したかどうかを判定するための各種関数を完成させます。さらに、より高精度かつ柔軟なリスク制御を実現するための新しいイベント機構についても導入します。
preview
リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する

本記事では、これまで開発したリスク管理システムを実装し、さらに別記事で解説したOrder Blocksインジケーターを追加します。加えて、バックテストを実行し、リスク管理システムの有無による結果の違いを比較することで、動的リスク管理の影響を評価します。
preview
市場シミュレーション(第12回):ソケット(VI)

市場シミュレーション(第12回):ソケット(VI)

本記事では、Pythonコードを他のプログラム内で使用する際に発生する特定の問題や課題をどのように解決するかについて説明します。特に、ExcelとMetaTrader 5を併用する際に生じる一般的な問題を取り上げ、その具体例を示します。なお、この連携の実現にはPythonを使用します。ただし、この実装には小さな欠点があります。この問題は常に発生するわけではなく、特定の状況下でのみ起こります。そして、実際に発生した場合には、その原因を理解することが重要です。本日の記事では、この問題の解決方法について解説を開始します。
preview
初級から中級まで:構造体(IV)

初級から中級まで:構造体(IV)

本記事では、いわゆる構造化プログラミングにおけるコードの作り方について解説します。構造体の中に、変数や情報を操作するためのコンテキストおよびメソッドをすべて配置し、あらゆるコードを実装するための適切な文脈を構築する方法を扱います。そのため、公開すべき内容とそうでない内容を分離するためにprivateセクションを使用する必要性について検討します。これによりカプセル化の原則が守られ、データ構造が本来意図されたコンテキストが維持されることになります。
preview
初級から中級まで:構造体(III)

初級から中級まで:構造体(III)

本記事では、「構造化されたコード」とは何かについて解説します。多くの人が「構造化されたコード」と「整理されたコード」を混同していますが、この2つの概念には明確な違いがあります。本記事ではその違いについて説明します。一見すると複雑に感じられるかもしれませんが、できるだけシンプルに理解できるように解説しています。ただし、本記事はより大きな内容へ進むための第一歩にすぎません。
preview
MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード

本記事では、MQL5言語を用いた自動売買戦略における建値(損益分岐点)機能の実装について解説します。まず、建値モードとは何か、その仕組みや実装パターンについて簡単に説明します。 その後、前回のリスク管理に関する記事で作成したOrder Blocksエキスパートアドバイザーに、この機能を統合していきます。さらに、その有効性を検証するため、同一条件下で2種類のバックテストを実施します。1つはブレイクイーブン機能を有効化した場合、もう1つは無効化した場合です。
preview
初級から中級まで:構造体(VII)

初級から中級まで:構造体(VII)

本日の記事では、さまざまな要素の構造化に関する問題をどのように解決し、よりシンプルで魅力的な設計へと導くかについて解説します。内容は学習向けであり、そのため本番環境のコードを構成するものではありませんが、ここで扱う概念や知識を十分に理解することが極めて重要です。これにより、今後提示するコードをよりスムーズに追えるようになります。