11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

深層強化学習(A2C)を用いたシステムトレーディング

Last updated at Posted at 2021-07-24

はじめに

 近年、人工知能ブームにより、人工知能を使ったトレーディング手法が盛んである。そこで、今回は深層強化学習を用いたシステムトレーディングを実施した。
まず、実際の深層強化学習モデルである。agentの行動として、 BUY、HOLD、SELLの三つの内一つを選択する。環境の戻り値として、状態(今現在保有しているポジションの価格、市場価格、手持ちのキャッシュ)、報酬(手持ちのキャッシュの変化値(含む益も含む))、終了(取引の終了か否か)、情報(ターミナルにディスプレイする情報)を返す。

rl_flow.png

使用データについて

トレンド傾向の掴みやすさから、yahoo financeからGSPCの日足を使用した。

訓練データの期間:2015/1/1 - 2017/6/30
テストデータの期間:2017/7/1 - 2021/1/1

以下ソースコード

方策学習

価値学習(Q学習)は、Q値を最大化するように行動する。それに対して、方策学習は方策π(s)からサンプリングを行い確率的な行動をとる。

TD学習

TD学習(時間的差分学習: Temporal Difference Learning)とは、代表的な価値ベース手法一つである。逐次的にデータ更新ができるのが特徴。

TD = MC(モンテカルロ方策) + DP(Dynamic Programming: 動的計画法)
MC: 経験から学習
DP: 直後の状態の価値から学習

以下、TD学習での状態価値の更新式。

\Delta V(s) = r + \gamma V(s_{t+1}) - V(s_t)  \\

A2C1

 A2C(Advantage Actor-Critic)とは、A3C(Asynchronous Advantage Actor-Critic)から、非同期の部分を抜いたものであり、A3Cと比べてGPUの負荷が低い。
 Q学習で使用したQ値は、状態価値関数V(s)とアドバンテージ値A(s, a)の2つに分解できる。このアドバンテージ関数とは、ある状態において、ある行動が他の行動に比較しどの程度優れているかを表す。価値関数とは、その状態に優位度を表す。
 つまり、Actorはアドバンテージ値を通しQ値を学ぶ。これによりある行動の評価は、その行動がどれだけ良いかだけでなく、どれだけ良くなるかにも基づいて行われる。アドバンテージ関数の利点は、状態価値関数V(s)をベースラインとして使用することで、政策ネットワークの高い分散を減らし、モデルを安定させる。

A(s_t,a_t) = Q(s_t,a_t) - V(s_t) \\

a2c_frow.png

損失関数2

損失関数(更新式)は、損失関数(Actor)と損失関数(Critic)に分解できる。

L = L_v + L_π

損失関数(Actor)と損失関数(Critic)は以下の式に分解できる。アドバンテージ値A(s, a)は、一般的なTD学習での状態価値の更新式より、時系列を加味した形式になっている。Hはエントロピー。

L_v = (A(s_t,a_t))^2 \\
L_π = -log(π(a_t,s_t))A(s_t,a_t) - \beta H(π(s_t)) \\
A(s_t,a_t) \approx TD error = r + \gamma V(s_{t+1}) - V(s_t)  \\
H(π(s_t)) = 1/2(log(2π \sigma ^2) + 1) \\
\beta:ハイパーパラメータ、\gamma:割引係数、\sigma:分散

売買ルール

1.空売りは認めない
2.ポジションを持っている場合、追加注文を出せない。
3.最後のステップでポジションを全て売却する。
4.ポジションは全買い、全売り
5.所持金は1000000ドル

実装と結果

ソースコードはこちら

前のqlearning、sarsaよりも、大幅に収益性、勝率、トレード回数とともに、改善された。

Unknown.png

ソースコードはこちら

  1. V. Mnih, A. P. Badia, M. Mirza, A. Graves, T. Lillicrap, T. Harley, D. Silver, and K. Kavukcuoglu, “Asynchronous methods for deep rein- forcement learning,” in International conference on machine learning, (2016), pp. 1928–1937.

  2. S. Kuutti, R. Bowden, H. Joshi, R.D Temple, and S. Fallah, "End-to-end Reinforcement Learning for Autonomous Longitudinal Control Using Advantage Actor Critic with Temporal Context", IEEE Intelligent Transportation Systems Conference (ITSC),(2019)

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?