MQL5言語を使ったMetaTrader 5の統合に関する記事

icon

トレーダーはしばしば革新的なアプローチを要する、興味深いチャレンジに出会います。このカテゴリは、価格データとトレーディング結果を評価し、分析し、処理するための、決して思いもしなかったソリューションを提供する記事を特集します。記事は様々な統合ソリューションについて書かれており、データベースとICQの結合、OpenCLの使用、そしてソーシャルネットワーク、DelphiとC#の使用を含んでいます。

特別に用意された数学的なニューラルなパッケージ、さらにはもっと多くのものをどのように使うかを知るために読み進んでください。作者になりMQL5.communityのメンバーと独自のアイデアを共有してください。

新しい記事を追加
最新 | ベスト
preview
MQL5入門(第37回):MQL5のAPIとWebRequest関数の習得(XI)

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

MQL5を使用してBinance APIに認証付きリクエストを送信し、アカウント内の全資産の残高情報を取得する方法を解説します。APIキー、サーバー時刻、署名を利用して安全にアカウント情報へアクセスし、そのレスポンスをファイルへ保存して後で活用する方法を学びます。
preview
金融時系列における共形予測の考察

金融時系列における共形予測の考察

共形予測(Conformal Prediction)と、それを実装するMAPIEライブラリについて考察します。このアプローチは機械学習における最も現代的な手法の一つであり、既存のさまざまな機械学習モデルに対するリスク管理に焦点を当てることを可能にします。共形予測それ自体は、データ内のパターンを見つける方法ではありません。これは、既存のモデルが個々のサンプルを予測する際の信頼度を判定するだけであり、信頼性の高い予測を選別できるようにします。
preview
グラフ理論:取引における幅優先探索(BFS)/ja/応用

グラフ理論:取引における幅優先探索(BFS)/ja/応用

幅優先探索(BFS)はレベル順トラバーサルを用い、価格スイングを時間/ja/経過とともに進化する有向グラフとして市場構造をモデル化します。過去/ja/ローソク足またはセッションを階層ごとに分析することで、BFSはより直近/ja/価格挙動を優先しつつ、より長期/ja/市場文脈も反映します。
preview
MQL5取引ツールのアクセシビリティ課題を克服する(第2回):Pythonのテキスト読み上げエンジンでEAを音声対応にする

MQL5取引ツールのアクセシビリティ課題を克服する(第2回):Pythonのテキスト読み上げエンジンでEAを音声対応にする

テキスト読み上げ(TTS)技術を使用し、PythonとMQL5を連携させてエキスパートアドバイザー(EA)を音声対応にする方法について説明します。この記事を読み終える頃には、動的な市場情報を音声で伝えるEAの実装例を手にすることができます。TTSの活用方法、WebRequest関数の使い方、そしてPythonライブラリがMQL5言語とどのように統合され、実際に音声を活用できるトレードツールを構築できるかを理解できます。
preview
MQL5入門(第38回):MQL5のAPIとWebRequest関数の習得(XII)

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

MetaTrader 5とBinanceの間に実用的な橋渡しを構築します。WebRequestを使用して30分足のデータ(kline)を取得し、JSONからOHLCおよび時刻データを抽出したうえで、確定済みのローソク足のみを使用して強気の包み足パターンを確認します。その後、クエリ文字列を組み立て、HMAC-SHA256署名を計算し、X-MBX-APIKEYを追加して認証済み注文を送信します。これにより、データ取得から注文執行までを網羅した、分かりやすいエンドツーエンドのEAワークフローを実現できます。
preview
Python-MetaTrader 5ストラテジーテスター(第5回):複数銘柄および複数時間足ストラテジーテスター

Python-MetaTrader 5ストラテジーテスター(第5回):複数銘柄および複数時間足ストラテジーテスター

銘柄および時間足を横断してスケーラブルに動作するMetaTrader 5互換のバックテストワークフローを紹介します。本システムでは、HistoryManagerを用いてデータ取得を並列化し、すべての時間足からバーおよびティックデータを同期し、スレッドごとに銘柄分離されたOnTickハンドラを実行します。モデリングモードが速度と精度に与える影響、ターミナルデータに依存すべき場面、イベント駆動型更新によるI/O削減手法、そして複数通貨自動売買ロボットの構築方法について学びます。
preview
MQL5とデータ処理パッケージの統合(第7回):銘柄間連携のためのマルチエージェント環境の構築

