Runaway Guard
- ユーティリティ
- バージョン: 1.0
- アクティベーション: 10
Runaway Guard は MetaTrader 5 の口座監視ツールです。注文が出る速さ(約定レート)を発注元ごとに測り、決めた速さを超えたときだけ動きます。
・見るのは注文が出る速さだけです。取引で確定した金額は判断材料にしません
・超えた瞬間に CSV が 1 件書き出され、実際の約定チケット番号が並びます
・数えるのも動作を選ぶのも発注元(マジックナンバー)ごとです
■ 四つの上限
約定レート = 短い窓に届いた約定の数。既定は 5 分に 20 件。
短期の回転 = 建ててから 1 分未満で決済されたポジションの数。既定は長い窓 15 分に 10 件。
再エントリー = 決済から 30 秒以内に、同じ銘柄・同じ方向でまた建てること。既定は長い窓に 5 回。
手数料とスワップと決済で確定した額 = 長い窓のこの三つを符号そのままで合計し、残高の何パーセント動いたかで見ます。既定は 0.5 %。
上限を 0 にすると、その指標だけを無効にできます。
■ 発注元ごとに数える
どの約定にも、それを出したプログラムのマジックナンバーが付いています。これをマジックナンバーごとに数え、持たない注文は Manual / no magic の一行にまとめます。口座全体の行は All sources で、測るのは約定レートだけ。除外した発注元は合計から外れますが、その行と数字はそのまま残ります。
■ 超えたときの動作
Alert = 知らせるだけ。既定です。
Cancel pendings = その発注元の待機注文だけを取り消し、ポジションには触れません。自動売買が切られていると実行できません。
Stop the chart = その発注元のチャートを閉じます。閉じたEAからは新しい注文が出ません。閉じる前にテンプレートを保存し、できなければ閉じません。
Close the terminal = MetaTrader 5 そのものを終了します。既定は無効で、二つ目のスイッチ InpAllowTerminalClose を入れないと動きません。
記録は動作より先に書かれます。
■ 画面
Runaway Guard Watch Sources
Window 5 min / 15 min State: TRIGGERED
Source Deals RT Reentry Cost Action
All sources 48 -- -- -- Alert
Manual / no magic 4 2 1 -4.00 Alert
Magic 33020001 0 10 9 -250.00 Alert
Magic 40010001 36 18 17 -36.00 Cancel
Magic 70010001 8 4 3 -8.00 Alert
Magic 70010002 12 6 5 -12.00 Excluded
Last incident: 07:47:26 Magic 70010002 reentry
5 in 15 min (limit 2)
-> incident_2026-08-14_074726_magic70010002_2.csv
Close the terminal needs InpAllowTerminalClose = true
画像は上限を下げて撮っています。既定の 20 件 / 10 件 / 5 回では、四つの指標が超える様子が 1 枚に収まりません。
RT は長い窓に入った決済の数で、上限が数えるのは、そのうち 1 分未満で決済されたものです。Magic 33020001 の Deals が 0 でも RT に数字が残るのは、Deals だけが短い窓だからです。
All sources の Deals は、個別の行を足して除外した行を引いた数です。個別の行は 4 + 0 + 36 + 8 + 12 = 60 で、Excluded の Magic 70010002 の 12 を引くと 48 になります。-- が三つ並ぶのは、口座全体で測るのが約定レートだけだからです。
Magic 70010002 は Excluded でも Last incident に残ります。除外は静かにすることで、消すことではありません。
State は WATCHING(平常)・TRIGGERED(超過)・DISABLED(動作不可)の三つ。DISABLED は選ばれた動作をいま実行できない状態で、理由が一行出ます。検知は続きます。
■ 記録ファイル
上限を超えると MQL5/Files/RunawayGuard/ に 1 件ずつ CSV が書き出されます。見出し行はこれです。
time_broker,time_utc,time_local,trigger,measured,threshold,magic,symbol,deals,round_trips,commission,swap,realized,action,deal_tickets
時刻は三種類記録してあり、履歴と突き合わせられるのはブローカー時刻です。続く列は、超えた指標とそのときの値、発注元、銘柄、動作、約定チケットの一覧です。チケットは実際の番号で、評価や点数の列はありません。上書きも自動削除もしません。
■ 鳴りっぱなしにしない
起動から最初の 1 分は何も実行せず、市場が開いた直後の 2 分は上限が倍になります。除外はどのマジックナンバーにも掛けられ、一度発動した発注元と指標は、10 分間は再発動しません。数えるほうは止まりません。
■ できないこと・やらないこと
・建てる・決済する・変更するための取引命令が、ソースコードに一つもありません
・他のEAは無効にできません。閉じられるのは、そのEAのチャートだけです
・別の端末から出された注文は止められません。検出はできます
・すでに約定した取引は取り消せません
・金額では止めません。軸は速さです
・外へ何も送りません。外部通信もDLLもありません
■ 試すとき・環境・パラメーター
無料デモはストラテジーテスターの中で動き、疑似的な約定サンプルを、実運用とまったく同じ経路で流し込みます。画面にはこの行が出ます。
TESTER DEMO - synthetic sample, no orders are placed
MetaTrader 5 で動き、ブローカーも銘柄も問いません。開発と検証はヘッジング口座で行いました。ネッティング口座も実装していますが、検証はしていません。自動テストで確認済み=取引命令・DLL・外部通信いずれも 0 件。
四つの上限は、次の八個のパラメーターで決めます(括弧内が既定値)。
InpWindowFastMin(5)/InpMaxDealsPerWindow(20)/InpWindowSlowMin(15)/InpShortHoldSec(60 秒)/InpMaxChurnPerWindow(10)/InpReentrySec(30)/InpMaxReentryPerWindow(5)/InpMaxCostPercent(0.5)
残りは動作の選び方・起動まわり・表示と通知で、全部で十九個。既定値のまま動くので設定ファイルは要りません。画面で変えた設定は口座ごとに残り、パラメーターは変えればそのまま効きます。
これは、口座に届いた約定を数えて記録する道具です。これから起きることについては、何も言いません。
