Python-MetaTrader 5ストラテジーテスター(第3回):MetaTrader 5風の取引操作 — 処理と管理
シミュレーター内で注文の開始、終了、変更などの取引操作を処理するための、Python-MetaTrader5と同様の方法を紹介します。シミュレーションがMT5と同様の動作となるように、取引リクエストに対して厳密な検証処理が実装されており、銘柄取引パラメータや一般的なブローカーの制限事項が考慮されています。
PPPとIMFデータを用いた公正な為替レートの算出
Pythonを用いた購買力平価(PPP)ベースの為替レート分析システムの構築。IMFデータを用いて、5つの方法によって理論為替レートを計算するアルゴリズムを開発しました。本記事は、ファンダメンタルな通貨分析、経済データの処理、トレードシステムとの統合に関する実践的なガイドです。完全なコードはオープンソースとして公開されています。
Pythonを用いたIMFデータの取得
PythonでIMFデータを取得する:マクロ経済に基づく通貨戦略に活用するためのIMF(国際通貨基金)データマイニング。マクロ経済は、一般のトレーダーおよびアルゴリズムトレーダーにどのように役立つのでしょうか。
価格変動の角度分析:金融市場予測のためのハイブリッドモデル
金融市場の角度分析とは何でしょうか。プライスアクションにおける「角度」をどのように活用すれば、機械学習によって67%の予測精度を達成できるのでしょうか。さらに、角度特徴量を用いた回帰モデルと分類モデルをどのように統合し、実用可能なアルゴリズムへと落とし込むことができるのでしょうか。ギャンはこれとどのような関係があるのでしょうか。価格変動の角度が機械学習において有効な指標である理由は何でしょうか。
取引における資金管理とデータベースを用いた個人向け会計プログラム
トレーダーはどのように資金を管理すればよいのでしょうか。また、トレーダーや投資家はどのようにして支出、収入、資産、負債を把握すればよいのでしょうか。本記事では、単なる会計ソフトではなく、金融市場という荒波の中で意思決定を支える実践的なツールを紹介します。
知っておくべきMQL5ウィザードのテクニック(第79回):教師あり学習でのゲーターオシレーターとA/Dオシレーターの使用
前回の記事では、ゲーターオシレーターとA/Dオシレーターの組み合わせについて、通常の設定における生のシグナルを用いた場合の挙動を確認しました。この2つのインジケーターは、それぞれトレンド指標と出来高指標として相補的に機能します。今回の記事では、その続編として、教師あり学習を活用することで、前回レビューした特徴量パターンの一部をどのように強化できるかを検証します。この教師あり学習アプローチでは、CNN(畳み込みニューラルネットワーク)を用い、カーネル回帰およびドット積類似度を活用して、カーネルやチャネルのサイズを決定しています。今回もこれまでと同様に、MQL5ウィザードでエキスパートアドバイザー(EA)を組み立てられるようにしたカスタムシグナルクラスファイル内で実装しています。
MQL5入門(第33回):MQL5のAPIとWebRequest関数の習得(VII)
本記事では、MQL5を使用してGoogle Generative AI APIをMetaTrader 5に統合する方法を解説します。APIリクエストの構築、サーバー応答の処理、AI生成コンテンツの抽出、レート制限の管理、そして結果をテキストファイルに保存して簡単に参照できるようにする方法を学びます。
Codexパイプライン:PythonからMQL5へ ― FXI ETFを対象とした複数四半期の指標分析
MetaTraderを本来のFX取引という「コンフォートゾーン」の外でどのように活用できるかという検討を継続し、FXI ETFという別の取引可能資産に着目します。前回の記事では、指標の選定にとどまらず、指標間のパターンの組み合わせにまで踏み込み、やや過度に複雑化した側面がありました。本記事では一歩引いて、指標選定そのものに焦点を当てます。最終的には、十分な価格履歴データが存在する場合に、さまざまな資産に対して適切な指標を推奨できるパイプラインの構築を目指します。
MQLを使用したFirebaseでのCRUD操作
この記事では、FirebaseのCRUD(作成、読み取り、更新、削除)操作を習得するためのステップバイステップガイドを提供します。Realtime DatabaseおよびFirestoreを中心に、Firebase SDKのメソッドを活用して、Webやモバイルアプリで効率的にデータを管理する方法を解説します。新しいレコードの追加から、データの検索、修正、削除まで、実践的なコード例とベストプラクティスを紹介し、リアルタイムでのデータ構造と操作方法を理解することで、開発者がFirebaseの柔軟なNoSQLアーキテクチャを活かして、動的でスケーラブルなアプリケーションを構築できるようになります。
イルカエコーロケーションアルゴリズム(DEA)
本記事ではDEAアルゴリズムについて詳しく解説します。DEAは、イルカがエコーロケーション(反響定位)を用いて獲物を探す独特の能力に着想を得たメタヒューリスティック最適化手法です。数学的基礎からMQL5での実装、さらには解析や従来アルゴリズムとの比較まで、この比較的新しい手法がなぜ最適化問題に取り組む研究者の手法群に加える価値がある理由を詳しく見ていきます。
MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード
本記事では、MQL5言語を用いた自動売買戦略における建値(損益分岐点)機能の実装について解説します。まず、建値モードとは何か、その仕組みや実装パターンについて簡単に説明します。 その後、前回のリスク管理に関する記事で作成したOrder Blocksエキスパートアドバイザーに、この機能を統合していきます。さらに、その有効性を検証するため、同一条件下で2種類のバックテストを実施します。1つはブレイクイーブン機能を有効化した場合、もう1つは無効化した場合です。
サンゴ礁最適化(CRO)
サンゴ礁の形成および発展過程に着想を得たメタヒューリスティクス手法であるサンゴ礁最適化(CRO, Coral Reef Optimization)アルゴリズムを包括的に解析します。このアルゴリズムは、放卵放精、体内発生、幼生定着、無性生殖、ならびに限られた礁空間を巡る競争といった、サンゴの進化過程における主要な生物学的現象をモデル化したものです。特に、本記事では改良版アルゴリズムに重点を置いて説明します。
MQL5入門(第31回):MQL5のAPIとWebRequest関数の習得(V)
WebRequestと外部API呼び出しの使い方を学び、最新のローソク足データを取得し、各値を使用可能な型へ変換し、テーブル形式で整理して保存する方法を解説します。このステップは、取得したデータをローソク足形式で可視化するインジケーターを構築するための基礎となります。
MQL5入門(第34回):MQL5のAPIとWebRequest関数の習得(VIII)
MetaTrader 5でインタラクティブなコントロールパネルを作成する方法を学びます。入力フィールド、アクションボタン、テキストを表示するためのラベルを追加する基本について説明します。プロジェクトベースのアプローチを用いて、ユーザーがメッセージを入力し、最終的にAPIからのサーバー応答を表示するパネルを設定する方法を学びます。
MQL5入門(第35回):MQL5のAPIとWebRequest関数の習得(IX)
MetaTrader 5でユーザー操作を検出する方法、AI APIへリクエストを送信する方法、応答を抽出する方法を学び、パネルにスクロールテキストを実装します。
市場シミュレーション(第18回):SQL入門(I)
使用するSQLプログラムがMySQLであっても、SQL Server、SQLite、OpenSQL、あるいはその他のものであっても問題ではありません。これらはすべて共通点を持っており、その共通要素がSQL言語です。たとえMySQL Workbenchを使用しない場合でも、MetaEditorやMQL5を通じてデータベースを直接操作し、MetaTrader 5上で操作することが可能です。ただしそのためにはSQLの知識が必要になります。ここでは、その基本を学習します。
MQL5入門(第36回):MQL5のAPIとWebRequest関数の習得(X)
MQL5におけるHMAC-SHA256およびAPI署名の基本概念を紹介し、メッセージと秘密鍵を組み合わせることでリクエストを安全に認証する方法を説明します。これは、機密データを公開することなくAPI呼び出しに署名するための基盤となります。
市場シミュレーション(第19回):SQL入門(II)
最初のSQLに関する記事でも説明したように、SQLにすでに組み込まれていることを実現するために、わざわざ時間をかけて手続きをプログラミングする意味はありません。しかし、基礎を理解していなければ、SQLを使って何かをおこなうことも、このツールが提供する機能を十分に活用することもできません。そこで今回の記事では、データベースにおける基本的な作業をどのようにおこなうかを見ていきます。
Neuro-Structural Trading Engine (NSTE)(第I回):プロップファーム対応マルチ口座システムの構築方法
プロップファームの制約を遵守しながら、MetaTrader 5上で暗号資産CFDを運用するマルチ口座アルゴリズム取引システムアーキテクチャを提示します。システムは、「固定ドルリスク」「1口座につき1スクリプト」「設定の一元管理」という3つの基本原則を定義した上で、PythonとMQL5の役割分担、60秒ごとの処理ループ、JSONベースのシグナル連携について詳しく解説します。さらに、ロットサイズの実践的な計算方法、安全性を確保するためのチェック機構、ポジション管理パターンについても紹介し、信頼性の高い運用を実現するための構成を示します。
MQL5における純粋なRSA暗号化の実装
MQL5には組み込みの非対称暗号が存在しないため、HTTPのような安全でないチャネルでのデータ交換は困難です。本記事では、PKCS#1 v1.5パディングを用いた純粋なMQL5実装のRSAを紹介し、外部ライブラリを使用せずにAESのセッションキーや小規模なデータブロックを安全に送信できる方法を解説します。このアプローチにより、標準HTTP上でも、アプリケーションレベルでHTTPSに近い安全性を実現できるだけでなく、MQL5アプリケーションにおける安全な通信の重要なギャップを埋めることができます。
バックトラッキング探索アルゴリズム(BSA)
もし最適化アルゴリズムが過去の探索経路を記憶し、その記憶を使ってより良い解を見つけられるとしたらどうでしょうか。BSAはまさにそれを実現し、探索と実績のある探索方向の再利用をバランスよく両立させます。本記事では、そのアルゴリズムの秘密を解き明かします。シンプルなアイデア、最小限のパラメータ、そして安定した結果が特徴です。
市場シミュレーション(第17回):ソケット(XI)
MetaTrader 5上で実行されるコードの実装自体は、それほど難しいものではありません。しかし、いくつか考慮すべき重要な点があります。これはシステムを正しく動作させるために必要です。ここで重要な点を1つ覚えておいてください。実際には1つのプログラムだけが動作するわけではありません。現実には、3つのプログラムを同時に実行する必要があります。それぞれのプログラムが相互に連携し、通信できるように設計して構造化することが重要です。また、それぞれが他のプログラムの処理内容を認識できる必要があります。
決定論的振動型探索(DOS)
決定論的振動型探索(DOS, Deterministic Oscillatory Search)アルゴリズムは、乱数を使用せずに勾配法と群知能アルゴリズムの利点を組み合わせた、革新的な大域最適化手法です。適応度の振動と勾配状態メカニズムによって、DOSは複雑な探索空間を決定論的に探索することができます。
市場シミュレーション(第12回):ソケット(VI)
本記事では、Pythonコードを他のプログラム内で使用する際に発生する特定の問題や課題をどのように解決するかについて説明します。特に、ExcelとMetaTrader 5を併用する際に生じる一般的な問題を取り上げ、その具体例を示します。なお、この連携の実現にはPythonを使用します。ただし、この実装には小さな欠点があります。この問題は常に発生するわけではなく、特定の状況下でのみ起こります。そして、実際に発生した場合には、その原因を理解することが重要です。本日の記事では、この問題の解決方法について解説を開始します。
市場シミュレーション(第16回):ソケット(X)
このチャレンジも終盤に差し掛かっていますが、その前に、今回の内容と前回の記事の2つの記事をしっかり理解しておく必要があります。そうすることで、次の記事をより深く理解できるようになります。次の記事では、MQL5プログラミングに関連する部分のみを扱う予定です。また、できるだけ分かりやすく説明するように努めます。しかし、これら2つの記事の内容を理解していない場合、次の記事を理解することは難しくなるでしょう。内容が段階的に積み重なっていく構造になっているからです。達成すべき目標に近づくほど、必要となる理解や実装すべき要素は増えていきます。
Python-MetaTrader 5ストラテジーテスター(第1回):取引シミュレーター
MetaTrader5のPythonモジュールは、Pythonを使ってMetaTrader5アプリで取引を発注するための便利な手段を提供しています。しかし、このモジュールには大きな問題があります。それは、MetaTrader5アプリに存在するストラテジーテスター機能が備わっていないことです。本連載では、Python環境で取引戦略をバックテストするためのフレームワークを構築していきます。
イーグル戦略最適化(ES)
イーグル戦略最適化(ES)は、鷲の狩猟行動に着想を得た最適化アルゴリズムです。マンテーニャ法によるレヴィ飛行を用いた大域探索と、ホタルアルゴリズムによる集中的な局所探索(local exploitation)を交互に実行することで、探索と活用のバランスを実現します。本アルゴリズムは、数学的根拠に基づく探索戦略と、2つの自然現象を統合したバイオインスパイアードなアプローチを兼ね備えています。
生物地理学に基づく最適化(BBO)
生物地理学に基づく最適化(BBO, Biogeography-Based Optimization)は、群島内の島々の間で発生する種の移住という自然現象に着想を得た、洗練された大域的最適化手法です。このアルゴリズムは、シンプルでありながら強力な考え方に基づいています。すなわち、良質な解はその特徴を他の解へ伝播し、低品質な解は新たな特徴を積極的に取り込むことで、最良の解から最悪の解へと情報が自然に流れるようになります。さらに、適応的な突然変異オペレーターによって探索と活用の優れたバランスが実現されます。BBOはさまざまな最適化問題に対して高い効率を示しています。
機械学習を用いたフラクタル市場構造入門
本記事では、金融時系列を自己相似的なフラクタル構造という観点から考察します。市場の価格変動が自己相似フラクタルとして捉えられる可能性を支持する類似性が多数存在することから、このような構造の予測可能性の地平線について考えることができます。
共分散行列適応進化戦略(CMA-ES)
目的関数の幾何構造を捉えるように学習する、最も興味深い非勾配最適化アルゴリズムの一つを扱います。CMA-ESの古典的実装に対してわずかな修正を加えたもの、すなわち正規分布を冪分布に置き換える手法に焦点を当てます。アルゴリズムの背後にある数理を徹底的に解説し、さらに実装面についても検討します。また、CMA-ESがどのような問題で無類の性能を発揮し、どのような状況では使用を避けるべきかについても確認します。
市場シミュレーション(第15回):ソケット(IX)
本記事では、これまで実演してきた内容、すなわち「ExcelユーザーがMetaTrader 5上で操作できるようにする方法」の一例について解説します。ここで扱うのは、注文送信やポジションの新規建て・決済をExcel側から直接実行する方法ではなく、ExcelからMetaTrader 5上のEAにそれらの操作を指示する方法です。ユーザーはExcelを用いて特定銘柄のファンダメンタル分析をおこない、その結果をもとに、Excelだけを使ってMetaTrader 5上で稼働しているエキスパートアドバイザー(EA)に対し、特定ポジションの新規建てまたは決済を指示できるようにします。
MQL5入門(第37回):MQL5のAPIとWebRequest関数の習得(XI)
MQL5を使用してBinance APIに認証付きリクエストを送信し、アカウント内の全資産の残高情報を取得する方法を解説します。APIキー、サーバー時刻、署名を利用して安全にアカウント情報へアクセスし、そのレスポンスをファイルへ保存して後で活用する方法を学びます。
OpenCLを用いたMQL5におけるCPUからGPUへの実践的移行パス
MQL5でCPUからGPUへの移行方法を実用的に構築する方法を解説します。本記事では、コンテキストの初期化、バッファ構造の設計、大規模バッチ処理、カーネルの起動、データ転送の最小化に焦点を当てます。また、典型的なエラーとその解決方法についても取り上げます。ローソク足パターンの例を通じて、このアプローチの実用的な効果も示します。
PythonによるCFTCデータマイニングとAIモデルの構築
CFTCデータのマイニングを試み、Pythonを通じてCOTおよびTFFレポートをダウンロードし、これらをMetaTrader 5の相場データおよびAIモデルと統合して、予測を得てみましょう。FX市場におけるCOTレポートとは何でしょうか。また、COTおよびTFFレポートをどのように予測に活用するのでしょうか。
ルーチン作業なしのアルゴリズム取引:MetaTrader 5におけるSQLiteを用いた高速取引分析
本記事では、MQL5におけるSQLiteを用いた取引ジャーナル管理のための「最小実用構成」を紹介します。内容には、取引、シグナル、イベント用テーブル構造、インデックス設計、プリペアドステートメントによる高速かつ安全なデータ記録、さらに標準的な分析用SQLクエリが含まれます。また、MetaTrader 5の統計ダッシュボードとの統合方法や、MetaEditor上でデータベースを操作する手法についても解説します。このアプローチにより、取引ジャーナルの自動化、計算処理の高速化、そしてEAコードを複雑化させることなく高度な分析を実現できます。
グラフ理論:取引における幅優先探索(BFS)/ja/応用
幅優先探索(BFS)はレベル順トラバーサルを用い、価格スイングを時間/ja/経過とともに進化する有向グラフとして市場構造をモデル化します。過去/ja/ローソク足またはセッションを階層ごとに分析することで、BFSはより直近/ja/価格挙動を優先しつつ、より長期/ja/市場文脈も反映します。
MQL5入門(第38回):MQL5のAPIとWebRequest関数の習得(XII)
MetaTrader 5とBinanceの間に実用的な橋渡しを構築します。WebRequestを使用して30分足のデータ(kline)を取得し、JSONからOHLCおよび時刻データを抽出したうえで、確定済みのローソク足のみを使用して強気の包み足パターンを確認します。その後、クエリ文字列を組み立て、HMAC-SHA256署名を計算し、X-MBX-APIKEYを追加して認証済み注文を送信します。これにより、データ取得から注文執行までを網羅した、分かりやすいエンドツーエンドのEAワークフローを実現できます。
KnitPkgを用いたMQL5向けパッケージベース開発手法
MetaTrader向けにMQLを用いた高い信頼性と生産性を備えた開発を実現するため、MQL5/MQL4向けのプロジェクトマネージャであるKnitPkgを利用した、再利用可能な「パッケージ」を中心とする開発手法を紹介します。パッケージは、他のパッケージを構成する土台として利用できるだけでなく、EAやインジケータなど、MetaTraderプラットフォーム上で直接動作する最終成果物の基盤としても活用できます。
MetaTrader 5機械学習の設計図(第7回):散発的な実験から再現可能な結果へ
本連載の最新回では、個々の機械学習手法の解説から一歩進み、多くのクオンツトレーダーを悩ませている「リサーチの混沌(Research Chaos)」という問題に焦点を当てます。本記事では、場当たり的なノートブックでの実験から脱却し、再現性・追跡可能性・効率性を備えた、本番運用レベルのパイプラインへ移行する方法について説明します。
MQL5コミュニティOAuthを利用した外部アプリケーション連携
OAuth 2.0の認可コードフローを使用してAndroidアプリに[Sign in with MQL5]を追加する方法を学びます。このガイドでは、アプリ登録、エンドポイント、リダイレクトURI、カスタムタブ、ディープリンク処理、およびHTTPS経由で認可コードをアクセストークンに交換するPHPバックエンドについて説明します。実際のMQL5ユーザーを認証し、ランクやレピュテーションなどのプロファイルデータにアクセスできるようになります。