MQL4とMQL5のプログラム記事

icon

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

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

新しい記事を追加
最新 | ベスト
preview
プライスアクション分析ツールキットの開発(第5回):Volatility Navigator EA

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

市場の方向性を判断するのは簡単ですが、いつエントリーするかを知るのは難しい場合があります。連載「プライスアクション分析ツールキットの開発」の一環として、エントリーポイント、テイクプロフィットレベル、ストップロスの配置を提供する別のツールを紹介できることを嬉しく思います。これを実現するために、MQL5プログラミング言語を利用しました。この記事では、各ステップについて詳しく見ていきましょう。
preview
データサイエンスと機械学習(第19回):AdaBoostでAIモデルをパワーアップ

データサイエンスと機械学習(第19回):AdaBoostでAIモデルをパワーアップ

AdaBoostは、AIモデルのパフォーマンスを向上させるために設計された強力なブースティングアルゴリズムです。AdaBoostはAdaptive Boostingの略で、弱い学習機をシームレスに統合し、その集合的な予測力を強化する洗練されたアンサンブル学習技法です。
preview
MQL5での取引戦略の自動化(第8回):バタフライハーモニックパターンを用いたエキスパートアドバイザーの構築

MQL5での取引戦略の自動化(第8回):バタフライハーモニックパターンを用いたエキスパートアドバイザーの構築

この記事では、バタフライハーモニックパターンを検出するためのMQL5エキスパートアドバイザー(EA)を構築します。ピボットポイントを特定し、フィボナッチレベルを検証してパターンを確認します。次に、チャート上にパターンを可視化し、確認された際には自動的に取引を実行します。
preview
データサイエンスと機械学習(第21回):ニューラルネットワークと最適化アルゴリズムの解明

データサイエンスと機械学習(第21回):ニューラルネットワークと最適化アルゴリズムの解明

ニューラルネットワーク内部で使用される最適化アルゴリズムを解明しながら、ニューラルネットワークの核心に飛び込みます。この記事では、ニューラルネットワークの可能性を最大限に引き出し、モデルを精度と効率の新たな高みへと押し上げる重要なテクニックご紹介します。
preview
取引システムの構築(第5回):構造化された取引決済による利益管理

取引システムの構築(第5回):構造化された取引決済による利益管理

利益目標まであとわずかというところで価格が反転し、ストップロスにかかってしまう。トレーリングストップによって建値で決済された直後に、市場が元の方向へ大きく動き、当初の目標を超えていく。多くのトレーダーにとって、これはおなじみの悩みでしょう。本記事では、異なるリスクリワードレシオ(RRR)で複数のエントリーを配置する手法に焦点を当て、利益を体系的に確保しながら、全体のリスク曝露を抑えるアプローチを解説します。
preview
ニューラルネットワークが簡単に(第30部):遺伝的アルゴリズム

ニューラルネットワークが簡単に(第30部):遺伝的アルゴリズム

今日はちょっと変わった学習法を紹介したいと思います。ダーウィンの進化論からの借用と言えます。先に述べた手法よりも制御性は劣るでしょうが、非差別的なモデルの訓練が可能です。
preview
因果推論における時系列クラスタリング

因果推論における時系列クラスタリング

機械学習におけるクラスタリングアルゴリズムは、元データを類似した観察結果を持つグループに分けることができる重要な教師なし学習法です。これらのクラスタを用いることで、特定の市場クラスタを分析したり、新しいデータを基に最も安定したクラスタを探索したり、因果関係を推定したりすることが可能です。本稿では、Pythonによる時系列クラスタリングのための独自の手法を提案します。
DoEasyライブラリでの価格(第62部): ティックシリーズをリアルタイムで更新して板情報で作業するための準備
DoEasyライブラリでの価格(第62部): ティックシリーズをリアルタイムで更新して板情報で作業するための準備

DoEasyライブラリでの価格(第62部): ティックシリーズをリアルタイムで更新して板情報で作業するための準備

