プラットフォーム·用語集

MetaTraderのパケット再送とは?

パケット再送は、送り直しが必要になったネットワークパケットの割合です。Pingより接続の安定性をよく表す理由と、値が上がると注文執行に何が起きるかを解説します。

パケット再送とは、最初に送ったパケットが失われたり、受信確認が返ってこなかったりして、もう一度送り直したネットワークパケットの割合をパーセントで表したものです。健全な接続ならゼロのままです。この値が示すのは、MetaTraderのターミナルと外部を結ぶ回線が信頼できるかどうか。速さとは別の問いで、しかもそちらのほうが役に立ちます。

仕組み

ターミナルと取引サーバーの間のやり取りは、すべてTCPというプロトコルで運ばれます。TCPは送り直すことで、データが確実に届くことを保証しています。送信側は受信確認を待ち、タイムアウトまでに届かなければ同じパケットをもう一度送ります。

パケット再送率(%) = 再送したパケット数 / 送信したパケット数 × 100

MetaTraderはこの値をターミナルのプロパティとして公開しており、EA(エキスパートアドバイザー)がほかの環境データと一緒に送ります。ShowMyTradesは小数点以下2桁で表示するため、0.005%未満の値はすべて「0.00%」と表示されます。

読むときに押さえておきたい点が2つあります。まず、この値は1本の接続だけを切り出して測ったものではなく、マシン全体のネットワークスタックから取られています。そのため、同じVPSや同じ自宅回線で動いているほかのソフトウェアの通信も数字に影響します。次に、これは発生回数ではなく割合です。ゼロでなければ、一度きりではなく、パケットロスが続いていることを意味します。

なぜ重要か

Pingは平均値で、平均値が描くのはうまくいっているときの姿です。平均の往復時間がとても良い接続でも、パケットは落ちます。ロスは分布の裾で起きていて、平均をとるとそこがならされて見えなくなるからです。パケット再送は、その裾を直接測った数字です。

1回の再送にかかるコストは、往復1回分では済みません。送信側はパケットが失われたと判断するまでタイムアウトを待たなければならず、その待ち時間は通常の往復時間の数倍になるのが普通です。つまり再送率1%とは、すべてが1%遅くなることではありません。1%のメッセージが極端に遅れ、残りの99%は完璧に見えるということです。どんな平均をとっても、数字は安心できる値のままです。

さらにTCPは順番どおりに届けるため、失われたパケットを取り戻している間、後ろに続くデータはすべて待たされます。「レートが止まったかと思うと、まとめてどっと届く」というおなじみの症状の正体はこれです。

そのため、再送率が上がったときに起きることははっきりしています。即時執行ではリクオートが増えます。リクエストが届くころには、ターミナルが前提にしていた価格がもう古くなっているからです。成行執行では実際のスリッページが広がります。EAの動作は遅れるか、まったく実行されなくなります。そして値が上がり続ければ、セッションが切れ、ターミナルからのデータ送信が完全に止まります。

2つの指標のうち、先に異常を知らせるのもパケット再送のほうです。Pingが悪化するのは経路が変わったとき。パケット再送が悪化するのは回線そのものが傷んでいるときで、たいていは切断よりずっと前に兆候が出ます。

実データから見えること

以下の数字は、トレーダー全体ではなく、ShowMyTradesで公開されている口座についてのものです。ターミナルの計測値を送ってくるのは、ShowMyTradesのEAで連携したMetaTrader口座だけです。連携中の口座は1万以上あり、その大半がMetaTrader口座です。cTraderとTradeLockerの口座はブローカーのAPI経由で動いているため、ターミナルも独自のネットワーク計測値もありません。

ここでこの指標が重要になるのは、自動売買が中心だからです。自動売買の割合の中央値は99%、口座の53.9%は自動売買の割合が90%超です。こうしたターミナルは誰も見ていないところで動いていて、持ち主が何週間もログインしていないレンタルサーバー上にあることも珍しくありません。裁量トレーダーなら、接続がもたつけば数分で気づきます。画面が目の前にあるからです。ところがEAは、動いているVPSが午前3時に不調になりかけても何も気づきません。ほかの誰も気づかないまま、おかしな成績が出てはじめて発覚します。

これらの口座がつながっている先は703のブローカーサーバーで、どのサーバーへの経路もそれぞれ異なります。

ShowMyTradesで確認できる場所

パケット再送は、ターミナルパネル(MT5ではターミナルと開いているチャート、MT4では単にターミナル)に並ぶ6つのタイルの2番目で、Pingのすぐ後ろにあります。その後にターミナルのビルド、メモリ、自動売買、DLLの使用が続きます。タイルには小数点以下2桁のパーセントが表示され、ツールチップに読み方がそのまま書かれています。0%に近ければ接続は安定しており、高い値が続く場合はネットワークが不安定か、取引サーバーが遠くにあることを示します。

パネルの見出しと合わせて読んでください。見出しにはステータスバッジ(「接続中」「取引サーバー未接続」「オフライン」)と、最後の計測からの経過時間が表示されます。11分間何も届かない口座は、オフラインと表示されます。パケット再送が上がっていく一方で、その経過時間がどんどん延びていく。これが、ターミナルが沈黙する前に現れるパターンです。

このパネルは口座の持ち主だけが見られるもので、ダッシュボードの口座ページにあります。開いているチャートで動いているEAを含め、ターミナルのデータが公開ページやウィジェットに載ることはありません。cTraderとTradeLockerの口座にはターミナルがないため、このパネルもありません。

よくある誤解

  • 「0.00%なら接続は完璧」:前回の同期の時点で、表示できる小数点以下2桁を下回っていたというだけです。あくまでその瞬間の値で、1回きれいな数字が出ても、その夜全体の様子まではわかりません。
  • 「ブローカーのせい」:この値が表しているのは、ネットワークの経路と、その手前側の端にあるマシンです。VPSが混み合っていれば、ブローカーとは無関係に上がります。
  • 「Pingが低ければ、再送は気にしなくていい」:むしろ、その組み合わせこそ要注意です。平均は速いのに、その裏に分厚い裾が隠れています。
  • 「影響するのはレート配信だけで、注文には関係ない」:レートも注文も、同じTCP接続を通っています。片方が詰まれば、もう片方も詰まります。

ターミナルの計測値は、口座を連携するときにインストールするのと同じEAから送られてきます。詳しくは取引口座を認証する方法をご覧ください。

関連用語