記事「取引規律をコードに組み込む(第2回):MQL5で口座全体の全取引に対応する日次取引制限エンフォーサーを構築する」についてのディスカッション

 

新しい記事「取引規律をコードに組み込む(第2回):MQL5で口座全体の全取引に対応する日次取引制限エンフォーサーを構築する」はパブリッシュされました:

取引ルールを遵守できるようにするため、1日の取引制限を強制するシステムを開発しました。このシステムは、口座全体で実行されたすべての取引を監視し、設定された制限に到達すると自動的に介入して、それ以降の取引活動を防止します。制御機能をプラットフォームに直接組み込むことで、市場からのプレッシャーが高まった状況でも、規律を維持できるようにします。

1日の取引回数を制限することは、トレーダーが設定できる最も基本的なリスク管理ルールの一つです。しかし実際の運用環境では、このルールは最も簡単に破られてしまうルールの一つでもあります。これは裁量トレーダーだけに当てはまる問題ではありません。複数のエキスパートアドバイザー(EA)が複数の銘柄で同時に動作している口座においても同様です。たとえば、「1日に許可されるエントリーは最大N回まで」というルールを設定したとしても、市場からのプレッシャーが高まった時、連敗や連勝によって心理状態が変化した時、あるいは複数の戦略が個別に動作している場合には、そのルールは簡単に機能しなくなります。

本質的な問題は、トレーダーに規律が存在しないことではありません。問題は、口座レベルで規律を強制する仕組みが存在しないことです。MT5には、何をエントリーとして扱うのか、取引日をどのように測定するのか、そして事前に定義した制限に到達した場合に何を実行するのかを定義する、一元的な仕組みは標準では提供されていません。エントリーをDEAL_ENTRY_INに基づいて判定するのか、ポジションを基準にするのか、注文を基準にするのか。また、セッションをサーバー時間の0時でリセットするのか、カスタム時間でリセットするのか。さらに、制御をすべての銘柄に適用するのか。これらを明確に定義しなければ、ルールは概念的なものに留まり、実際の制御構造にはなりません。

本記事では、口座レベルで動作するMQL5製の日次取引制限エンフォーサーを実装します。このシステムは、設定可能なセッション時間内で確定したエントリーディールをカウントし、すべての銘柄にわたる取引活動を監視し、制限を自動的に強制します。定義された上限に到達すると、新しい非成行注文は削除され、新しく建てられたポジションは決済されます。一方で、制限到達前に保有していた既存のポジションには影響を与えません。


作者: Christian Benjamin