この記事では、ティックデータの更新をリアルタイムで実装し、板情報を操作するための銘柄オブジェクトクラスを準備します(DOM自体は次の記事で実装されます)。
preview
ニューラルネットワークが簡単に(第84回):RevIN (Reversible Normalization)

ニューラルネットワークが簡単に(第84回):RevIN (Reversible Normalization)

入力データの前処理がモデル訓練の安定性に大きく寄与することは、すでに広く知られています。オンラインで「生」の入力データを処理するために、バッチ正規化層が頻繁に使用されますが、時には逆の手順が求められる場合もあります。この記事では、この問題を解決するための1つのアプローチについて解説します。
preview
リプレイシステムの開発 - 市場シミュレーション(第19回):必要な調整

リプレイシステムの開発 - 市場シミュレーション(第19回):必要な調整

ここでは、コードに新しい関数を追加する必要がある場合に、スムーズかつ簡単に追加できるように基礎を整えます。現在のコードでは、有意義な進歩を遂げるために必要な事柄の一部をまだカバーまたは処理できません。最小限の労力で特定のことを実装できるようにするには、すべてを構造化する必要があります。すべてを正しくおこなえば、対処が必要なあらゆる状況に非常に簡単に適応できる、真に普遍的なシステムを得ることができます。
preview
知っておくべきMQL5ウィザードのテクニック(第02回):コホネンマップ

知っておくべきMQL5ウィザードのテクニック(第02回):コホネンマップ

この連載では、MQL5ウィザードがトレーダーの主力であるべきことを示します。なぜでしょうか。MQL5ウィザードを使用すれば、新しいアイデアを組み立てることで時間を節約できるだけでなく、コーディングの重複によるミスを大幅に減らすことができるため、最終的に、取引の哲学のいくつかの重要な分野にエネルギーを注ぐことができるからです。
preview
信頼区間を用いて将来のパフォーマンスを見積もる

信頼区間を用いて将来のパフォーマンスを見積もる

この記事では、自動化された戦略の将来のパフォーマンスを推定する手段として、ブーストラッピング技術の応用について掘り下げます。
preview
ダーバスボックスブレイクアウト戦略における高度な機械学習技術の探究

ダーバスボックスブレイクアウト戦略における高度な機械学習技術の探究

ニコラス・ダーバスによって考案された「ダーバスボックスブレイクアウト戦略」は、株価が一定の「ボックス」レンジを上抜けたときに強い上昇モメンタムが示唆されることから、買いシグナルを見極めるためのテクニカル取引手法です。本記事では、この戦略コンセプトを例として用い、機械学習の3つの高度な技術を探っていきます。それは、取引をフィルタリングするのではなくシグナルを生成するために機械学習モデルを使用すること、離散的ではなく連続的なシグナルを用いること、異なる時間枠で学習されたモデルを使って取引を確認すること、の3点です。
preview
ラリー・ウィリアムズの『市場の秘密』(第8回):ボラティリティ、ストラクチャー、時間フィルターの組み合わせ

ラリー・ウィリアムズの『市場の秘密』(第8回):ボラティリティ、ストラクチャー、時間フィルターの組み合わせ

MQL5における、ラリー・ウィリアムズに着想を得たボラティリティブレイクアウト型エキスパートアドバイザーの構築についての詳細な解説です。本手法は、スイング構造、ボラティリティベースのエントリー、曜日フィルター、時間フィルター、柔軟なリスク管理を組み合わせ、完全な実装と再現性のあるテスト環境を備えています。
DoEasyライブラリのグラフィックス(第80部): 「幾何学的アニメーションフレーム」オブジェクトクラス
DoEasyライブラリのグラフィックス(第80部): 「幾何学的アニメーションフレーム」オブジェクトクラス

DoEasyライブラリのグラフィックス(第80部): 「幾何学的アニメーションフレーム」オブジェクトクラス

本稿では、前の記事のクラスのコードを最適化し、指定された数の頂点を持つ正多角形を描画するための幾何学的アニメーションフレームオブジェクトクラスを作成します。
DoEasyライブラリのグラフィックス(第90部): 標準グラフィカルオブジェクトのイベント基本機能
DoEasyライブラリのグラフィックス(第90部): 標準グラフィカルオブジェクトのイベント基本機能

