因果推論とアルゴリズム取引における回帰モデルの活用
アルゴリズム取引における回帰モデルの活用可能性について考察します。回帰モデルは、二値分類とは異なり、予測される価格変動を定量的に表現できるため、より柔軟な取引戦略を構築できます。
市場取引アルゴリズム(EMA)
本稿では、株式市場のトレーダーの行動に着想を得た市場取引アルゴリズム(EMA, Exchange Market Algorithm)について詳しく分析します。このアルゴリズムは株式取引をシミュレーションするもので、市場参加者はそれぞれ異なる成功度を持ち、利益を最大化するためにさまざまな戦略を使用します。
多通貨エキスパートアドバイザーの開発(第28回):決済マネージャの追加
複数の戦略を並列で実行する場合、定期的にすべての未決済ポジションを決済し、戦略を最初から再開したい場合があります。しかし、現行のコードでは、この動作は手動でしか実現できません。そこで、この処理を自動化してみましょう。
市場シミュレーション:MQL5におけるSQL入門(IV)
多くの人はSQLを過小評価しがちで、あるいはSQLが実際にどのように動作するのかを十分に理解していないため、まったく使わないことさえあります。SQLデータベースに対してクエリを実行する場合、常に汎用的な答えを求めているわけではありません。場合によっては、非常に具体的で実用的な答えが必要になります。もしデータベースが適切な構造とデータモデルによって設計されていれば、ほぼあらゆる種類の情報を統合することが可能です。
MQL5におけるタイムギャップ分析(第2回):時間経過に伴う流動性分布のヒートマップ作成
MetaTrader 5で、時間に対する価格分布を視覚化するヒートマップインジケータを作成する方法についての詳細なガイドです。時間密度分析の数学的な基礎に基づき、価格帯ごとの滞在時間をヒートマップとして可視化するMetaTrader 5向けインジケータの作成方法を詳しく解説します。このインジケータでは、各価格レベルの滞在時間を赤(滞在時間が最小)から青(滞在時間が最大)までの色で表現します。
時間帯別・曜日別・月の日付別の季節性インジケータ
金融市場における繰り返し発生する価格パターンを分析するためのツールの開発方法について説明します。分析対象となるのは、月の日付(1日~31日)、曜日(月曜日~日曜日)、または1日の時間帯(0時~23時)です。このインジケータは過去のデータを分析し、それぞれの期間における平均リターンを計算します。そして、その結果をヒストグラムと予測表示によって可視化します。また、季節性タイプ、分析するバー数、パーセント表示または絶対値表示、チャートカラーなど、ユーザーが変更可能なパラメータも備えています。
MQL5取引ツール(第24回):3Dカーブ、パンモード、ViewCubeナビゲーションによる奥行き感の向上
MQL5の3D二項分布グラフ表示ツールを拡張し、確率質量関数(PMF)の奥行き感を向上させるセグメント化された3Dカーブを追加するとともに、注視点を移動できるパンモードと、素早く視点を切り替えられるインタラクティブなViewCubeを実装します。さらに、ViewCube内の面・辺・頂点に対応するクリック可能なサブゾーンを追加し、標準ビューへのカメラ遷移をアニメーションでおこなえるようにします。これらの機能を、2D/3D表示の切り替え、リアルタイム更新、各種カスタマイズ設定と組み合わせることで、トレードにおける確率分布分析を、より直感的で没入感のある分析環境を実現します。
MQL5とデータ処理パッケージの統合(第8回):グラフニューラルネットワークによる流動性ゾーンの検出
市場構造をMQL5上でグラフとして表現し、スイングハイとスイングローを特徴量を持つノードとして扱い、それらをエッジで接続する方法を紹介します。また、潜在的な流動性ゾーンをスコアリングするためのGNN(Graph Neural Network:グラフニューラルネットワーク)の学習、モデルのONNX形式へのエクスポート、さらにエキスパートアドバイザー(EA)内でリアルタイム推論を実行する方法についても解説します。読者は、データパイプラインの構築、モデルの統合、チャート上への流動性ゾーンの可視化、そしてそのシグナルをルールベースの売買執行へ活用する方法を学びます。
初心者からエキスパートへ:MQL5におけるマルチタイムフレーム構造確認による流動性戦略の強化
上位足の流動性構造と下位足の反転パターンが一致すると、次の価格変動の方向性と発生確率の両方に大きな影響を与えます。上位足で形成された構造的な流動性ゾーンと、下位足での明確な反転確認シグナルを組み合わせることで、エントリータイミングの精度とトレード全体の質を向上させることができます。本記事では、上位足の構造的な確認を活用して流動性ベースのトレード戦略を強化する方法と、そのアプローチをMQL5で効果的に実装する方法について解説します。
MetaTrader 5における低頻度定量戦略(第1回):OLAP対応データストアの構築
Parquetストレージ、Hive形式のパーティション、そしてDuckDBを基盤とした、定量分析のための実用的なデータパイプラインについて説明します。選択したSQLiteテーブルをParquetへ移行する方法、市場データをデータソース、銘柄、時間足、日付によって構造化する方法、そしてSQLウィンドウ関数を使用してそれをクエリする方法について詳しく説明します。ゴールデンクロスの例では、銘柄横断的なフォワードリターン評価を示します。付属するPythonスクリプトでは、データのダウンロード、変換、実行を処理します。
バックテスト過剰適合を防ぐ統合検証パイプライン ― V-in-V・CPCV・CSCVによる堅牢な戦略検証
金融時系列データに対して標準的なウォークフォワード法やk分割交差検証が、なぜ実際以上に良好な結果を示してしまうのかを解説します。そのうえで、この問題を解決するための実践的な手法を紹介します。V-in-V (Validation-within-Validation)は、データを厳密に分割し、アンカー型ウォークフォワードによる検証を実施します。CPCV (Combinatorially Purged Cross-Validation)は、情報漏洩を防ぐために-パージとエンバーゴを適用し、複数の検証パスの結果を統合して評価します。さらにCSCV (Combinatorially Symmetric Cross-Validation)は、バックテスト過剰適合確率(PBO, Probability of Backtest Overfitting)を定量的に測定します。これらを組み合わせることで、異なる市場レジームに対する戦略の頑健性と、戦略選択の信頼性を整合的な評価フレームワークで評価できるようになります。
MQL5における切断ニュートン共役勾配(TNC)アルゴリズムの実装
MQL5でボックス制約付き切断ニュートン共役勾配法(TNC, Truncated Newton Conjugate-Gradient)最適化アルゴリズムを実装し、その中核となる構成要素であるスケーリング、境界への射影、ラインサーチ、および有限差分によるヘッセ行列と任意のベクトルとの積の計算について詳しく説明します。また、解析的微分と数値微分の両方に対応した目的関数ラッパーを提供し、ローゼンブロックベンチマークを用いてソルバーを検証します。さらに、ロジスティック回帰の実装例を通じて、TNCをL-BFGSの代替ソルバーとして利用する方法を紹介します。
MQL5取引ツール(第23回):カメラ制御対応DirectX 3Dグラフによる二項分布分析
MQL5における二項分布グラフ描画ツールをさらに発展させ、DirectXを統合することで3D可視化を実現します。これにより、カメラ制御による回転、ズーム、自動フィット機能を備えた切り替え可能な2D/3Dモードが利用可能になります。3Dヒストグラムバー、グラウンドプレーン、軸を理論的な確率質量関数(PMF)曲線とともに描画しながら、統計パネル、凡例、カスタマイズ可能なテーマ、グラデーション、ラベルなどの2D要素も維持します。
MQL5取引ツール(第22回):二項分布のヒストグラムと確率質量関数(PMF)の描画
シミュレーション結果のヒストグラムと理論的な確率質量関数(PMF)を組み合わせた、二項分布を可視化するインタラクティブなMQL5プロットを開発します。本ツールでは、平均、標準偏差、歪度、尖度、パーセンタイル、信頼区間を実装し、さらに設定可能なテーマやラベル表示にも対応しています。また、ドラッグ操作、サイズ変更、リアルタイムでのパラメータ変更をサポートします。このツールを使用することで、トレード戦略の検証時に、期待される勝ち回数、起こり得るドローダウンの範囲、信頼区間を評価できます。
共和分株式による統計的裁定取引(最終回):特化型データベースを用いたデータ分析
統計的裁定取引のデータ処理において、SQLite (OLTP)とDuckDB (OLAP)を組み合わせて活用する方法を紹介します。DuckDBのカラム指向エンジン、ASOF JOIN、配列関数を利用することで、気配値と約定の時点対応付けやRWEC (Rolling Windows Eigenvector Comparison)などの中核処理を高速化できます。実際の測定では、入力データが大きくなるにつれて、SQLiteと比較して2倍から23倍の高速化が確認されました。これにより、クエリはよりシンプルになり、分析処理も高速化される一方で、実際の取引執行は引き続きSQLiteに任せることができます。
MQL5取引ツール(第21回):回帰グラフにサイバーパンクテーマを追加する
MQL5の回帰グラフ描画ツールを拡張し、ネオングロー、アニメーション、ホログラフィックエフェクトを備えたサイバーパンクテーマを追加することで、より没入感のある可視化を実現します。テーマの切り替え機能、星が瞬く動的な背景、発光する枠線、ネオンカラーのポイントやラインを実装するとともに、従来の標準テーマとの互換性も維持します。このデュアルテーマシステムにより、リアルタイム更新やインタラクティブな操作に対応しながら、未来的なデザインでペア分析をより魅力的に行えるようになります。
MQL5入門(第42回):MQL5におけるファイル処理入門(IV)
CSV形式の取引履歴を読み込み、Profit($)の値と総取引数を抽出し、累積残高推移を計算するMQL5インジケータの作成方法を紹介します。算出した累積残高曲線は、インジケータ専用のサブウィンドウにプロットし、Y軸は値の範囲に応じて自動的にスケーリングされます。また、表示位置を分かりやすくするために、水平軸と垂直軸も描画します。インジケータはタイマーによって定期的に更新され、新しい取引が追加された場合にのみ再描画します。さらに、オプションとして各取引の利益または損失を数値ラベルとして表示できるため、パフォーマンスやドローダウンをチャート上で直接確認・分析できます。
MQL5でカスタムインジケータを作成する(第8回):出来高統合によるより深いマーケットプロファイル分析
MQL5のハイブリッドTime Price Opportunity (TPO)マーケットプロファイル指標を強化し、出来高データを統合することで、出来高ベースのポイントオブコントロール(PoC)、バリューエリア(VA)、出来高加重平均価格(VWAP)を計算できるようにします。また、カスタマイズ可能なハイライト機能も追加します。このシステムでは、イニシャルバランス(IB)検出、重要レベルの延長ライン、分割プロファイル、さらに分析精度を向上させるための四角形や円形などの代替TPO文字を導入し、複数の時間足に対応した高度な視覚分析を実現します。
MQL5取引ツール(第20回):統計的相関分析と回帰分析を用いたCanvasグラフ作成
MQL5を用いて、2つの銘柄間の統計的相関および線形回帰分析をおこなう、Canvasベースのグラフ描画ツールを作成します。本ツールには、ドラッグ操作やリサイズ機能を備えたインタラクティブなインターフェースを実装し、回帰計算にはALGLIBを活用します。また、動的な目盛りラベル、データポイント、傾き・切片・相関係数・決定係数を表示する統計パネルも組み込みます。このインタラクティブな可視化ツールにより、ペアトレード分析に役立つ洞察を得ることができ、テーマや枠線のカスタマイズ、新しいバーの生成に応じたリアルタイム更新にも対応します。
MQL5でカスタムインジケータを作成する(第7回):セッション分析のためのハイブリッドTime Price Opportunity (TPO)マーケットプロファイル
ハイブリッドTime Price Opportunity (TPO)マーケットプロファイル用のカスタムインジケータをMQL5で開発します。このインジケータは、タイムゾーン調整に対応し、イントラデイ、日足、週足、月足、固定期間など、複数のセッション時間足をサポートします。このインジケータでは、価格をグリッド化し、各セッションの高値、安値、始値、終値などのデータを追跡します。また、TPOカウントに基づいて、ポイントオブコントロール(PoC)やバリューエリア(VA)などの主要要素を計算します。さらに、TPO文字、単独プリント、VA、PoC、終値マーカーの色をカスタマイズ可能にし、チャート上にプロファイルを視覚的に描画することで、詳細なセッション分析を可能にします。
MQL5入門(第41回)MQL5におけるファイル処理入門(III)
MQL5でCSVファイルを読み込み、取引データを動的配列に整理する方法を学びます。ファイル内の要素数を数える方法、すべてのデータを1つの配列に格納する方法、さらに各列を専用の配列へ分割する方法をステップごとに解説します。これにより、高度な分析やトレードパフォーマンスの可視化へ進むための基礎を構築できます。
MQL5入門(第40回):MQL5におけるファイル処理入門(II)
MQL5で、指定した期間の口座履歴を読み取り、構造化されたレコードをファイルに書き込むことで、CSV形式の取引ジャーナルを作成します。約定数の取得、チケット番号の取得、銘柄や注文タイプの判別、そしてエントリー(ロット、時間、価格、SL/TP)および決済(時間、価格、利益、結果)データの取得方法を、動的配列を使用して解説します。その結果、分析やレポート作成に適した、整理された永続的なログを作成できます。
MQL5における二変量コピュラ(第3回):混合コピュラモデルの実装とチューニング
MQL5上でネイティブ実装された混合コピュラを用いて、既存のコピュラツールキットを拡張します。Clayton–Frank–GumbelおよびClayton–Student-t–Gumbelの混合モデルを構築し、EMアルゴリズムによってパラメータ推定をおこないます。また、SCAD (Smoothly Clipped Absolute Deviation)とクロスバリデーションを組み合わせることで、モデルのスパース性制御を実現します。提供するスクリプトでは、ハイパーパラメータの調整、情報量基準を用いた混合モデルの比較、学習済みモデルの保存までを実行できます。これらのコンポーネントを利用することで、実務者は非対称なテール依存性を捉え、選択したモデルをインジケータやエキスパートアドバイザー(EA)へ組み込めるようになります。
MQL5取引ツール(第16回):改良版スーパーサンプリング・アンチエイリアシング(SSAA)と高解像度レンダリング
MQL5キャンバスダッシュボードにスーパーサンプリングによるアンチエイリアシングと高解像度レンダリングを追加し、最終的な表示サイズへダウンサンプリングする手法を実装します。また、角丸矩形の塗りつぶしと枠線、角丸三角形の矢印、さらに統計パネルおよびテキストパネル向けのテーマ対応カスタムスクロールバーを実装します。これらのツールにより、MetaTrader 5上で、より滑らかで視認性の高いUIコンポーネントを構築できるようになります。
MQL5とデータ処理パッケージの統合(第7回):銘柄間連携のためのマルチエージェント環境の構築
マルチエージェント取引のための完全なPython–MQL5統合について解説します。内容には、MT5データ取得、インジケーター計算、各エージェントによる意思決定、そして単一のアクションを出力する重み付きコンセンサス処理が含まれます。シグナルはJSON形式で保存され、Flaskによって提供され、MQL5のエキスパートアドバイザー(EA)によって取得されて実行されます。実行時には、ポジションサイズを計算し、ATRに基づくSL/TPも設定されます。Flaskのルートは、安全なライフサイクル制御とステータス監視のための機能を提供します。
MQL5入門(第39回):MQL5におけるファイル処理入門(I)
本記事では、MQL5におけるファイル処理を、実践的なプロジェクトベースのワークフローを用いて紹介します。FileSelectDialogを使用してCSVファイルを選択または作成し、FileOpenでそれを開き、口座名、残高、ログイン、期間、最終更新日時などの構造化されたヘッダーを書き込みます。その結果として、再利用可能な取引ジャーナルと、MetaTrader 5でファイルを安全に扱うための基盤が得られます。
MQL5取引ツールのアクセシビリティ課題を克服する(第1回):MQL5インジケータに状況対応型音声アラートを追加する方法
本記事では、標準的なターミナルアラートの枠を超え、MQL5のリソース管理機能を活用して状況に応じた音声フィードバックを実現する、アクセシビリティを重視した拡張手法を紹介します。一般的な通知音ではなく、「何が起こったのか」と「なぜ起こったのか」を音声で伝えることで、トレーダーは視覚情報だけに頼ることなく市場イベントを把握できます。このアプローチは、特に視覚障害のあるトレーダーにとって有用ですが、ハンズフリーで操作したい多忙なユーザーやマルチタスク環境で取引を行うユーザーにもメリットがあります。
Python-MetaTrader 5ストラテジーテスター(第5回):複数銘柄および複数時間足ストラテジーテスター
銘柄および時間足を横断してスケーラブルに動作するMetaTrader 5互換のバックテストワークフローを紹介します。本システムでは、HistoryManagerを用いてデータ取得を並列化し、すべての時間足からバーおよびティックデータを同期し、スレッドごとに銘柄分離されたOnTickハンドラを実行します。モデリングモードが速度と精度に与える影響、ターミナルデータに依存すべき場面、イベント駆動型更新によるI/O削減手法、そして複数通貨自動売買ロボットの構築方法について学びます。
バックトラッキング探索アルゴリズム(BSA)
もし最適化アルゴリズムが過去の探索経路を記憶し、その記憶を使ってより良い解を見つけられるとしたらどうでしょうか。BSAはまさにそれを実現し、探索と実績のある探索方向の再利用をバランスよく両立させます。本記事では、そのアルゴリズムの秘密を解き明かします。シンプルなアイデア、最小限のパラメータ、そして安定した結果が特徴です。
プライスアクション分析ツールキットの開発(第29回):Boom and Crash Interceptor EA
Boom & Crash Interceptor EAは、チャートを能動的なアラートシステムへと変貌させます。超高速の価格変動スキャン、ボラティリティ急増の検出、トレンド確認、そしてピボットゾーンフィルタを組み合わせることで、爆発的な値動きをいち早く捉えます。鮮明な緑色の「Boom」矢印と赤色の「Crash」矢印が売買判断をサポートし、市場の急騰・急落スパイクをこれまで以上に効果的に捉え、活用できるようになります。本記事では、その仕組みと、このツールがトレードにおける次の重要な優位性となり得る理由を詳しく解説します。
MQL5におけるタイムギャップ分析(第1回):基本インジケータの構築
タイムギャップ分析は、市場の反転が起こる可能性のあるポイントを特定するための手法です。本記事では、タイムギャップとは何か、その解釈方法、そして市場への大口資金の流入を検出するためにどのように活用できるかについて解説します。
イルカエコーロケーションアルゴリズム(DEA)
本記事ではDEAアルゴリズムについて詳しく解説します。DEAは、イルカがエコーロケーション(反響定位)を用いて獲物を探す独特の能力に着想を得たメタヒューリスティック最適化手法です。数学的基礎からMQL5での実装、さらには解析や従来アルゴリズムとの比較まで、この比較的新しい手法がなぜ最適化問題に取り組む研究者の手法群に加える価値がある理由を詳しく見ていきます。
金融時系列のテクニカル分析におけるグレーモデルの応用
本記事では、トレーダーの分析能力を拡張する有望なツールであるグレーモデルについて解説します。また、このモデルをテクニカル分析や取引戦略構築に応用するためのいくつかの方法についても検討します。
機械学習を用いたフラクタル市場構造入門
本記事では、金融時系列を自己相似的なフラクタル構造という観点から考察します。市場の価格変動が自己相似フラクタルとして捉えられる可能性を支持する類似性が多数存在することから、このような構造の予測可能性の地平線について考えることができます。
共分散行列適応進化戦略(CMA-ES)
目的関数の幾何構造を捉えるように学習する、最も興味深い非勾配最適化アルゴリズムの一つを扱います。CMA-ESの古典的実装に対してわずかな修正を加えたもの、すなわち正規分布を冪分布に置き換える手法に焦点を当てます。アルゴリズムの背後にある数理を徹底的に解説し、さらに実装面についても検討します。また、CMA-ESがどのような問題で無類の性能を発揮し、どのような状況では使用を避けるべきかについても確認します。
市場シミュレーション(第24回):SQL入門(VII)
前回の記事では、SQLに必要な導入を完了しました。SQLについて何を説明したいのかは、十分に明確にできたと思います。これは、市場のリプレイ/シミュレーションシステムの構築を見に来る人であれば誰でも、そこで何が起きているのかを少なくともある程度イメージできるようにするためのものでした。重要な点は、SQLが完全に処理できることをわざわざプログラミングする意味はないということです。
MetaTrader 5における季節性に基づくFXスプレッド取引の有効性評価
日足における季節性取引アプローチの有効性を検証します。対象は個別の金融商品およびスプレッドの両方であり、特に繰り返し現れる月次サイクルの特定と、それを現行年の取引へ応用する可能性に重点を置いています。
イーグル戦略最適化(ES)
イーグル戦略最適化(ES)は、鷲の狩猟行動に着想を得た最適化アルゴリズムです。マンテーニャ法によるレヴィ飛行を用いた大域探索と、ホタルアルゴリズムによる集中的な局所探索(local exploitation)を交互に実行することで、探索と活用のバランスを実現します。本アルゴリズムは、数学的根拠に基づく探索戦略と、2つの自然現象を統合したバイオインスパイアードなアプローチを兼ね備えています。
PPPとIMFデータを用いた公正な為替レートの算出
Pythonを用いた購買力平価(PPP)ベースの為替レート分析システムの構築。IMFデータを用いて、5つの方法によって理論為替レートを計算するアルゴリズムを開発しました。本記事は、ファンダメンタルな通貨分析、経済データの処理、トレードシステムとの統合に関する実践的なガイドです。完全なコードはオープンソースとして公開されています。
Pythonを用いたIMFデータの取得
PythonでIMFデータを取得する:マクロ経済に基づく通貨戦略に活用するためのIMF(国際通貨基金)データマイニング。マクロ経済は、一般のトレーダーおよびアルゴリズムトレーダーにどのように役立つのでしょうか。