既存戦略調査 (3) ultraistterさん 続き

実用的な遅延対策の実装法。

ask, bid両方必ず出すタイプではない。

UKIさんのこの記事について、機械学習に向いてるとのこと。

強化学習botついに投入

LとSで個別に学習している。

機械学習の使い方について。「ファイナンス機械学習」に書いてあった考え方にも少し近い印象。

MultiDiscreteというのはOpenAI Gymのクラスのようだ。行動に関するかなり直接的な出力をさせて、強化学習をしているようだ。

再学習について。この時期にはもう4時間ごとになっていた。

必読っぽい。TODO。

学習時のタイムスケールについて。工夫のしがいがありそうなポイント。

ついにアルゴリズムへの言及が。PPO2を使っているらしい。

ここでも重要な情報が。

・NNのアーキテクチャがシンプルな2層MLP
・入力は約定履歴のみ
・入力も5分前からの情報のみ

高頻度系では推論の遅い機械学習モデルを使うのは難しそうなので、NNアーキテクチャについてはそんなものかなと思っていました。一方、入力は信じられないぐらいシンプルですね。でも、確かに板情報を見ないほうが見せ板などに惑わされずロバストかもしれないです。

ちょうどその辺の1つのヒントになりそうな話。

ん?ロス関数について。PPO2による強化学習の話と、回帰のロス関数の話は、どう繋がってくるんだろ?マルチタスク学習になってるのかな?

botに離散的なアクションが選択肢として与えられている具体的な様子がわかる。

これはちょっと今の知識・経験だと仰ってることが理解できず。重要そうなのでまた戻ってきたい (TODO: 解読できるようになったら解読する)。

L, S独立なので在庫管理は無い。

遅延時間を特徴量に入れているらしい。Realtime APIの受信ならまだしも、発注が板に乗るまでの遅延を本当は使いたいはずで、しかし発注をずっとしてないとその情報は得られないのではなかろうか。なので、遅延時間のデータを安定して取るのは簡単じゃなさそうだけど、どうやってるんだろう? (TODO: 調査する)

これはwindowの切り方の話ですかね?あまり変わらないらしい。

実装について

速度重視のbotの場合は最終的に全部C++かRustで書こうかと思っていたが、このぐらいがちょうど良さそうな気もする。どうせネットワークのレイテンシもそれなりに大きいだろうし。

そのうち調べようと思ってたけど、少なくともこの頃はAzureらしい。C#だからそうかなとは思ってた。

ポジ管理について

自作IFDOCOについて

どんな風にデータを作ってるかが少し透けて見える発言。上にも有るように、5分のwindowを使っているので、それをsliding windowとして動かして計算をしたいようだ。重要なこととして、当たり前だけど、mean, stdを特徴量として使っているということもわかる。

ちなみに、stdは二乗のmeanからmeanの二乗を引いてsqrtとるだけなので、stdも同じようにO(1)で計算できると思います。(教えてあげたほうがいいですかね……?こんだけ情報貰ってる立場なので、少しでも役に立てそうだったら嬉しいですが、大した話じゃないっていう……)

僕もやらなきゃなと思ってました。受信したメッセージだけじゃなく、受信した時間を入れないと、使えないですよね。


テイカーbot

メイカーを作られてると思ってたけど、テイカーbotというのも作っているらしい。テイカーbotも強化学習なのかな?わかりませんが、確かに、同じ枠組みで学習させられそうだし、テイカーのほうが指値を学習しなくて良い分、楽に始められるかもしれないですね。


この記事が気に入ったらサポートをしてみませんか?