MQL5とデータ処理パッケージの統合(第7回):銘柄間連携のためのマルチエージェント環境の構築

マルチエージェント取引のための完全なPython–MQL5統合について解説します。内容には、MT5データ取得、インジケーター計算、各エージェントによる意思決定、そして単一のアクションを出力する重み付きコンセンサス処理が含まれます。シグナルはJSON形式で保存され、Flaskによって提供され、MQL5のエキスパートアドバイザー(EA)によって取得されて実行されます。実行時には、ポジションサイズを計算し、ATRに基づくSL/TPも設定されます。Flaskのルートは、安全なライフサイクル制御とステータス監視のための機能を提供します。
preview
MetaTrader 5機械学習の設計図(第7回):散発的な実験から再現可能な結果へ

MetaTrader 5機械学習の設計図(第7回):散発的な実験から再現可能な結果へ

本連載の最新回では、個々の機械学習手法の解説から一歩進み、多くのクオンツトレーダーを悩ませている「リサーチの混沌(Research Chaos)」という問題に焦点を当てます。本記事では、場当たり的なノートブックでの実験から脱却し、再現性・追跡可能性・効率性を備えた、本番運用レベルのパイプラインへ移行する方法について説明します。
preview
人工原子アルゴリズム(A3)

人工原子アルゴリズム(A3)

化学プロセスから着想を得たメタヒューリスティック最適化手法であるA3アルゴリズムをMQL5で実装します。調整可能なパラメータは2つだけであり、さらに小規模な集団を使用することで、十分な解の品質を維持しながら、高速に動作することを実現しています。
preview
市場取引アルゴリズム(EMA)

市場取引アルゴリズム(EMA)

本稿では、株式市場のトレーダーの行動に着想を得た市場取引アルゴリズム(EMA, Exchange Market Algorithm)について詳しく分析します。このアルゴリズムは株式取引をシミュレーションするもので、市場参加者はそれぞれ異なる成功度を持ち、利益を最大化するためにさまざまな戦略を使用します。
preview
市場シミュレーション(第15回):ソケット(IX)

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

本記事では、これまで実演してきた内容、すなわち「ExcelユーザーがMetaTrader 5上で操作できるようにする方法」の一例について解説します。ここで扱うのは、注文送信やポジションの新規建て・決済をExcel側から直接実行する方法ではなく、ExcelからMetaTrader 5上のEAにそれらの操作を指示する方法です。ユーザーはExcelを用いて特定銘柄のファンダメンタル分析をおこない、その結果をもとに、Excelだけを使ってMetaTrader 5上で稼働しているエキスパートアドバイザー(EA)に対し、特定ポジションの新規建てまたは決済を指示できるようにします。
preview
市場シミュレーション(第23回):SQL入門(VI)

市場シミュレーション(第23回):SQL入門(VI)

本記事では、データベースを可視化し、その構造をどのように理解するかについて見ていきます。これを実現するために、データベースの内部構造を分析します。一見すると不要な作業のように思えるかもしれませんが、本気でデータベース管理者を目指すのであれば、これは十分に意味のある作業です。実際、データベースの保守や設計を生業としている人もいます。
preview
MQL5経済指標カレンダーを用いたニュースフィルタリング(第1回):MQL5におけるニュース前・ニュース後ウィンドウの実装

MQL5経済指標カレンダーを用いたニュースフィルタリング(第1回):MQL5におけるニュース前・ニュース後ウィンドウの実装

本システムでは、Webリクエストや外部DLLを使用せず、MQL5のみでカレンダー連動型ニュースフィルタを構築します。第1回は、経済イベントの読み込みとキャッシュ処理、通貨を基準とした銘柄へのイベント紐付け、重要度レベルによるフィルタリング、ニュース前後の監視時間(ウィンドウ)の設定、そしてニュース発生中の新規トレード制限について解説します。また、必要に応じてニュース前に保有ポジションを決済する機能も実装します。この結果、不要な取引停止を減らし、ボラティリティが高まる局面でのエントリーを保護する、設定可能でプロップファーム向けにも適したリスク管理機能を実現できます。
preview
MQL5コミュニティOAuthを利用した外部アプリケーション連携

MQL5コミュニティOAuthを利用した外部アプリケーション連携

