KnitPkgを用いたMQL5向けパッケージベース開発手法
MetaTrader向けにMQLを用いた高い信頼性と生産性を備えた開発を実現するため、MQL5/MQL4向けのプロジェクトマネージャであるKnitPkgを利用した、再利用可能な「パッケージ」を中心とする開発手法を紹介します。パッケージは、他のパッケージを構成する土台として利用できるだけでなく、EAやインジケータなど、MetaTraderプラットフォーム上で直接動作する最終成果物の基盤としても活用できます。
金融時系列における共形予測の考察
共形予測(Conformal Prediction)と、それを実装するMAPIEライブラリについて考察します。このアプローチは機械学習における最も現代的な手法の一つであり、既存のさまざまな機械学習モデルに対するリスク管理に焦点を当てることを可能にします。共形予測それ自体は、データ内のパターンを見つける方法ではありません。これは、既存のモデルが個々のサンプルを予測する際の信頼度を判定するだけであり、信頼性の高い予測を選別できるようにします。
MQL5とデータ処理パッケージの統合(第7回):銘柄間連携のためのマルチエージェント環境の構築
マルチエージェント取引のための完全なPython–MQL5統合について解説します。内容には、MT5データ取得、インジケーター計算、各エージェントによる意思決定、そして単一のアクションを出力する重み付きコンセンサス処理が含まれます。シグナルはJSON形式で保存され、Flaskによって提供され、MQL5のエキスパートアドバイザー(EA)によって取得されて実行されます。実行時には、ポジションサイズを計算し、ATRに基づくSL/TPも設定されます。Flaskのルートは、安全なライフサイクル制御とステータス監視のための機能を提供します。
Python-MetaTrader 5ストラテジーテスター(第5回):複数銘柄および複数時間足ストラテジーテスター
銘柄および時間足を横断してスケーラブルに動作するMetaTrader 5互換のバックテストワークフローを紹介します。本システムでは、HistoryManagerを用いてデータ取得を並列化し、すべての時間足からバーおよびティックデータを同期し、スレッドごとに銘柄分離されたOnTickハンドラを実行します。モデリングモードが速度と精度に与える影響、ターミナルデータに依存すべき場面、イベント駆動型更新によるI/O削減手法、そして複数通貨自動売買ロボットの構築方法について学びます。
市場シミュレーション(第23回):SQL入門(VI)
本記事では、データベースを可視化し、その構造をどのように理解するかについて見ていきます。これを実現するために、データベースの内部構造を分析します。一見すると不要な作業のように思えるかもしれませんが、本気でデータベース管理者を目指すのであれば、これは十分に意味のある作業です。実際、データベースの保守や設計を生業としている人もいます。
MQL5経済指標カレンダーを用いたニュースフィルタリング(第1回):MQL5におけるニュース前・ニュース後ウィンドウの実装
本システムでは、Webリクエストや外部DLLを使用せず、MQL5のみでカレンダー連動型ニュースフィルタを構築します。第1回は、経済イベントの読み込みとキャッシュ処理、通貨を基準とした銘柄へのイベント紐付け、重要度レベルによるフィルタリング、ニュース前後の監視時間(ウィンドウ)の設定、そしてニュース発生中の新規トレード制限について解説します。また、必要に応じてニュース前に保有ポジションを決済する機能も実装します。この結果、不要な取引停止を減らし、ボラティリティが高まる局面でのエントリーを保護する、設定可能でプロップファーム向けにも適したリスク管理機能を実現できます。
MQL5取引ツールのアクセシビリティ課題を克服する(第2回):Pythonのテキスト読み上げエンジンでEAを音声対応にする
テキスト読み上げ(TTS)技術を使用し、PythonとMQL5を連携させてエキスパートアドバイザー(EA)を音声対応にする方法について説明します。この記事を読み終える頃には、動的な市場情報を音声で伝えるEAの実装例を手にすることができます。TTSの活用方法、WebRequest関数の使い方、そしてPythonライブラリがMQL5言語とどのように統合され、実際に音声を活用できるトレードツールを構築できるかを理解できます。
市場シミュレーション(第24回):SQL入門(VII)
前回の記事では、SQLに必要な導入を完了しました。SQLについて何を説明したいのかは、十分に明確にできたと思います。これは、市場のリプレイ/シミュレーションシステムの構築を見に来る人であれば誰でも、そこで何が起きているのかを少なくともある程度イメージできるようにするためのものでした。重要な点は、SQLが完全に処理できることをわざわざプログラミングする意味はないということです。
グラフ理論:取引における深さ優先探索(DFS)の応用
深さ優先探索(DFS)を市場構造に適用し、スイングハイとスイングローをグラフのノードとしてモデル化します。そして、条件が有効である限り、1つの構造的な経路を深く追跡します。重要なスイングがブレイクされた場合、アルゴリズムはバックトラックし、別の分岐を探索します。読者は、構造的バイアスを形式化し、現在の経路が流動性プールや需給ゾーンなどのターゲットと整合しているかを検証するための実践的なフレームワークを学ぶことができます。
MetaTrader 5機械学習の設計図(第8回):パージ済み交差検証と試行枝刈りを用いたベイズ最適化によるハイパーパラメータ最適化
GridSearchCVとRandomizedSearchCVは、金融機械学習(金融ML)における本質的な制約を共有しています。それは、各試行が独立しているため、計算資源を増やしても探索そのものが賢くならないという点です。本記事では、TPE (Tree-structured Parzen Estimator)を用いるOptunaを、PurgedKFold交差検証、HyperbandPrunerによる早期終了、および学習用重みと評価用重みを分離する二重重み規約と統合する方法を紹介します。その結果として、フォールド単位で枝刈りをおこなう目的関数、モデルのハイパーパラメータと重み付けスキームを同時に最適化する提案層、金融タスク向けに調整されたプルーナー、SQLiteをバックエンドとする、再開可能なオーケストレーター、Optunaの結果をscikit-learnのcv_results_形式へ変換するコンバータの5つの要素から構成されるシステムが得られます。さらに本記事では、Timothy Mastersが示した境界についても説明します。すなわち、「統計的な目的関数では誘導的な探索が有益である一方、金融目的関数では逆に有害となる」という考え方です。
MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出
市場構造をMQL5上でグラフとして表現し、スイングハイとスイングローを特徴量を持つノードとして扱い、それらをエッジで接続する方法を紹介します。また、潜在的な流動性ゾーンをスコアリングするためのGNN(Graph Neural Network:グラフニューラルネットワーク)の学習、モデルのONNX形式へのエクスポート、さらにエキスパートアドバイザー(EA)内でリアルタイム推論を実行する方法についても解説します。読者は、データパイプラインの構築、モデルの統合、チャート上への流動性ゾーンの可視化、そしてそのシグナルをルールベースの売買執行へ活用する方法を学びます。
多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加
複数の戦略を並列で実行する場合、定期的にすべての未決済ポジションを決済し、戦略を最初から再開したい場合があります。しかし、現行のコードでは、この動作は手動でしか実現できません。そこで、この処理を自動化してみましょう。
市場取引アルゴリズム(EMA)
本稿では、株式市場のトレーダーの行動に着想を得た市場取引アルゴリズム(EMA, Exchange Market Algorithm)について詳しく分析します。このアルゴリズムは株式取引をシミュレーションするもので、市場参加者はそれぞれ異なる成功度を持ち、利益を最大化するためにさまざまな戦略を使用します。
因果推論とアルゴリズム取引における回帰モデルの活用
アルゴリズム取引における回帰モデルの活用可能性について考察します。回帰モデルは、二値分類とは異なり、予測される価格変動を定量的に表現できるため、より柔軟な取引戦略を構築できます。
市場シミュレーション(第23回):ポジション表示(I)
これから扱う内容は、理論や概念の面で、これまでよりもはるかに複雑になります。できる限り内容を分かりやすく説明していきたいと思います。プログラミングそのものは、非常に単純で分かりやすいものです。しかし、その背後にある理論を理解していなければ、ここで紹介するものとは異なるタスクに対して、リプレイ/シミュレーションシステムを改良したり応用したりするための実践的な基盤を得ることはできません。私が提示するコードを単にコンパイルして利用するだけになってほしくはありません。学び、理解し、可能であれば、さらに優れたものを自分自身で作成できるようになってほしいのです。