DoEasyライブラリのグラフィックス(第90部): 標準グラフィカルオブジェクトのイベント基本機能

本稿では、標準のグラフィカルオブジェクトイベントを追跡するための基本的な機能を実装します。グラフィカルオブジェクトのダブルクリックイベントから始めます。
preview
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(II)

初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(II)

本日は、外部ニュースAPIを統合し、News Headline EAの見出し取得元として活用する新たなステップに進みます。このフェーズでは、既存の大手ニュースソースから新興の情報源まで幅広く取り上げ、それぞれのAPIに効果的にアクセスする方法を学びます。さらに、取得したデータをパースし、エキスパートアドバイザー(EA)内での表示に最適化された形式へ変換する手法についても解説します。ニュース見出しや経済指標カレンダーをチャート上に直接表示できることには、大きなメリットがあります。コンパクトで邪魔にならないインターフェースを通じて、取引中でも効率的に情報を確認できるようになるのです。
preview
周波数領域でのフィルタリングと特徴抽出

周波数領域でのフィルタリングと特徴抽出

この記事では、予測モデルに有用な独自の特徴を抽出するために周波数領域で表現された時系列にデジタルフィルタを適用する方法を探ります。
preview
初心者からエキスパートへ:MQL5を使用したアニメーションニュースヘッドライン(IV) - ローカルホストAIモデル市場インサイト

初心者からエキスパートへ:MQL5を使用したアニメーションニュースヘッドライン(IV) - ローカルホストAIモデル市場インサイト

本日のディスカッションでは、オープンソースのAIモデルをセルフホスティングし、市場インサイトの生成に活用する方法について探ります。これは、News Headline EA(エキスパートアドバイザー)を拡張し、AIインサイトレーンを導入することで、多機能統合型アシストツールへと変貌させる取り組みの一環です。このアップグレードにより、EAはカレンダーイベント、金融ニュース速報、テクニカル指標に加え、AIによる市場見解を提供できるようになり、タイムリーで多角的、かつ知的なサポートを取引判断に提供します。本日は、実践的な統合戦略や、MQL5が外部リソースと連携して強力で知的な取引ターミナルを構築する方法についても議論します。
preview
MQL5でのカスタム市場レジーム検出システムの構築(第1回):インジケーター

MQL5でのカスタム市場レジーム検出システムの構築(第1回):インジケーター

この記事では、自己相関やボラティリティなどの統計手法を用いたMQL5市場レジーム検出システム(Market Regime Detection System)の作成方法を詳述しています。トレンド相場、レンジ相場、ボラティリティの高い相場を分類するためのクラスや、カスタムインジケーターのコードも提供しています。
DoEasyライブラリのグラフィックス(第77部): 影オブジェクトクラス
DoEasyライブラリのグラフィックス(第77部): 影オブジェクトクラス

DoEasyライブラリのグラフィックス(第77部): 影オブジェクトクラス

本稿では、グラフィック要素オブジェクトの子孫である 影オブジェクトのクラスを作成し、オブジェクトの背景をグラデーションで塗りつぶす機能を追加します。
preview
母集団最適化アルゴリズム:Mind Evolutionary Computation (MEC)アルゴリズム

母集団最適化アルゴリズム:Mind Evolutionary Computation (MEC)アルゴリズム

この記事では、Simple Mind Evolutionary Computation(Simple MEC, SMEC)アルゴリズムと呼ばれる、MECファミリーのアルゴリズムを考察します。このアルゴリズムは、そのアイデアの美しさと実装の容易さで際立っています。
preview
DoEasy - コントロール(第26部):ToolTip WinFormsオブジェクトの最終確認とProgressBarの開発開始

DoEasy - コントロール(第26部):ToolTip WinFormsオブジェクトの最終確認とProgressBarの開発開始

今回は、ツールチップコントロールの開発を完了し、ProgressBar WinFormsオブジェクトの開発を開始します。オブジェクトで作業しながら、コントロールやそのコンポーネントをアニメーション化するための普遍的な機能を開発する予定です。
preview
RestAPIを統合したMQL5強化学習エージェントの開発(第3回):MQL5で自動手番とテストスクリプトを作成する