OAuth 2.0の認可コードフローを使用してAndroidアプリに[Sign in with MQL5]を追加する方法を学びます。このガイドでは、アプリ登録、エンドポイント、リダイレクトURI、カスタムタブ、ディープリンク処理、およびHTTPS経由で認可コードをアクセストークンに交換するPHPバックエンドについて説明します。実際のMQL5ユーザーを認証し、ランクやレピュテーションなどのプロファイルデータにアクセスできるようになります。
preview
MetaTrader 5機械学習の設計図(第8回):パージ済み交差検証と試行枝刈りを用いたベイズ最適化によるハイパーパラメータ最適化

MetaTrader 5機械学習の設計図(第8回):パージ済み交差検証と試行枝刈りを用いたベイズ最適化によるハイパーパラメータ最適化

GridSearchCVとRandomizedSearchCVは、金融機械学習(金融ML)における本質的な制約を共有しています。それは、各試行が独立しているため、計算資源を増やしても探索そのものが賢くならないという点です。本記事では、TPE (Tree-structured Parzen Estimator)を用いるOptunaを、PurgedKFold交差検証、HyperbandPrunerによる早期終了、および学習用重みと評価用重みを分離する二重重み規約と統合する方法を紹介します。その結果として、フォールド単位で枝刈りをおこなう目的関数、モデルのハイパーパラメータと重み付けスキームを同時に最適化する提案層、金融タスク向けに調整されたプルーナー、SQLiteをバックエンドとする、再開可能なオーケストレーター、Optunaの結果をscikit-learnのcv_results_形式へ変換するコンバータの5つの要素から構成されるシステムが得られます。さらに本記事では、Timothy Mastersが示した境界についても説明します。すなわち、「統計的な目的関数では誘導的な探索が有益である一方、金融目的関数では逆に有害となる」という考え方です。
preview
グラフ理論:取引における深さ優先探索(DFS)の応用

グラフ理論:取引における深さ優先探索(DFS)の応用

深さ優先探索(DFS)を市場構造に適用し、スイングハイとスイングローをグラフのノードとしてモデル化します。そして、条件が有効である限り、1つの構造的な経路を深く追跡します。重要なスイングがブレイクされた場合、アルゴリズムはバックトラックし、別の分岐を探索します。読者は、構造的バイアスを形式化し、現在の経路が流動性プールや需給ゾーンなどのターゲットと整合しているかを検証するための実践的なフレームワークを学ぶことができます。
preview
MQL5における建値機能の実装(第2回):ATRとRRRに基づく建値機構

MQL5における建値機能の実装(第2回):ATRとRRRに基づく建値機構

MQL5におけるATRおよびRRRRベースの建値機構の実装を完了し、パラメータを再入力することなく建値モードを簡単に切り替えられるクラスを新たに実装します。各建値方式の有効性を評価するため、複数のバックテストを実施し、アルゴリズム取引の観点からそれぞれのメリットとデメリットを分析します。
preview
市場シミュレーション(第13回):ソケット(VII)

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

xlwingsなど、Excelへの直接的な読み書きを可能にするパッケージを用いて何かを開発する場合には、すべてのプログラム、関数、または手続きは実行され、その処理を完了すると同時に終了するという点に注意する必要があります。どれだけ工夫をしても、それらを継続的なループ処理として動作させ続けることはできません。
preview
市場シミュレーション(第24回):SQL入門(VII)

市場シミュレーション(第24回):SQL入門(VII)

前回の記事では、SQLに必要な導入を完了しました。SQLについて何を説明したいのかは、十分に明確にできたと思います。これは、市場のリプレイ/シミュレーションシステムの構築を見に来る人であれば誰でも、そこで何が起きているのかを少なくともある程度イメージできるようにするためのものでした。重要な点は、SQLが完全に処理できることをわざわざプログラミングする意味はないということです。
preview
MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出

MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出

市場構造をMQL5上でグラフとして表現し、スイングハイとスイングローを特徴量を持つノードとして扱い、それらをエッジで接続する方法を紹介します。また、潜在的な流動性ゾーンをスコアリングするためのGNN(Graph Neural Network:グラフニューラルネットワーク)の学習、モデルのONNX形式へのエクスポート、さらにエキスパートアドバイザー(EA)内でリアルタイム推論を実行する方法についても解説します。読者は、データパイプラインの構築、モデルの統合、チャート上への流動性ゾーンの可視化、そしてそのシグナルをルールベースの売買執行へ活用する方法を学びます。
preview
科学者コミュニティ最適化 (CoSO):実装編

