Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
仮想通貨自動売買BOTを 強化学習(ChainerRL) で作ってる話
Search
regonn
August 31, 2019
Technology
2
4k
仮想通貨自動売買BOTを 強化学習(ChainerRL) で作ってる話
@regonn_haizine Chainer Meetup #10 2019/08/31
regonn
August 31, 2019
Tweet
Share
More Decks by regonn
See All by regonn
Submission with Numerai Compute using GCP Batch
regonn
0
470
HelloMoon x Orca=HelloOrca
regonn
0
110
The Challenge of Automatically Configuring Numerai Compute Environment
regonn
0
76
Federated Learning 連合学習
regonn
4
1.6k
PLATEAUをデータベースに取り込んでみた
regonn
0
1.7k
古参Numerai参加者の戯言
regonn
1
2.4k
Nim + Cloud Run + TerraformでGCPにNimのサーバーレス環境を作る
regonn
1
620
S+ Camera Basicと似た環境をラズパイから構築してみる
regonn
0
500
衛星画像のゴルフ場写り込み判定AIモデルを作る
regonn
0
720
Other Decks in Technology
See All in Technology
製造業の会計システムをDDDで開発した話
caddi_eng
3
960
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
680
ペアプログラミングにQAが加わった!職能を超えたモブプログラミングの事例と学び
tonionagauzzi
1
150
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
110
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
4
1.1k
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
2
140
AWS CDK コントリビュート はじめの一歩
yendoooo
1
120
ルートユーザーの活用と管理を徹底的に深掘る
yuobayashi
6
730
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
240
コード品質向上で得られる効果と実践的取り組み
ham0215
2
200
アプリケーション固有の「ロジックの脆弱性」を防ぐ開発者のためのセキュリティ観点
flatt_security
32
11k
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
130
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Rails Girls Zürich Keynote
gr2m
94
13k
Side Projects
sachag
452
42k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
4 Signs Your Business is Dying
shpigford
183
22k
Bash Introduction
62gerente
611
210k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
12
610
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
Transcript
仮想通貨自動売買BOT を 仮想通貨自動売買BOT を 強化学習(ChainerRL) 強化学習(ChainerRL) で作ってる話 で作ってる話 @regonn_haizine Chainer
Meetup #10 2019/08/31
自己紹介 自己紹介 Twitter: @regonn_haizine Twitter: @regonn_haizine 島根県松江市でフリーランス 島根県松江市でフリーランス 前回のChainerMeetup に続いて2
回目の 前回のChainerMeetup に続いて2 回目の LT LT 機械学習系のPodcast やYouTube 機械学習系のPodcast やYouTube regonn&curry.fm regonn&curry.fm 田中TOM 田中TOM 趣味 趣味 俳句、茶道、VTuber 俳句、茶道、VTuber
None
なぜ自動売買BOT を 作ろうと思った? 以前から自動売買には興味があった 以前から自動売買には興味があった MetaTrader MetaTrader jiji2 jiji2 freqtrade
freqtrade
今までの自動売買 今までの自動売買 買いシグナルと売りシグナル( ロジック) 買いシグナルと売りシグナル( ロジック) 強化学習の自動売買記事もあったけど、数 強化学習の自動売買記事もあったけど、数 値データでの学習がメイン 値データでの学習がメイン
ChainerMeetup#9 ChainerMeetup#9 Chainer での値動き予測モデルの話を聞く Chainer での値動き予測モデルの話を聞く LT でVAE を利用してチャートから解析する話 LT
でVAE を利用してチャートから解析する話 を聞いた を聞いた
チャートを読み取って チャートを読み取って 売買するBOT を作る 売買するBOT を作る シグナル系の売買と違って、自動的に最大 シグナル系の売買と違って、自動的に最大 の利益を目指して売買をしてくれる? の利益を目指して売買をしてくれる?
chainerrl-visualizer とかが利用できれ chainerrl-visualizer とかが利用できれ ば、チャートのどこが重要な部分なのかも ば、チャートのどこが重要な部分なのかも 解析できそう 解析できそう
仮想通貨売買 仮想通貨売買 日本株は売買用のAPI が用意されていなか 日本株は売買用のAPI が用意されていなか ったり、銘柄も多く業界によっても値動き ったり、銘柄も多く業界によっても値動き が違ったりするため、機械学習系の自動売 が違ったりするため、機械学習系の自動売
買は不向きと判断 買は不向きと判断 FX よりも仮想通貨の方が取引・データ取得 FX よりも仮想通貨の方が取引・データ取得 ができるAPI やライブラリが揃っていた ができるAPI やライブラリが揃っていた 追証無しで買い・売りポジションのレバレ 追証無しで買い・売りポジションのレバレ ッジ取引ができる取引所等もあるため、も ッジ取引ができる取引所等もあるため、も しもの時も安心? しもの時も安心?
実装の話 実装の話 なるべく、OpenAI Gym の なるべく、OpenAI Gym の Atari の環境に合わせた
Atari の環境に合わせた
Observation の画像 Observation の画像 ゲームPacman のカラーマップを参考にして ゲームPacman のカラーマップを参考にして 値動き( ロウソク)
チャートを出すように 値動き( ロウソク) チャートを出すように
直近の4 枚分のチャート 直近の4 枚分のチャート 画像からAction を決める 画像からAction を決める Action
Action は今回4 種類 Action は今回4 種類 買う(Buy) 買う(Buy) 売る(Sell) 売る(Sell)
待つ(Wait) 待つ(Wait) 決済(Close) 決済(Close) 投資の格言 投資の格言 「待つも相場なり」 「待つも相場なり」
報酬について 報酬について ポジション取得後、利益がでる ポジション取得後、利益がでる 目標ラインを追加( ピンクの線) 目標ラインを追加( ピンクの線) ラインを超えて決済r=1 ラインを超えて決済r=1
ラインを超えず決済r=-1 ラインを超えず決済r=-1 ロスカット強制決済r=-2 ロスカット強制決済r=-2 取引0 を防ぐために45 分の間に 取引0 を防ぐために45 分の間に 1 取引終えなければ r=-1 1 取引終えなければ r=-1
Agent はRainbow Agent はRainbow ChainerRL でExample にコードはあるので、そ ChainerRL でExample にコードはあるので、そ
れを参考にする。 れを参考にする。 https:/ /github.com/chainer/chainerrl/tree/ https:/ /github.com/chainer/chainerrl/tree/ master/examples/atari/reproduction/rainb master/examples/atari/reproduction/rainb ow ow
chainerrl-visualizer chainerrl-visualizer でも動いた(※)
結果 結果 evaluation は500 分間自由に取引( ロスカットあり、 45 分の制限は解除) して、どれだけr を大きくできるか
所感と今後 所感と今後 自分で強化学習の環境をつくる場合( 特に画像) 自分で強化学習の環境をつくる場合( 特に画像) はOpenAI Gym の仕様に合わせたほうが はOpenAI
Gym の仕様に合わせたほうが Chainerrl 等でも扱いやすい Chainerrl 等でも扱いやすい 画像サイズとかフレーム枚数とかでハマった 画像サイズとかフレーム枚数とかでハマった train_agent_with_evaluation とかも使え train_agent_with_evaluation とかも使え チャート指標ボリンジャーバンドとかを入れる チャート指標ボリンジャーバンドとかを入れる と精度を上げられるか試す と精度を上げられるか試す 報酬がどれだけ利益が出ても1 なので、罰の方 報酬がどれだけ利益が出ても1 なので、罰の方 も含めて工夫したい も含めて工夫したい
現状のコード 現状のコード Github で公開しています。 Github で公開しています。 ドキュメント等無くオレオレコードですが、 ドキュメント等無くオレオレコードですが、 python make-db.py
python make-db.py python trade.py python trade.py を実行すれば動いてくれるはず を実行すれば動いてくれるはず https:/ /github.com/regonn/chainerrl- https:/ /github.com/regonn/chainerrl- cryptocurrency-trader cryptocurrency-trader