RestAPIを統合したMQL5強化学習エージェントの開発(第3回):MQL5で自動手番とテストスクリプトを作成する

この記事では、MQL5関数とユニットテストを統合した、Pythonによる三目並べの自動手番の実装について説明します。目標は、MQL5でのテストを通じて、対戦のインタラクティブ性を向上させ、システムの信頼性を確保することです。このプレゼンテーションでは、対戦ロジックの開発、統合、実地テストについて説明し、最後にダイナミックな対戦環境と堅牢な統合システムを作成します。
preview
データサイエンスとML(第30回):株式市場を予測するパワーカップル、畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)

データサイエンスとML(第30回):株式市場を予測するパワーカップル、畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)

本稿では、株式市場予測における畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)の動的統合を探求します。CNNのパターン抽出能力と、RNNの逐次データ処理能力を活用します。この強力な組み合わせが、取引アルゴリズムの精度と効率をどのように高めることができるかを見てみましょう。
preview
ニューラルネットワークが簡単に(第62回):階層モデルにおけるDecision Transformerの使用

ニューラルネットワークが簡単に(第62回):階層モデルにおけるDecision Transformerの使用

最近の記事で、Decision Transformerを使用するためのいくつかの選択肢を見てきました。この方法では、現在の状態だけでなく、以前の状態の軌跡や、その中でおこなわれた行動も分析することができます。この記事では、階層モデルにおけるこの方法の使用に焦点を当てます。
preview
古典的な戦略を再構築する(第12回):EURUSDブレイクアウト戦略

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

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

HarmonyOS NEXTデバイスにMetaTrader 5などのMetaQuotesアプリをインストールする

HarmonyOS NEXTデバイスでMetaTrader 5やその他のMetaQuotesアプリをDroiTong(卓易通)を使って簡単にインストールできます。スマートフォンやノートパソコン向けの詳細なステップバイステップガイドです。
preview
MQL5の圏論(第3回)

MQL5の圏論(第3回)

圏論は数学の一分野であり、多様な広がりを見せていますが、MQL5コミュニティでは今のところ比較的知られていません。この連載では、その概念のいくつかを紹介して考察することで、トレーダーの戦略開発におけるこの注目すべき分野の利用を促進することを目的としたオープンなライブラリを確立することを目指しています。
preview
価格変動モデルとその主な規定(第3回):証券取引所の投機の最適なパラメータを計算する

価格変動モデルとその主な規定(第3回):証券取引所の投機の最適なパラメータを計算する

確率論に基づき著者が開発した工学的アプローチの枠組みの中で、利益を生むポジションを建てるための条件を見つけ、最適な(利益を最大化する)利食いと損切りの値を計算します。
preview
インジケーターを便利に扱うためのシンプルなソリューション

インジケーターを便利に扱うためのシンプルなソリューション

この記事では、チャート上からインジケーターの設定を直接変更できるシンプルなパネルの作成方法と、そのパネルをインジケーターに接続するために必要な変更点について解説します。この記事はMQL5初心者向けに書かれています。
preview
MQL5での取引戦略の自動化(第6回):スマートマネートレーディングのためのオーダーブロック検出の習得

MQL5での取引戦略の自動化(第6回):スマートマネートレーディングのためのオーダーブロック検出の習得

この記事では、純粋なプライスアクション分析を用いてMQL5でオーダーブロック検出を自動化します。オーダーブロックの定義、検出の実装、自動売買への統合をおこない、最後に戦略のバックテストを通じてパフォーマンスを評価します。
preview
多層パーセプトロンとバックプロパゲーションアルゴリズム(その3):ストラテジーテスターとの統合 - 概要(I)

多層パーセプトロンとバックプロパゲーションアルゴリズム(その3):ストラテジーテスターとの統合 - 概要(I)

