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

icon

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

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

新しい記事を追加
最新 | ベスト
preview
初心者からエキスパートへ:市場の不規則性への対処

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

市場のルールは常に変化しており、かつて有効だった原則も、時間の経過とともにその効力を徐々に失っていきます。過去に機能していたものが、現在では一貫して機能しなくなることがあります。本記事では、このような市場の不確実性に対応するために、「確率レンジ(ゾーン)」という考え方に焦点を当てます。さらに、MQL5を用いて、特に値動きが不安定な相場環境でも機能するアルゴリズムの構築方法を解説していきます。ディスカッションにぜひご参加ください。
preview
プライスアクション分析ツールキットの開発(第42回):ボタンロジックと統計レベルを用いたインタラクティブチャートの検証

プライスアクション分析ツールキットの開発(第42回):ボタンロジックと統計レベルを用いたインタラクティブチャートの検証

市場においてスピードと精度が重要である以上、分析ツールも市場と同じくらい賢くある必要があります。本記事では、ボタン操作に基づくエキスパートアドバイザー(EA)を紹介します。これは、価格データを瞬時に意味のある統計レベルに変換するインタラクティブなシステムです。ワンクリックで平均値、偏差、パーセンタイルなどを計算して表示し、複雑な分析をチャート上の明確なシグナルに変換します。価格が反発、押し戻し、または突破する可能性の高いゾーンをハイライトすることで、分析をより迅速かつ実用的にします。
preview
初心者からエキスパートへ:MQL5での可視化による地理的市場認識の強化

初心者からエキスパートへ:MQL5での可視化による地理的市場認識の強化

セッションを意識せずに取引することは、まるでコンパスなしで航海するようなものです。移動してはいるものの、目的を持って移動していないのです。本稿では、トレーダーが市場のタイミングを認識する方法を革新し、通常のチャートを動的な地理的表示に変換する手法を紹介します。MQL5の強力な可視化機能を活用して、リアルタイムでアクティブな取引セッションを点灯させるライブ世界地図を構築します。これにより、抽象的な市場時間が直感的な視覚情報として理解可能になります。この手法は取引心理を鋭敏化すると同時に、複雑な市場構造と実用的な洞察を結びつけるプロフェッショナル向けのプログラミング技術も明らかにします。
preview
プライスアクション分析ツールキットの開発(第57回):MQL5による市場状態分類モジュールの開発

プライスアクション分析ツールキットの開発(第57回):MQL5による市場状態分類モジュールの開発

確定済み価格データを用いて価格挙動を解釈するMQL5向けの市場状態分類モジュールを開発および解説します。ボラティリティの収縮および拡大、ならびに構造的一貫性を分析することにより、市場環境をコンプレッション、トランジション、エクスパンション、トレンドとして分類し、プライスアクション分析のための明確な文脈把握の枠組みを提供します。
preview
初級から中級へ:変数(I)

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

多くの初心者プログラマーは、自分のコードが期待どおりに動作しない理由を理解するのに苦労します。コードを正しく機能させるためには、さまざまな要素が関わります。ただ関数や操作を組み合わせるだけでは、コードが適切に動作するとは限りません。今日は、単にコードをコピー&ペーストするのではなく、実際に正しくコードを書く方法を学んでみましょう。ここで提供される資料は教育目的のみに使用されるべきです。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
MQL5で自己最適化エキスパートアドバイザーを構築する(第7回):複数期間での同時取引

MQL5で自己最適化エキスパートアドバイザーを構築する(第7回):複数期間での同時取引

本連載記事では、テクニカル指標を使用する際の最適な期間を特定するためのさまざまな方法を検討してきました。本記事では、読者に対して逆のロジックを示します。すなわち、単一の最適期間を選ぶのではなく、利用可能なすべての期間を効果的に活用する方法を示します。このアプローチにより廃棄されるデータ量が減少し、通常の価格予測以外に機械学習アルゴリズムを活用する方法も得られます。
preview
MQL5 MVCパラダイムにおけるテーブルのビューおよびコントローラーコンポーネント:コンテナ

MQL5 MVCパラダイムにおけるテーブルのビューおよびコントローラーコンポーネント:コンテナ

この記事では、コンテンツのスクロールに対応したContainer(コンテナ)コントロールの作成について解説します。その過程で、既存のグラフィックライブラリのコントロールクラスを改良していきます。
preview
初級から中級へ:変数(III)

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

今日は、定義済みのMQL5言語変数と定数の使用方法を見ていきます。さらに、別の特殊なタイプの変数である関数を分析します。これらの変数を適切に操作する方法を知っているかどうかは、動作するアプリケーションと動作しないアプリケーションの違いを意味する場合があります。ここで紹介されている内容を理解するには、以前の記事で説明した内容を理解する必要があります。
preview
機械学習の限界を克服する(第5回):時系列交差検証の簡単な概要

