簡潔に言えば、コードが壊れたのではなく、ほぼ確実にブローカーに検知され、フィルタリングされたためです。
アービトラージ戦略には識別可能な特徴があります。リスク管理部門は、速度または情報面での優位性を示す方法で継続的に利益を上げる口座を監視しており、あなたの口座がフラグ付けされると対策が始まります。どの対策もコードには触れません。変えられるのは、すべて注文の約定です。
典型的な時間経過が明確な手掛かりになります。デモでは完璧な約定、ライブ取引開始後の数週間は良好な約定、その後、口座が継続的に利益を上げ始めた時点で急激に悪化します。これは偶然でもバグでもありません。口座が約定フィルターの対象へ移されたのです。仕組み全体はブローカーが実際に注文を約定する方法で、具体的なツールはアンチアービトラージ・プラグインで説明しています。
次の項目を順番に確認してください。最初の4項目はブローカー側のもので、大多数の事例を説明します。
| 確認項目 | 問題がある場合の特徴 |
|---|---|
| 約定レイテンシー | 注文送信から約定までの平均時間が増加した。特に利益が出始めた直後に顕著 |
| スリッページの対称性 | スリッページが一方向になった。利益が出る取引ではマイナスで、プラスになることはほとんどない |
| 拒否とリクオート | 利益になったはずの取引を中心に、新たな拒否やリクオートが発生する |
| あなたのスプレッド | ブローカーの公開レートと一致しない、口座固有のスプレッド拡大 |
| あなたの価格フィード | フィードが遅くなった、切断された、またはブローカーのレートに対する先行性を失った |
| 市場環境 | ボラティリティまたは流動性が変化し、取引対象としていた価格差が縮小した |
意図について議論するのではなく、測定してください。取引ログを取得し、初期の利益が出ていた期間と、成績が崩れた期間を比較します。約定レイテンシーが増え、スリッページが一方向になり、利益が出る取引に拒否が集中しているなら、原因はブローカーです。戦略を変更しても解決しません。一方、約定が依然として良好かつ対称的で、以前獲得できた価格差だけがなくなっている場合、優位性そのものが衰えています。解決策は、別のフィード、別の銘柄、または別の戦略です。
2つの原因のどちらかが判明すれば、進むべき道は明確です。ブローカーに検知され、フィルタリングされた場合は、注文フローを長く維持できるよう約定をマスキングする、そのフローを許容する取引先へ移る、またはこの戦略ではそのブローカーを利用できないと受け入れるという選択肢があります。優位性が衰えた場合は、存在しなくなった価格差に合わせてパラメーターを調整し続けるのではなく、新しい優位性の源を見つける必要があります。どちらの場合も、長期的な教訓は同じです。戦略を信頼する前に、現実的な約定条件でテストし、本番環境で予想外の結果にならないようにしてください。実際のティックデータにモデル化したレイテンシーとスプレッドを加えたバックテストにより、本物の優位性と、完璧な約定でしか存在しない優位性を区別できます。
コードではありませんが、約定は高い確率で悪化させられています。ブローカーは、有害と分類した注文フローに遅延、非対称スリッページ、拒否を適用します。戦略は動作し続けていますが、それが依存する約定環境が密かに悪化しています。
デモサーバーはほぼ必ずフィルタリングされておらず、ほぼ完璧な約定をシミュレーションします。デモでは機能する一方、資金を入れた口座では失敗する戦略は、ライブの注文フローがフィルタリングされていることを示す強力な証拠です。
注文フローを識別されにくくする約定マスキングや、そのフローを許容するブローカーへの移行によって修正できる場合があります。ただし、戦略コードの編集だけで敵対的な約定を解決することはできません。
新しい記事、調査レポート、製品リリースを公開時にお届けします。
ブローカーがアービトラージの注文フローを検知してフィルタリングする方法を正確に理解し、自分の約定を監査して本当の原因を突き止めましょう。