多層パーセプトロンは、非線形分離可能な問題を解くことができる単純なパーセプトロンを進化させたものです。バックプロパゲーションアルゴリズムと組み合わせることで、このニューラルネットワークを効果的に学習させることができます。多層パーセプトロンとバックプロパゲーション連載第3回では、このテクニックをストラテジーテスターに統合する方法を見ていきます。この統合により、取引戦略を最適化するためのより良い意思決定を目的とした複雑なデータ分析が可能になります。この記事では、このテクニックの利点と問題点について説明します。
preview
古典的な戦略を再構築する(第11回):移動平均クロスオーバー(II)

古典的な戦略を再構築する(第11回):移動平均クロスオーバー(II)

移動平均とストキャスティクスオシレーターは、トレンドに従う取引シグナルを生成するために使用できます。ただし、これらのシグナルは価格変動が発生した後にのみ観察されます。AIを使用することで、テクニカルインジケーターに内在するこの遅れを効果的に克服できます。この記事では、既存の取引戦略を改善できるような、完全に自律的なAI搭載のエキスパートアドバイザー(EA)を作成する方法を説明します。最も古い取引戦略であっても、改善することは可能です。
preview
知っておくべきMQL5ウィザードのテクニック(第50回):Awesome Oscillator

知っておくべきMQL5ウィザードのテクニック(第50回):Awesome Oscillator

Awesome Oscillatorは、モメンタム(勢い)を測定するために使用されるビル・ウィリアムズのインジケーターの一つです。複数のシグナルを生成できるため、以前の記事と同様に、MQL5ウィザードクラスとアセンブリを活用して、パターンベースでこれらを確認します。
preview
DoEasyライブラリの時系列(第58部): 指標バッファデータの時系列

DoEasyライブラリの時系列(第58部): 指標バッファデータの時系列

時系列の操作に関するトピックのしめくくりとして、指標バッファに格納されているストレージ、検索、およびデータの並べ替えを整理します。これにより、プログラムでライブラリベースで作成される指標の値に基づいて分析をさらに実行できます。ライブラリのすべてのコレクションクラスの一般的な概念により、対応するコレクションで必要なデータを簡単に見つけることができます。それぞれ、今日作成されたクラスでも同じことが可能です。
preview
母集団最適化アルゴリズム:Stochastic Diffusion Search (SDS)

母集団最適化アルゴリズム:Stochastic Diffusion Search (SDS)

この記事では、ランダムウォークの原理に基づく非常に強力で効率的な最適化アルゴリズムである確SDS(Stochastic Diffusion Search、確率的拡散探索)について説明します。このアルゴリズムは、複雑な多次元空間で最適解を求めることができ、収束速度が速く、局所極値を避けることができるのが特徴です。
DoEasy - コントロール(第32部):水平スクロールバー、マウスホイールスクロール
DoEasy - コントロール(第32部):水平スクロールバー、マウスホイールスクロール

DoEasy - コントロール(第32部):水平スクロールバー、マウスホイールスクロール

この記事では、水平スクロールバーオブジェクト機能の開発を完成します。また、スクロールバーのスライダーを動かしたり、マウスホイールを回転させたりしてコンテナの内容をスクロールできるようにするほか、MQL5の新しい注文実行ポリシーや新しいランタイムエラーコードを考慮したライブラリへの追加もおこないます。
preview
ニューラルネットワークが簡単に(第44回):ダイナミクスを意識したスキルの習得

ニューラルネットワークが簡単に(第44回):ダイナミクスを意識したスキルの習得

前回は、様々なスキルを学習するアルゴリズムを提供するDIAYN法を紹介しました。習得したスキルはさまざまな仕事に活用できます。しかし、そのようなスキルは予測不可能なこともあり、使いこなすのは難しくなります。この記事では、予測可能なスキルを学習するアルゴリズムについて見ていきます。
preview
ニュース取引が簡単に(第6回):取引の実施(III)

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

この記事では、IDに基づいて個々のニュースイベントをフィルターする関数を実装します。さらに、以前のSQLクエリを改善し、追加情報が提供されたり、クエリの実行時間が短縮されるようになります。さらに、これまでの記事で作成したコードを機能的なものにします。