機械学習の限界を克服する(第5回):時系列交差検証の簡単な概要

本連載では、機械学習を活用した取引戦略を実運用に展開する際に、アルゴリズムトレーダーが直面する課題について考察します。私たちのコミュニティには、より深い技術的理解を必要とするがゆえに、見過ごされがちな課題がいくつも存在します。本日の議論は、機械学習における交差検証の盲点を検討するための足がかりとなるものです。交差検証はしばしば定型的な手順として扱われますが、不注意に実施すると、誤解を招く、あるいは最適とは言えない結果を容易に生み出してしまいます。本記事では、その隠れた盲点をより深く考察する準備として、時系列交差検証の基本を簡単に振り返ります。
preview
リプレイシステムの開発(第75回):新しいChart Trade(II)

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

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

Connexus Observer(第8回):リクエストObserverの追加

連載「Connexusライブラリ」の最終回では、Observerパターンの実装に加え、ファイルパスやメソッド名に関する重要なリファクタリングについて解説します。本連載を通じて、複雑なアプリケーションにおけるHTTP通信を簡素化することを目的としたConnexusの開発全体を取り上げました。
preview
リプレイシステムの開発(第76回):新しいChart Trade(III)

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

この記事では、前回の記事で省略されていたDispatchMessageのコードがどのように動作するのかを見ていきます。さらに、次回の記事のテーマについても紹介します。そのため、次のトピックに進む前に、このコードの仕組みを理解しておくことが重要です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
リプレイシステムの開発(第49回):物事は複雑になる(I)

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

この記事では、物事は少し複雑になります。前回の記事で紹介した内容を使用して、ユーザーが独自のテンプレートを使用できるようにテンプレート ファイルを開きます。ただし、MetaTrader 5の負荷を軽減するために指標を改良していく予定なので、変更は徐々におこなっていく予定です。
preview
Connexusの本体(第4回):HTTP本体サポートの追加

Connexusの本体(第4回):HTTP本体サポートの追加

この記事では、JSONやプレーンテキストなどのデータを送信するために不可欠な、HTTPリクエストにおける本体(ボディ)の概念について探りました。適切なヘッダを使った正しい使い方を議論し、説明しました。また、Connexusライブラリの一部であるChttpBodyクラスを導入し、リクエストの本体の処理を簡素化しました。
preview
MQL5のテーブルモデルに基づくテーブルクラスとヘッダクラス:MVC概念の適用

MQL5のテーブルモデルに基づくテーブルクラスとヘッダクラス:MVC概念の適用

これは、MQL5でのテーブルモデル実装をMVC (Model-View-Controller)アーキテクチャパラダイムに基づいて解説する記事の第2部です。本記事では、前回作成したテーブルモデルをもとに、テーブルクラスおよびテーブルヘッダの開発について説明します。開発したクラスは、次回の記事で扱うビューおよびコントローラーコンポーネントの実装の基礎となります。
preview
初心者からエキスパートへ:MQL5を使用したアニメーションニュースヘッドライン(III) - ニュース取引のためのクイック取引ボタン

初心者からエキスパートへ:MQL5を使用したアニメーションニュースヘッドライン(III) - ニュース取引のためのクイック取引ボタン

アルゴリズム取引システムは自動売買を担いますが、多くのニューストレーダーやスキャルパーは、高インパクトなニュースイベントや急速に変化する市場環境では能動的なコントロールを好み、迅速な注文執行およびポジション管理を必要とします。これにより、リアルタイムニュースフィード、経済指標カレンダーデータ、インジケーターによる分析、AI駆動型分析、そして即応性の高い取引操作を統合した直感的フロントエンドツールの必要性が明らかになります。
preview
リプレイシステムの開発(第74回):新しいChart Trade(I)

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

この記事では、Chart Tradeに関する本連載の最後に示したコードを修正します。これらの変更は、現在のリプレイ/シミュレーションシステムのモデルにコードを適合させるために必要です。ここで提示されるコンテンツは、教育目的のみに使用されることを意図しています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを利用することは避けてください。
preview
古典的な戦略を再構築する(第21回):ボリンジャーバンドとRSIのアンサンブル戦略の発見

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

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

リプレイシステムの開発(第48回):サービスの概念を理解する

何か新しいことを学んでみませんか。この記事では、スクリプトをサービスに変換する方法と、それがなぜ便利なのかについて説明します。
preview
MQL5でボラティリティモデルを構築する(第I回):初期実装

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

