2022.04.08

深層強化学習を用いた暗号資産のマーケットメーキング手法の調査

1. はじめに

こんにちは、次世代システム研究室のK.Fです。

前回は、暗号資産のシステムトレード入門ということで、テクニカル指標のパラメータ最適化を機械学習を用いてやってみたのですが、今回は、自分自身興味がある強化学習と絡めて、暗号資産のシステムトレード手法について調査していきます。

結論

深層強化学習を用いた暗号資産のマーケットメイキング手法について調査した。

  • マーケットメーキングに強化学習を用いるのは有用であることが論文の結果から分かった。
  • 強化学習のイベントを定義する際には、時間軸の取り方で結果が大きく変わることがある。
  • 強化学習において報酬関数の設計が、特に重要である。

2. マーケットメーキング

2.1 マーケットメーキングとは

板の上下に指値(「売り指値」と「買い指値」)を提示し、約定した際の売買差額(スプレッド)を利益として得る方法です。スプレッドを広くしすぎると、片方だけ約定しない、または、両方とも約定しないことがあります。その状態で、不利なポジションを持ったまま価格が動いてしまうと、その分損することになります。

2.2 自動取引との相性

マーケットメーキングは、一回で得られる利益は小さいですが、取引を頻繁に繰り返すことで収益を積み上げていきます。高頻度取引とも言われます。 (だいたい、数秒間に1回注文を出すくらいです。)

こういう人間には限界のある高速性や瞬発力が求められる分野は、機械 (BOT) が得意とするところであります。

3. 強化学習

3.1 強化学習おさらい

強化学習では、エージェントは環境に対して何らかの行動をとります。その行動によって、変化した状態と報酬を環境から受け取り、エージェントは受け取った状態と報酬を元に、累積報酬の最大化を目的に、行動方策を学習していきます。強化学習についての詳しい説明は、他の方が散々されているのでここでは省略します。

3.2 自動取引との相性

強化学習では、エージェントがどのような行動を取れば報酬に繋がるのかを学習することができます。つまり、どのタイミングで売る?買う?の判断をすれば勝てるのかを学習することができそうです。こう考えると、強化学習とトレードは解きたい問題が近い、相性がいいと言えるでしょう。

4. 論文調査

簡単に、“Extending Deep Reinforcement Learning Frameworks in Cryptocurrency Market Making” [1]を調査しました。詳しい数式を追いかけるのは骨が折れるのであまり触れずに、今回は概要だけ述べようと思います。

4.1 論文の成果

  • 3種類の報酬関数を定義し、エージェントのマーケット・メイキング戦略を評価した。
  • 従来の時間ベースのイベントアプローチと比較する形で、価格変動ベースのイベントアプローチを提案した。

4.2 強化学習モデル

状態

エージェントが観測可能な状態は、

  1. 在庫 (保有ポジション)
  2. 歩み値 (約定履歴)
  3. 板情報

の組み合わせで表現されます。

行動

エージェントは、

  1. 何もしない
  2. 指値買い&指値売り (片方だけや量を変えることもできます)
  3. 成行買い&成行売り (在庫処分)

報酬

報酬は、損益ベース、目的ベース、リスクベースの3種類に分類されています。

  1. 損益ベースの報酬:確定損益、未確定損益など
  2. 目的ベースの報酬:確定損失の大小で報酬を与える
  3. リスクベースの報酬:シャープレシオ (リターンをリスクで割ったもの)

この論文では、それぞれ3種類の報酬関数を別々に評価していましたが、強化学習では異なる意味を持った目的関数をバランスよく混ぜ合わせることで、性能が向上することがあります。報酬設計が肝と言えます。

エージェント

以下の2種類の強化学習アルゴリズムが検証されていました。

  1. Advantage Actor-Critic (A2C)

A2Cは価値ベースと方策ベースの両方を組み合わせた強化学習アルゴリズムです。Actor-Criticモデルがベースとなっています。Acotorは、時刻ttでの行動方策π(st,at)\pi(s_t,a_t)に基づき状態
sts_tで行動ata_tを選択します。Criticは、Actorが選んだ行動ata_tがよい行動だったのかを、報酬rtr_tを元にAdvantage関数Aπ(st,at)A^\pi(s_t, a_t)を用いて評価します。Advantage関数は状態価値関数Vπ(st)V^\pi(s_t)を用いて以下のように表現できます。