科学者コミュニティ最適化 (CoSO):実装編

科学コミュニティを題材にした最適化手法の話題を引き続き取り上げます。CoSOは完成されたソリューションとして捉えるべきではなく、将来性のある研究プラットフォームとして考えるべきです。適切に発展させることで、CoSOは、適応性と変化への耐性が重要であり、計算時間がそれほど重要視されないタスクにおいて、その有用性を発揮できる可能性があります。
preview
競争学習アルゴリズム(CLA)

競争学習アルゴリズム(CLA)

教育プロセスのシミュレーションに基づく新しいメタヒューリスティック最適化手法である競争学習アルゴリズム(CLA)を紹介します。このアルゴリズムでは、解の集団を生徒と教師からなるクラスに編成し、エージェントが3つのメカニズムを通じて学習します。それは、クラス内で最も優れた生徒に従うこと、個人的な経験を活用すること、そしてクラス間で知識を共有することです。
preview
市場シミュレーション:ポジション表示(V)

市場シミュレーション:ポジション表示(V)

前回の記事で示した内容だけを見ると、これらはすべて一見すると簡単なことのように思えるかもしれません。しかし実際には、まだいくつもの問題が残っており、完了しなければならない作業も数多くあります。読者の皆さんは、すべてが簡単で分かりやすいものだと思ってしまうかもしれません。経験がないために、目の前に提示されたものをそのまま受け入れてしまうこともあるでしょう。しかし、それは避けるべき間違いです。さらに悪いのは、自分が実際に何を使っているのかを十分に理解しないまま、何かを利用しようとすることです。初心者は、しばしばコピー&ペーストの段階を経験します。もし、いつまでもその段階にとどまりたくないのであれば、いくつかのツールの使い方を学ぶべきです。プログラマーが最も頻繁に使用するツールの一つがドキュメントです。二つ目は、ログファイルを活用したテストです。ここでは、その方法を見ていきます。
preview
科学者コミュニティ最適化 (CoSO):理論編

科学者コミュニティ最適化 (CoSO):理論編

メタヒューリスティック手法における取引戦略の効果的な最適化の秘訣。Community of Scientists Optimization (CoSO)は、科学者コミュニティの仕組みに着想を得た、集団ベースの新しい最適化アルゴリズムです。従来の自然界を模倣したメタファーとは異なり、CoSOでは、人間による科学活動の特徴的な側面、すなわち、学術誌への研究成果の発表、研究助成金をめぐる競争、研究チームの形成などをモデル化します。
preview
多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加

多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加

複数の戦略を並列で実行する場合、定期的にすべての未決済ポジションを決済し、戦略を最初から再開したい場合があります。しかし、現行のコードでは、この動作は手動でしか実現できません。そこで、この処理を自動化してみましょう。
preview
MQL5をマスターする — 初心者からプロまで(第7回):MQLアプリケーションのデバッグの原則

MQL5をマスターする — 初心者からプロまで(第7回):MQLアプリケーションのデバッグの原則

デバッグは、プログラミングサイクルにおいて不可欠な要素です。 この記事では、MetaTrader 5環境で動作するあらゆるアプリケーションのデバッグに用いられる一般的な手法について解説します。
preview
市場シミュレーション(第21回):SQL入門(IV)

市場シミュレーション(第21回):SQL入門(IV)

私よりもデータベースを扱った経験がはるかに豊富で、そのため異なる見解をお持ちの方も多いかもしれません。 データベースがなぜ現在のような設計になっているのか、そしてなぜSQLが現在のような形式になっているのか、特に、なぜ主キーや外部キーという仕組みが生まれたのかを説明する必要があったため、一部の説明は、どうしてもやや抽象的なままにせざるを得ませんでした。
preview
市場シミュレーション(第22回):SQL入門(V)

市場シミュレーション(第22回):SQL入門(V)