本記事では、Pythonのarchパッケージに類似した機能を持つ、ボラティリティモデリング用のMQL5ライブラリを提示します。このライブラリは現在、一般的な条件付き平均モデル(HAR、AR、一定平均、ゼロ平均)および条件付き分散モデル(一定分散、ARCH、GARCH)をサポートしています。
preview
プライスアクション分析ツールキットの開発(第50回):MQL5でのRVGI、CCI、SMA Confluenceエンジンの開発

プライスアクション分析ツールキットの開発(第50回):MQL5でのRVGI、CCI、SMA Confluenceエンジンの開発

多くのトレーダーにとって、真の反転を見極めるのは簡単ではありません。本記事では、RVGI、CCI (±100)、およびSMAトレンドフィルタを組み合わせ、単一の明確な反転シグナルを生成するEAを紹介します。EAには、チャート上のパネル、設定可能なアラート、およびすぐにダウンロードしてテスト可能な完全なソースファイルが含まれています。
preview
適応型社会行動最適化(ASBO):二段階の進化

適応型社会行動最適化(ASBO):二段階の進化

生物の社会的行動と、それが新しい数学モデルであるASBO(適応型社会的行動最適化)の開発に与える影響について、引き続き考察していきます。今回は、二段階の進化プロセスを詳しく分析し、アルゴリズムをテストした上で結論を導き出します。自然界において生物の集団が生存のために協力するのと同様に、ASBOも集団行動の原理を活用し、複雑な最適化問題を解決します。
preview
初級から中級へ:IF ELSE

初級から中級へ:IF ELSE

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

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

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

Connexusにおけるヘッダ(第3部):リクエスト用HTTPヘッダの使い方をマスターする

Connexusライブラリの開発を続けます。この章では、HTTPプロトコルにおけるヘッダの概念を探求し、ヘッダとは何か、何のためにあるのか、リクエストでどのように使うのかを説明します。APIとの通信で使用される主なヘッダを取り上げ、ライブラリでの設定方法の実践例を紹介します。
preview
リプレイシステムの開発(第59回):新たな未来

リプレイシステムの開発(第59回):新たな未来

さまざまなアイデアを適切に理解することで、より少ない労力でより多くのことを実現できます。この記事では、サービスがチャートと対話する前にテンプレートを構成する必要がある理由について説明します。また、マウスポインタを改良し、より多くの機能を持たせることについても考察します。
preview
初級から中級へ:BREAK文とCONTINUE文

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

この記事では、ループ内でのRETURN、BREAK、CONTINUE文の使い方について解説します。ループの実行フローにおいて、これらの各文がどのような役割を果たすかを理解することは、より複雑なアプリケーションを扱う上で非常に重要です。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。
preview
Connexusのクライアント(第7回):クライアント層の追加

Connexusのクライアント(第7回):クライアント層の追加

この記事では、Connexusライブラリの開発を続けます。この章では、リクエストの送信と注文の受信を担当するCHttpClientクラスを構築します。また、モックの概念についても取り上げ、ライブラリをWebRequest関数から切り離すことで、ユーザーの柔軟性を高めます。
preview
カスタム市場センチメント指標の開発

カスタム市場センチメント指標の開発

本記事では、複数の時間足を用いて市場センチメントを判定し、強気、弱気、リスクオン、リスクオフ、中立のいずれかに分類するMarket Sentimentカスタムインジケーターの開発について解説します。多時間足分析を組み合わせることで、トレーダーは市場全体の偏りと短期的な動向をより明確に把握できるようになります。
preview
プライスアクション分析ツールキットの開発(第40回):Market DNA Passport

プライスアクション分析ツールキットの開発(第40回):Market DNA Passport

本記事では、各通貨ペアが持つ固有のアイデンティティを、その過去のプライスアクションという視点から探ります。生物の設計図を記述するDNAの概念に着想を得て、本記事では市場にも同様の枠組みを適用し、プライスアクションを各通貨ペアのDNAとして扱います。ボラティリティ、スイング、リトレースメント、スパイク、セッション特性といった構造的挙動を分解することで、各ペアを他と区別する基礎的なプロファイルが浮かび上がります。このアプローチにより、市場行動に対するより深い洞察が得られ、トレーダーは各銘柄の特性に合った戦略を体系的に組み立てられるようになります。
preview
ログレコードをマスターする(第2回):ログのフォーマット処理

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

この記事では、ライブラリ内でログフォーマッターを作成し、適用する方法について詳しく解説します。フォーマッターの基本構造から実践的な実装例まで幅広く取り上げます。この記事を読み終える頃には、ライブラリ内でログを整形するために必要な知識を習得し、その裏側で何がどのように動作しているのかを理解できるようになります。
preview
初級から中級まで:定義(I)

初級から中級まで:定義(I)

