MQL5で自己最適化エキスパートアドバイザーを構築する(第12回):行列分解を用いた線形分類器の構築
本記事では、アルゴリズム取引における行列分解の強力な役割、特にMQL5アプリケーション内での活用について探ります。回帰モデルからマルチターゲット分類器まで、実際の例を通して、これらの手法が組み込みのMQL5関数を使ってどれほど容易に統合できるかを示します。価格の方向性を予測する場合でも、インジケーターの挙動をモデル化する場合でも、このガイドは行列手法を用いたインテリジェントな取引システム構築の強固な基盤を提供します。
Market Memory Zonesインジケーターの開発:価格が戻りやすい領域
強い市場活動によって形成される価格ゾーンを識別するインジケーターを開発します。具体的には、インパルス的な値動き、構造のシフト、流動性イベントなどによって生成される領域を対象とします。これらのゾーンは、未約定の注文や急激な価格変動によって市場に「記憶」が残されたエリアを表します。チャート上にこれらの領域をマーキングすることで、将来的に価格が再訪し反応する可能性が統計的に高いポイントを可視化します。
初級から中級まで:構造体(II)
本記事では、MQL5のようなプログラミング言語において構造体が存在する理由を考察します。また、構造体を用いて関数や手続き間で値を受け渡すことが有効な場合と、必ずしもそうではない場合がある理由についても解説します。
初級から中級まで:イベント(I)
ここまでに示された内容を踏まえると、いよいよチャート上で直接銘柄を操作するようなアプリケーションの実装を始めることができそうです。しかし、その前に、初心者にはやや混乱しやすい概念について触れておく必要があります。つまり、チャート上で表示することを目的として開発されるMQL5のアプリケーションは、これまで見てきた方法と同じようには作られないということです。本記事では、この点を少しずつ理解していきます。
学習中にニューロンを活性化する関数:高速収束の鍵は?
本記事では、ニューラルネットワークの学習における異なる活性化関数と最適化アルゴリズムの相互作用に関する研究を紹介します。特に、古典的なADAMとその集団版であるADAMmを比較し、振動するACONやSnake関数を含む幅広い活性化関数での動作を検証します。最小構成のMLPアーキテクチャ(1-1-1)と単一の学習例を用いることで、活性化関数が最適化に与える影響を他の要因から切り離して観察します。本記事では、活性化関数の境界を利用したネットワーク重みの管理と重み反射機構を提案し、学習における飽和や停滞の問題を回避できることを示します。
MQL5で自己最適化エキスパートアドバイザーを構築する(第14回):フィードバックコントローラーにおけるデータ変換を調整パラメータとして捉える
前処理は非常に強力でありながら、しばしば軽視されがちな調整パラメータです。その存在は、より注目されるオプティマイザーや華やかなモデル構造の影に隠れています。しかし、前処理のわずかな改善は、利益やリスクに対して予想以上に大きな複利効果をもたらすことがあります。あまりにも多くの場合、このほとんど未踏の領域は単なるルーチン作業として扱われ、手段としてしか意識されません。しかし実際には、前処理は信号を直接増幅することもあれば、容易に破壊してしまうこともあるのです。
市場シミュレーション(第10回):ソケット(IV)
本記事では、MetaTrader 5を管理するためにExcelを活用する方法を、興味深い形で解説していきます。そのために、組み込みVBAを使わずに済むよう、Excelアドインを使用します。アドインが何を意味するのか分からない場合、本記事でExcelで直接Pythonをプログラミングする方法を学ぶことができます。
MQL5 MVCパラダイムにおけるテーブルのビューおよびコントローラーコンポーネント:サイズ変更可能な要素
本記事では、要素の端や角をマウスでドラッグしてコントロールをサイズ変更する機能を追加します。
初心者からエキスパートへ:市場の不規則性への対処
市場のルールは常に変化しており、かつて有効だった原則も、時間の経過とともにその効力を徐々に失っていきます。過去に機能していたものが、現在では一貫して機能しなくなることがあります。本記事では、このような市場の不確実性に対応するために、「確率レンジ(ゾーン)」という考え方に焦点を当てます。さらに、MQL5を用いて、特に値動きが不安定な相場環境でも機能するアルゴリズムの構築方法を解説していきます。ディスカッションにぜひご参加ください。
取引におけるニューラルネットワーク:シャープネス低減によるTransformerの効率向上(最終回)
SAMformerは、長期の時系列予測におけるTransformerモデルの主要な欠点、すなわち学習の複雑さや小規模データセットでの汎化性能の低さに対して解決策を提供します。その浅いアーキテクチャとシャープネス認識型最適化により、不適切な局所解に陥ることを防ぎます。本記事では、MQL5を用いたアプローチの実装を続け、実際的な価値を評価していきます。
MQL5における二変量コピュラ(第2回):MQL5でのアルキメデスコピュラの実装
連載第2回では、二変量アルキメデスコピュラの特性と、それらをMQL5で実装する方法について解説します。また、コピュラを活用したシンプルなペアトレード戦略の開発についても取り上げます。
MQL5 MVCパラダイムのテーブルのビューコンポーネント:基本グラフィック要素
本記事では、MQL5におけるMVC (Model-View-Controller)パラダイムでのテーブル実装の一環として、ビューコンポーネント向けの基本的なグラフィック要素を開発するプロセスを扱います。本記事はビューコンポーネントに関する最初の記事であり、MetaTrader 5クライアントターミナル向けテーブル作成に関する連載の第3回目です。
市場シミュレーション(第8回):ソケット(II)
ソケットを使って何か実用的なものを作ってみましょう。今回の記事では、ミニチャットの作成を始めます。一緒にどのようにおこなうかを見ていきましょう。とても面白い内容になるでしょう。ここで提供するコードは教育目的のみの使用を想定しています。商用目的や既製のアプリケーションでの使用には適していません。ソケット上で送信されるデータは安全に保護されず、内容が第三者からアクセス可能になる可能性があるためです。
初級から中級まで:構造体(V)
本記事では、構造体をどのようにオーバーロード(拡張)するかについて探っていきます。特に初めて目にする方にとっては、最初は理解するのがかなり難しいかもしれません。より複雑で高度なトピックに踏み込む前に、これらの概念をしっかりと理解しておくことが非常に重要です。
MQL標準ライブラリエクスプローラー(第2回):ライブラリコンポーネントの接続
本記事では、MQL5標準ライブラリを用いてエキスパートアドバイザー(EA)を効率的に構築するために、クラス構造をどのように読み解くべきかを整理します。標準ライブラリは高い拡張性と機能性を備えていますが、その全体像が見えにくく、体系的な指針がないまま複雑なツールキットを渡されたように感じることも少なくありません。そこで本記事では、実際の開発現場でクラスを確実に連携させるための、簡潔かつ再現性の高い統合手順を紹介します。
古典的な戦略を再構築する(第17回):テクニカル指標のモデリング
金融における古典的機械学習手法によって課されている「ガラスの天井」をいかに打ち破るかに焦点を当てます。統計モデルから引き出せる価値に対する最大の制約は、モデルそのもの、すなわちデータやアルゴリズムの複雑さではなく、それらを適用する方法論にあるようです。言い換えれば、真のボトルネックはモデルの内在的能力ではなく、私たちがそれをどのように運用しているかにあるのかもしれません。
初心者からエキスパートへ:MQL5を使ったアニメーションニュース見出し(X) - ニュース取引のための多銘柄チャート表示
本日は、チャートオブジェクトを用いたマルチチャート表示システムを開発します。本システムの目的は、MQL5アルゴリズムを活用して、重要なニュース発表時などの高ボラティリティ期間におけるトレーダーの反応時間を短縮し、ニュース取引を支援することです。複数の主要通貨ペアを、統合的に監視できる、オールインワンのニュース取引環境を提供します。News Headline EAの開発は継続的に進化しており、完全自動システムを使用するトレーダーはもちろん、アルゴリズム補助による手動取引をおこなうトレーダーにとっても実用的な機能が追加されています。さらに知識や洞察、実践的なアイデアを深めたい方は、ぜひ本ディスカッションに参加して詳細をご覧ください。
初級から中級まで:定義(II)
本記事では、前回に引き続き#defineディレクティブについて理解を深めていきますが、今回はその第2の使用形態、すなわちマクロの作成に焦点を当てます。このテーマはやや複雑であるため、これまで学習を進めてきたアプリケーションを題材として取り上げながら説明していきます。この記事も楽しんでいただけたら幸いです。
初級から中級まで:構造体(VI)
本記事では、共通の構造化されたコード基盤をどのように実装していくかについて解説します。目的は、プログラミングの作業負担を軽減し、使用しているプログラミング言語(ここではMQL5)そのものが持つ潜在能力を最大限に活用することです。
市場シミュレーション(第4回):C_Ordersクラスの作成(I)
本記事では、取引サーバーに注文を送信できるようにするためのC_Ordersクラスの作成を開始します。これは少しずつ進めていきますが、目的は、メッセージングシステムを通じてこれがどのようにおこなわれるのかを詳細に説明することです。
市場シミュレーション(第5回):C_Ordersクラスの作成(II)
本記事では、Chart Tradeとエキスパートアドバイザー(EA)が連携して、ユーザーが保有しているすべてのポジションを決済する要求をどのように処理するのかを解説します。一見すると単純な処理に思えるかもしれませんが、実際には注意すべきいくつかの複雑な点があります。
データベースは簡単(第1回):SQLiteを用いたMQL5向け軽量ORMフレームワーク
MQL5においてSQLiteデータをORMレイヤーを通して管理する方法を体系的に紹介します。エンティティモデリングとデータベースアクセスのためのコアクラス、フルエントなCRUD API、OnGet/OnSetによるリフレクション的フック、そしてモデルを簡単に定義するためのマクロなどを取り上げます。実用的なコード例として、テーブル作成、フィールドのバインド、データの挿入、更新、取得、削除を示します。これにより開発者は、SQLを繰り返し記述することなく、再利用可能で型安全なコンポーネントを利用できるようになります。
初級から中級まで:インジケーター(IV)
本記事では、ローソク足に色を付ける実践的なアプローチを簡単に作成および実装する方法を解説します。このコンセプトは、トレーダーから非常に高く評価されています。実装する際には、バーやローソク足が元の見た目を保持し、ローソク足ごとの視認性を妨げないよう注意する必要があります。
リスク管理(第5回):リスク管理システムをエキスパートアドバイザーに統合する
本記事では、これまで開発したリスク管理システムを実装し、さらに別記事で解説したOrder Blocksインジケーターを追加します。加えて、バックテストを実行し、リスク管理システムの有無による結果の違いを比較することで、動的リスク管理の影響を評価します。
初心者からエキスパートへ:イントラデイ戦略の自動化
EMA-50リテストの考え方を、日中取引向けの動作ベースのエキスパートアドバイザー(EA)へ変換します。この研究では、トレンドバイアス、EMAとの相互作用(EMAを貫き、所定の側で引ける動き)、反応の確認、オプションのフィルタを体系化し、それらをモジュール化された関数と安全なリソース管理を意識したハンドル運用を使用してMQL5で実装します。ストラテジーテスターでのビジュアルテストにより、シグナルの正確性を確認します。その結果、裁量判断による反発手法をコード化するための明確なテンプレートが完成します。
古典的な戦略を再構築する(第20回):現代のストキャスティクス
本記事では、古典的なテクニカル指標であるストキャスティクスを、従来の平均回帰ツールとしての使い方にとどまらず、どのように再解釈および再活用できるかを解説します。異なる分析視点からこの指標を捉え直すことで、慣れ親しんだ手法が新たな価値を生み出し、トレンドフォロー型の解釈を含む代替的な売買ルールの構築にも応用できることを示します。最終的に、MetaTrader 5ターミナルに搭載されているあらゆるテクニカル指標には未開拓の可能性が潜んでおり、試行錯誤を慎重に重ねることで、従来の見方では気づきにくい有意義な解釈を発見できることを示します。
プライスアクション分析ツールキットの開発(第61回):3スイング検証による構造的傾斜トレンドラインブレイクアウト
3点のスイングによる検証を基準として、客観的なプライスアクションシグナルを生成する、傾斜トレンドラインブレイクアウトツールを紹介します。このシステムは、スイング検出、トレンドライン構築、そしてクロス判定ロジックを用いたブレイクアウト確認を自動化することで、ノイズを低減し、運用・執行判断を標準化します。戦略ルールを解説し、MQL5による実装を示し、テスト結果を検証します。このツールは自動売買を目的としたものではなく、分析およびシグナル確認を支援するためのものです。
MQL5における建値機能の実装(第1回):基底クラスと固定ポイントの建値モード
本記事では、MQL5言語を用いた自動売買戦略における建値(損益分岐点)機能の実装について解説します。まず、建値モードとは何か、その仕組みや実装パターンについて簡単に説明します。 その後、前回のリスク管理に関する記事で作成したOrder Blocksエキスパートアドバイザーに、この機能を統合していきます。さらに、その有効性を検証するため、同一条件下で2種類のバックテストを実施します。1つはブレイクイーブン機能を有効化した場合、もう1つは無効化した場合です。
リスク管理(第4回):主要クラスメソッドの完了
MQL5におけるリスク管理に関する連載の第4回です。本連載では、取引戦略を保護しつつ最適化するための高度な手法を段階的に解説しています。前回までの内容で重要な基礎はすでに整っており、本記事では第3回で後回しにしていた残りの実装をすべて完結させます。具体的には、設定された利益および損失の上限に到達したかどうかを判定するための各種関数を完成させます。さらに、より高精度かつ柔軟なリスク制御を実現するための新しいイベント機構についても導入します。
MetaTrader 5とMQL5経済指標カレンダー:ニュースを再現性のあるトレードシステムに変える方法
MetaTrader 5に組み込まれている経済指標カレンダーを利用したニューストレードの体系的アプローチを紹介します。対象となる内容には、データ構造、API関数、時間同期ルール、イベントフィルタリングが含まれます。また、サーバーへ過度な負荷をかけることなく履歴を管理するためのキャッシュ機構および増分更新方式についても解説します。さらに、同一アルゴリズムを用いた決定論的テストを実現するために、履歴データを.EX5リソースとしてエクスポートする実用的な仕組みも提供します。
初心者からエキスパートへ:流動性ベースの取引戦略の構築
流動性ゾーンは一般的に、価格がそのゾーンへ戻ってリテストするのを待つことで取引されます。この際、これらの領域内に指値注文を配置する手法がよく用いられます。本記事では、MQL5を用いてこのコンセプトを具体化し、こうしたゾーンをどのようにプログラム的に識別できるか、そしてリスク管理をどのように体系的に適用できるかを示します。流動性ベースの取引ロジックとその実装について、実践と理論の両面から解説していきます。
ダイナミックマルチペアEAの形成(第6回):高頻度銘柄切り替えのための適応型スプレッド感度制御
本パートでは、マルチ銘柄におけるリアルタイムのスプレッド条件を継続的に監視し、評価するインテリジェントな実行レイヤーの設計に焦点を当てます。EAは、固定ルールではなくスプレッドの効率性に基づいて取引の有効と無効を切り替えることで、銘柄選択を動的に適応させます。このアプローチにより、高頻度で銘柄を切り替えるマルチペアシステムはコスト効率の高い銘柄を優先できるようになります。
初級から中級まで:関数ポインタ
プログラミングにおいて「ポインタ」という概念について聞いたことがある方は多いと思います。しかし、MQL5でもこの種のデータを利用できることをご存じでしょうか。もちろん、これは実行時の挙動を適切に制御し、不可解な動作を回避できるよう慎重に扱う必要があります。ただし、この機能は非常に限定的な用途に向けたものであり、特定のタスクに特化しているため、MQL5におけるポインタの概念や使用方法について語られる機会はあまり多くありません。
初心者からエキスパートへ:流動性ゾーンインジケータの開発
流動性ゾーンの広がりとブレイクアウトレンジの大きさは、リテストが発生する確率に大きな影響を与える重要な変数です。本ディスカッションでは、これらの比率を組み込んだインジケータを開発するための完全なプロセスについて解説します。
MQL5でのスイング極値とプルバック(第1回):マルチタイムフレームインジケータの開発
Swing Extremes and Pullbacksインジケータを自動化します。このインジケータは、下位足(LTF)生の値動きを、市場の意図を構造化して示すマップへと変換します。リアルタイムでスイングハイ・スイングロー・調整フェーズを正確に検出し、マイクロストラクチャーの変化をプログラムによって追跡することで、完全な反転が形成される前に潜在的な転換ポイントを予測します。これにより、市場ノイズを実用的なシグナルへ変換し、より精度の高い意思決定を可能にします。
初心者からエキスパートへ: トレンドフィルタによる流動性戦略の拡張
流動性ベースの戦略にシンプルなトレンド条件を追加します。具体的には、EMA(50)の方向に沿って流動性ゾーンを取引するというフィルタを導入します。記事では、不要なセットアップを除外するためのルールを説明し、再利用可能なTrendFilter.mqhクラスと、MQL5でのEA統合方法を紹介します。また、フィルタなしの基本戦略と、フィルタを適用した戦略のテスト結果を比較します。読者は、明確な方向性の判断基準、逆トレンド局面での過剰取引の抑制方法、そしてすぐに利用できるソースファイルを得ることができます。
MQL5標準ライブラリエクスプローラー(第7回):CCanvasによるインタラクティブなポジションラベル表示
MQL5標準ライブラリに含まれるCCanvasを使用して、ポジション情報を可視化するツールの構築方法を解説します。このプロジェクトを通して、標準ライブラリの各種モジュールを扱うスキルを高めるとともに、ライブチャート上で保有ポジションを視覚的に確認・操作できる実用的なツールを作成します。ぜひ最後までお読みいただき、議論にもご参加ください。
初級から中級まで:構造体(IV)
本記事では、いわゆる構造化プログラミングにおけるコードの作り方について解説します。構造体の中に、変数や情報を操作するためのコンテキストおよびメソッドをすべて配置し、あらゆるコードを実装するための適切な文脈を構築する方法を扱います。そのため、公開すべき内容とそうでない内容を分離するためにprivateセクションを使用する必要性について検討します。これによりカプセル化の原則が守られ、データ構造が本来意図されたコンテキストが維持されることになります。
初級から中級まで:継承
間違いなく、本記事の内容を理解し、それがどのように、そしてなぜ機能するのかを把握するためには、かなりの時間を要するでしょう。というのも、ここで示されている内容はすべて、一見するとオブジェクト指向的に見えますが、実際には構造化プログラミングの原理に基づいているためです。
MQL5におけるイベント駆動型アーキテクチャ:エキスパートアドバイザーを本格的なトレードシステムに進化させる方法
MQL5におけるイベント駆動アーキテクチャについて解説し、モノリシックなOnTickモデルから分散処理への移行を取り上げます。定義済みイベントとカスタムイベント、サービス、およびプログラム間のメッセージングについて説明するとともに、アーキテクチャ上でよく見られる典型的な誤りについても考察します。また、実践的な例を通じて、インジケータとEAの連携をどのように構成すれば、負荷を軽減し、可読性を向上させ、保守を容易にできるのかを示します。