SQLの学習をあきらめ、やめてしまおうと決める前に、ここで扱っているのは、まだ最も基本的な要素だけであることを改めてお伝えしておきます。 SQLには、まだ紹介していない機能もあります。 それらを理解すれば、SQLが想像以上に実用的なものであることがわかるでしょう。 もっとも、開発は進めながら変化していくものなので、最終的には、現在の取り組みの方向性を変えることになるかもしれません。 SQLを使ってさまざまなものを作る方法についても、もう少し紹介していく予定です。これらは、皆さんにとって本当に重要で、役に立つ知識だからです。 プログラマーや開発者のコミュニティ全体よりも自分のほうが優れていると考えるだけでは、時間と機会を無駄にするだけです。 ご安心ください。この先は、さらに興味深い内容になっていきます。
preview
夢最適化アルゴリズム(DOA)

夢最適化アルゴリズム(DOA)

議論の的となっており、まだ十分に研究されていない現象である「人間の夢」のメカニズムに着想を得た、集団ベースの最適化アルゴリズムです。 記憶特性の異なるエージェントグループ、余弦波による移動の変調、そして99対1という特異なフェーズ配分。これらの特徴が、取引戦略の最適化効率にどのような影響を与えるのかを検証します。
preview
決闘者アルゴリズム

決闘者アルゴリズム

もし、あなたの取引戦略が、実際の格闘家のように互いに学び合えるとしたら、どうでしょうか。 決闘者アルゴリズムは、取引システムのパラメータ同士が、文字どおり「最良」と呼ばれる権利を懸けて決闘する、新しい最適化手法です。
preview
市場シミュレーション:ポジション表示(VI)

市場シミュレーション:ポジション表示(VI)

ポジション表示インジケータが、取引サーバー上の実際のポジション状況(保有ポジションの有無や現在の状態)を正確に反映できるよう、いくつかの改善をおこないます。 あらかじめお断りしておきますが、ここで紹介するアプリケーションは、MetaTrader 5に標準搭載されている機能を置き換えることを目的としたものではありません。 また、十分な注意と慎重な判断なしに使用することも避けてください。これらは、あくまでもシステムの仕組みを学ぶための学習用コードです。 私があえて「学習用コード」と呼んでいるのには理由があります。機能によっては、メッセージを使って実装することが必ずしも最適な方法とは限らないからです。
preview
市場シミュレーション:MQL5でのSQL入門(V)

市場シミュレーション:MQL5でのSQL入門(V)

前回の記事では、クエリ機能を追加する方法について説明しました。 これにより、MQL5のコード内でSQLを自由に活用し、SQLのSELECTクエリを実行してデータを取得できるようになります。 しかし、実装すべき関数がもう一つ残っています。 それがDatabaseReadBind関数です。 この関数を正しく理解するには、もう少し詳しい説明が必要となるため、前回の記事では取り上げず、今回の記事で解説することにしました。 今回は比較的広範囲な内容となるため、さっそく本題に入りましょう。
preview
市場シミュレーション:ポジション表示(VII)

市場シミュレーション:ポジション表示(VII)

この記事では、ポジション表示インジケータを操作して、価格ラインを変更したり、ポジションを直接決済したりできるように、改良を加えていきます。 実装に進む前に、特にこの仕組みに詳しくない方のために、いくつか明確にしておきたい点があります。 このインジケータを使って、取引サーバー上の情報を直接変更することはできません。 MetaTrader 5には、注文やポジションの変更をエキスパートアドバイザー(EA)のみに許可するセキュリティシステムが設けられているためです。 EA以外のアプリケーションでは、注文やポジションを操作することはできません。
preview
市場シミュレーション:MQL5でのSQL入門(I)

市場シミュレーション:MQL5でのSQL入門(I)

今回は、MQL5のコードでSQLを使用する方法について学び始めます。 また、データベースの作成方法についても解説します。 より正確には、MQL5に組み込まれた機能を利用して、SQLiteのデータベースファイルを作成する方法を取り上げます。 さらに、テーブルの作成方法や、主キーと外部キーを使用してテーブル間のリレーションシップを設定する方法についても説明します。 今回も、これらはすべてMQL5を使って実装します。 また、実装の詳細を隠蔽するクラスを利用することで、将来的にほかのSQL実装へ移行できるコードを、いかに簡単に作成できるかを見ていきます。 そして何より重要なのは、SQLを使用する際には、さまざまな場面で問題が発生する可能性があるということです。 これは、MQL5のコードでは、SQL文を常に文字列として記述しなければならないためです。