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
350
HelloMoon x Orca=HelloOrca
regonn
0
94
The Challenge of Automatically Configuring Numerai Compute Environment
regonn
0
59
Federated Learning 連合学習
regonn
4
1.5k
PLATEAUをデータベースに取り込んでみた
regonn
0
1.7k
古参Numerai参加者の戯言
regonn
1
2.3k
Nim + Cloud Run + TerraformでGCPにNimのサーバーレス環境を作る
regonn
1
600
S+ Camera Basicと似た環境をラズパイから構築してみる
regonn
0
460
衛星画像のゴルフ場写り込み判定AIモデルを作る
regonn
0
670
Other Decks in Technology
See All in Technology
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.1k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
AIチャットボット開発への生成AI活用
ryomrt
0
170
The Role of Developer Relations in AI Product Success.
giftojabu1
0
140
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
260
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
420
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
日経電子版のStoreKit2フルリニューアル
shimastripe
1
140
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
3
630
Featured
See All Featured
Happy Clients
brianwarren
98
6.7k
Ruby is Unlike a Banana
tanoku
97
11k
Code Review Best Practice
trishagee
64
17k
Docker and Python
trallard
40
3.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Why Our Code Smells
bkeepers
PRO
334
57k
Practical Orchestrator
shlominoach
186
10k
Teambox: Starting and Learning
jrom
133
8.8k
Making Projects Easy
brettharned
115
5.9k
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