Aπ(st,at)={i=0k1γirt+i+γkVπ(st+k)}Vπ(st)A^\pi(s_t, a_t) = \left\{ \sum_{i=0}^{k-1} \gamma^i r_{t+i} + \gamma^k V^\pi(s_{t+k}) \right\} – V^\pi (s_t)

ここで、上式の前項は、kkステップ先までの割引累積報酬と割引状態価値関数を足し合わせたもので、行動価値関数Qπ(st,at)Q^\pi(s_t,a_t)とも言います。損失関数は以下のように表すことができます。

L={Qπ(s,a)Vπ(s)}2E[logπθ(s,a)Aπ(s)]aA{πθ(s,a)logπθ(s,a)}L = \left\{ Q^\pi(s, a) – V^\pi(s) \right\}^2 -\mathbb{E}[\log \pi_{\theta} (s, a) A^\pi (s)] -\sum_{a \in \mathcal{A}} \left\{\pi_{\theta} (s,a) \log \pi_{\theta} (s, a)\right\}

一番目の項がCriticのLoss、二番目の項がActorのLoss、三番目の項が局所解に陥るのを防ぐためのエントロピー項です。また、A2Cでは、マルチプロセスで複数の環境を非同期に利用し学習を高速化する仕組みがあります。

  1. Proximal Policy Optimization (PPO)

PPOも価値ベースと方策ベースの両方を組み合わせた強化学習アルゴリズムです。方策ベースの手法である方策勾配法とActor-Criticを組み合わせたものになります。A2Cと同様に、複数の環境を非同期的に利用して学習をすすめることができます。A2Cとの違いは、Generalized Advantage Estimation(GAE)を用いてAdvantageの偏りを減らし、最新の更新後の新しい方策πθ(s,a)\pi_{\theta}(s,a)と最新の更新前の古い方策πθk(s,a)\pi_{\theta_{k}}(s,a)の差を表すクリップされた代理関数LCLIPL^{CLIP}を通して、間接的に方策πθ(st,at)\pi_{\theta}(s_t,a_t)の最適化をします。この代理関数を用いることで、新しい方策が古い方策から逸脱することなく学習を効率的に進めることができます。損失関数は以下のように表すことができます。

L=min(πθ(atst)πθk(atst)Aπθk(st,at),clip(πθ(atst)πθk(atst),1ϵ,1+ϵ)Aπθk(st,at))L = \min\left(\frac{\pi_{\theta} (a_t|s_t)} {\pi_{\theta_{k}}(a_t|s_t)} A^{\pi_{\theta_{k}}} (s_t, a_t), clip \left( \frac{\pi_{\theta} (a_t|s_t)} {\pi_{\theta_{k}}(a_t|s_t)}, 1-\epsilon, 1+\epsilon \right) A^{\pi_{\theta_{k}}} (s_t, a_t) \right)

4.3 環境

時間ベースのイベント

時間的に均等な間隔(1秒、1分、1日など)で定期的にデータをサンプルします。基本的に、マーケットのデータがこの形式で、公開されていることが多いので、トレード戦略を考えるに一般的な方法です。

価格変動ベースのイベント

中値mの時間変化量が閾値βを超えるかどうかでデータをサンプルします。時間的に不規則な間隔でイベントが分割されることになります。

4.4 結果

異なる報酬関数・環境・強化学習アルゴリズムでBitcoinの過去データを用いて実験を行い、最終的に得られた損益を評価したところ
  • 報酬関数:リスクベースの報酬 < 損益ベースの報酬 < 目的ベースの報酬
  • 環境:時間ベースのイベント < 価格変動ベースのイベント
  • 強化学習アルゴリズム:PPO < A2C
という結果になったようです。一番性能が良かったのは、目的ベースの報酬×価格変動ベースのイベント×A2Cです。

5. まとめ

今回は、深層強化学習を用いた暗号資産のマーケットメイキング手法について調査しました。強化学習でタスクを効率よく学習させるには、状態と行動と報酬の設計がとても重要であり、その与え方によって結果が大きく変わることを論文から改めて学びました。今回は調査がメインでしたが、次回からは実際に手を動かして、検証していこうと思います。

最後に

次世代システム研究室では、ビッグデータ解析プラットホームの設計・開発を行うアーキテクトとデータサイエンティストを募集しています。興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集要項一覧からご応募をお願いします。 一緒に勉強しながら楽しく働きたい方のご応募をお待ちしております。

参考文献

[1] Sadighian, J. “Extending Deep Reinforcement Learning Frameworks in Cryptocurrency Market Making.” arXiv preprint, arXiv:2004.06985, 2020.

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事