XGitHub

MMの振り返りと今後

アビトラBotの振り返りに引き続き、MMBotの振り返りもした。 アビトラについてはこちらでやってる。

チャッピーと今後の戦略について会議し、直近ではMMを取り組もうと決めた。 細かいところは決めてないが、既存の知識を活かしやすいように去年やったMMBotの戦略をブラッシュアップしていく形でやっていくことにした。

チャッピに去年のMMについて簡単にまとめてもらった

実装の細部までは保持していないが、 あのMMは一貫して 短期価格予測ではなく在庫リスクの制御を主目的に設計していた。 価格は予測対象ではなく観測値として扱い、 best bid / ask から得られる mid-price を中心に、 スプレッド幅を ボラティリティ・在庫偏り・約定頻度の3要素で調整する構造だった。 特に重視していたのは inventory exposure で、 在庫が一方向に偏った場合には 片側のクォートを意図的に弱め、 ポジションが自然に平均回帰する状態を作ろうとしていた。 また、板が動くたびに注文を更新するのではなく、 約定確率や板構造が実質的に変化したと判断できる場合のみ 再配置を行うことで、 不必要なキャンセルと市場への過剰な介入を避けていた。 結果としてあれは 利益を最大化するロジックというより、 市場に長く留まり続けるための リスク制御付きクォーティング戦略だったと思っている。

去年やっていて難しいと思ったところ

  • 在庫管理
  • 指値の位置

同じことを言っていると思うけど、ここが難しかった。

以前のMMBotはとにかく指値注文を入れて、約定しなかったら注文キャンセルし指値注文を入れ直すロジックでやっていた。 片方約定も多く、ポジションの傾きも結構あった。

このやり方だと明らかにトレンドに弱い。

片方約定をした場合は、保持している量に応じて指値を入れる位置をずらしていったが、正直板の厚みの考慮がとても甘く注文が約定しないことが多々あった。

結果、高いところで掴まされて安いところで手放すケースが多発し、「あれ、傾きを入れない単純な指値注文の方がよくね?」となっていたのである。(完全な力不足)

これからどう改良するか

これらの反省点を踏まえて、これからのBotは以下の点を意識して実装していこうと思っている。

  • 高頻度ではない。
  • 板の厚みを優先判断事項にする
  • 両建てをしない。
  • 下落トレンドを避ける

なので新しいロジックでは「下落トレンドの検知」と「ImbalanceRatio」、「歪みの再現性」 この三つを絶対条件に入れる計画を立ててる。

その判断のためにそれぞれ変数になるのは

  • 連続失敗n回での(遷移検知
  • 空間n(近傍段数)
  • 試行n(再現性カウント

これからの検証でここら辺を見つけていこうと思う。

最後に

チャッピーがガバガバなロジックを言ってくるので詰めまくってた。

最後に煽られて何も言えませんでした。 これの答えある人いたら教えてください。