この記事では、多くの人が奇妙でまったく脈絡がないと感じるであろうことを扱います。しかし、それらを正しく活用すれば、学習はより楽しく、さらに興味深いものになるでしょう。ここで示す内容を基に、かなり面白いものを構築することも可能です。これにより、MQL5言語の構文をより深く理解できるようになるでしょう。なお、本記事の内容は教育目的に限定されており、完成されたアプリケーションとして捉えるべきではありません。ここでの目的は、提示された概念そのものを応用することではありません。
preview
MQL5取引ツール(第18回):向き制御対応の角丸吹き出し

MQL5取引ツール(第18回):向き制御対応の角丸吹き出し

角丸長方形と三角形のポインタを組み合わせることで、MQL5における角丸の吹き出しを作成する方法を紹介します。また、ポインタの向きを上、下、左、右に制御する方法についても解説します。さらに、形状のジオメトリの事前計算、スーパーサンプリングによる塗りつぶし、頂点部の丸みを持たせた円弧処理、および継ぎ目を滑らかに接続するための拡張比を用いた分割枠線の描画について詳しく説明します。サイズ、角丸半径、色、不透明度、線の太さなどを自由に設定できるコードを提供しており、トレーディングインターフェースのアラートやツールチップなどにそのまま利用できます。
preview
適応型社会行動最適化(ASBO):Schwefel、ボックス=ミュラー法

適応型社会行動最適化(ASBO):Schwefel、ボックス=ミュラー法

この記事は、生物の社会的行動の世界と、それが新たな数学モデルであるASBO(適応型社会的行動最適化、Adaptive Social Behavior Optimization)の構築に与える影響について、興味深い洞察を提供します。生物社会におけるリーダーシップ、近隣関係、協力の原則が、革新的な最適化アルゴリズムの開発にどのように着想を与えるのかを探ります。
preview
初級から中級まで:配列(IV)

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

この記事では、C、C++、Javaなどの言語で実装されていることと非常によく似たことを実現する方法について見ていきます。つまり、関数や手続きにほぼ無限の数のパラメータを渡す方法についてです。これは一見すると高度なトピックに思えるかもしれませんが、前回までの内容をきちんと理解していれば、実装は決して難しくありません。もちろん、それらの内容を本当に理解していることが前提です。
preview
プライスアクション分析ツールキットの開発(第45回):MQL5で動的水準分析パネルを作成する

プライスアクション分析ツールキットの開発(第45回):MQL5で動的水準分析パネルを作成する

この記事では、ワンクリックで任意の価格水準をテストできる強力なMQL5ツールについて説明します。テストしたい価格を入力して分析ボタンを押すと、EAは過去のデータを瞬時にスキャンし、チャート上でその水準に触れた箇所やブレイクアウトをハイライト表示します。また、統計情報を整理されたダッシュボードに表示し、価格がその水準にどの程度反応したか、ブレイクしたか、サポートとして機能したか、レジスタンスとして働いたかを一目で確認できます。以下では、詳細な手順について解説します。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(V) - イベントリマインダーシステム

初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(V) - イベントリマインダーシステム

本ディスカッションでは、News Headline EAに表示される経済指標カレンダーイベントに対して、精緻化されたイベント通知ロジックを統合することで得られる追加的な改善について検討します。この強化により、主要な今後のイベント直前にユーザーがタイムリーに通知を受け取れるようになります。詳細については、本ディスカッションでご確認ください。
preview
古典的な戦略を再構築する(第14回):複数戦略分析

古典的な戦略を再構築する(第14回):複数戦略分析

本記事では、取引戦略のアンサンブル構築と、MT5遺伝的最適化を用いた戦略パラメータの調整について、引き続き検討していきます。本日はPythonでデータを分析し、モデルがどの戦略が優れているかをより正確に予測でき、市場リターンを直接予測するよりも高い精度を達成できることを示しました。しかし、統計モデルを用いてアプリケーションをテストしたところ、パフォーマンスは著しく低下しました。その後、遺伝的最適化が相関性の高い戦略を優先していたことが判明し、私たちは投票の重みを固定し、インジケーター設定の最適化に焦点を当てるよう方法を修正しました。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(IX) - ニュース取引のための単一チャートでのマルチペア管理

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

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

ブラックホールアルゴリズム(BHA)

ブラックホールアルゴリズム(BHA)は、ブラックホールの重力原理に着想を得た最適化アルゴリズムです。本記事では、BHAがどのようにして優れた解を引き寄せ、局所最適解への陥り込みを回避するのか、そしてなぜこのアルゴリズムが複雑な問題を解くための強力なツールとなっているのかを解説します。シンプルな発想がいかにして最適化の世界で大きな成果を生み出すのかを見ていきましょう。