SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
BitMech
探索的
トレーディングシステム
注意
本スライドは、投資勧誘や特定銘柄への投資を推奨するものではありません。投資に
関する最終決定はご自身の判断でなさるようお願いいたします。
本スライドの運用実績その他の情報は、今後の運用成果を予想または示唆するもので
はなく、また、将来の運用成果をお約束するものでもありません。
投資は自己責任でね☆
目次
ベイズ最適化でトレーディングボットを最適化してみた
https://github.com/mainyaa/gekkoJaponicus
強化学習でトレーディングボットを最適化してみた
https://github.com/mainyaa/bitmech
ベイズ最適化でトレーディング
ボット最適化してみた
GekkoJaponicus
BitCoin市場の悪いところ
BitCoinはハイリスクハイリターン。
そもそも金融商品じゃないため、国の保証はありません。
税金もそれなりにかかります。利益は雑所得。
個人だけじゃなく取引所自体もハッキングの被害にあっている。
まだまだ未熟な技術、コミュニティ
BitCoin市場のいいところ
取引手数料0.01%ぐらい。入金は100円ぐらいから出来る
取引所が山ほどある。パスポートがあれば外国の取引所でも取引できる
取引所が24時間空いている。ほぼすべての取引所がAPIとSDKがある
ファンダメンタル要素がほとんど無い。テクニカルオンリーで行ける
取引の約定まで10分ほどかかる。超短期トレードがない。
常に成長しています。市場も資本も技術もコミュニティも。
BitCoinトレーディングボット
機械学習には、パラメーターが膨大な数がある。
グリッドサーチではとても効率が悪いが、ランダムサーチよりも早く結果を得たい。
→ベイズ最適化
ベイズ最適化
ある関数があるときに、そのパラメータが取りうる上限と下限を渡すだけで、なんども試
行して、探索的に最大の戻り値とそのパラメーターを探す
pip install bayesian-optimization
https://github.com/fmfn/BayesianOptimization
ベイズ最適化の詳細はこちら! -> 機械学習のためのベイズ最適化入門
ベイズ最適化
Gekkoというトレーディングボットがあったので、こいつのパラメータを最適化しようとした
ら、同じようなことをGeneticProgrammingでやってる人が居たので、相乗りした
https://github.com/mainyaa/gekkoJaponicus
ベイズ最適化
"MACD":{
"candleSize":(1,60), # tick per minute
"historySize":(1,60),
"short": (0.1,30), # short EMA
"longWeight": (1.,5.), # long EMA(short*longWeight)
"signal": (1,18), # shortEMA - longEMA diff
"thresholds.down": (-5.,0.), # trend thresholds
"thresholds.up": (0.,5.), # trend thresholds
"thresholds.persistence": (0,100), # trend duration(count up by tick) thresholds
}
ベイズ最適化
bo = BayesianOptimization(gekko_search, settings[Strategy])
bo.maximize(init_points=100, n_iter=500)
max_val = bo.res['max']['max_val']
max_params = bo.res['max']['max_params']
※gekko_searchは、BTC_USDTの365日の履歴から、ランダムに開始日付を決
め、そこから21日間を使用してBacktestを行う。それを100回繰り返し、利回りの平均
を戻り値とする
※評価フェーズでは訓練に使用した365日以外の直近21日をテストデータとする
結果
ベイズ最適化
"MACD": {
"candleSize": 50.37603262287613,
"historySize": 49.11385249240558,
"short": 11.190538130227413,
"long": 31.9361776661688,
"signal": 8.345598472515947,
"thresholds": {
"down": -2.647355926611602,
"up": 4.830104575041095,
"persistence": 25
}
},
小数
最適化で得られる数は小数である。
人間のトレーダーは見ているトレーディングプログラムのせいで知らないうちに整数とい
う制約を課されている。
キャンドルサイズ、EMAの数値など、あらゆるものは小数を使うことでより細かくなる
voting
複数指標をまとめたトレーディングシステムを作りたい
利回りr、n個の指標
w=r/nを指標のウェイトとしてBUYの指標の合計が0.5を超えたらBUYする
→うまく行かなかった。AND条件になるため、売買回数が少なくなる
Gekkoの限界にぶち当たる
単一指標しか動かない
JavaScriptじゃなくてPythonで書きたい
Gekkoのソース読んだらすごいシンプル。これなら自分でかけるんじゃない?
フルスクラッチでPythonで書きました!→ BitMech
https://github.com/mainyaa/bitmech
強化学習でトレーディングボッ
ト最適化してみた
BitMech
強化学習
AlphaGoで有名な手法
探索的に
強化学習の詳細はこちら! -> ゼロからDeepまで学ぶ強化学習
強化学習
試行錯誤を通じて与えられた「環境」における「価値を最大化するような行動」をエージェ
ントに学習させる手法
pip install keras-rl
git clone https://github.com/matthiasplappert/keras-rl
python examples/dqn_cartpole.py
強化学習の詳細はこちら! -> ゼロからDeepまで学ぶ強化学習
強化学習
BTC_JPYのOHLCデータと、PPO, RSI, STOCHRSIのデータが環境
BUY, SELL, HOLDの3アクション
keras-rl を使ってDQNで学習させてみた
https://github.com/mainyaa/bitmech/blob/master/bitmech/dqn_backtest.py
Layer (type) Output Shape Param #
=============================================================
dense_1 (Dense) (None, 4, 4320, 16) 128
activation_1 (Activation) (None, 4, 4320, 16) 0
dense_2 (Dense) (None, 4, 4320, 16) 272
activation_2 (Activation) (None, 4, 4320, 16) 0
dense_3 (Dense) (None, 4, 4320, 16) 272
activation_3 (Activation) (None, 4, 4320, 16) 0
flatten_1 (Flatten) (None, 276480) 0
dense_4 (Dense) (None, 3) 829443
activation_4 (Activation) (None, 3) 0
=============================================================
Total params: 830,115
Trainable params: 830,115
Non-trainable params: 0
強化学習
memory = SequentialMemory(limit=100000,
window_length=WINDOW_LENGTH)
policy = BoltzmannQPolicy()
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory,
nb_steps_warmup=10,
target_model_update=1e-2, policy=policy)
dqn.compile(Adam(lr=1e-3), metrics=['mae'])
結果
強化学習
fin-py studyまでに学習が終わりませんでした><
来月ぐらいには本番稼働したいな
トレード情報: currency, asset, startTime, endTime, timespan, market, balance,
profit, relativeProfit, startPrice, endPrice, trades, startBalance, alpha
リスク指標: volatility, beta, hpm(0.0)_1, lpm(0.0)_1, VaR(0.05), CVaR(0.05),
Drawdown(5), Max Drawdown
リスク調整済み指標: Treynor Ratio, Sharpe Ratio, Information Ratio
VaR調整済み指標: Excess VaR, Conditional Sharpe Ratio
下方部分積率リスク調整済み指標: Omega Ratio, Sortino Ratio, Kappa 3 Ratio,
Gain Loss Ratio, Upside Potential Ratio
ドローダウンリスク調整済み指標: Calmar Ratio, Sterling Ratio, Burke Ratio
BitMechで出来ること
Backtest機能、realtime取引機能、realtime dry-run機能
Import機能:poloniexとbitflyerのOHLC, volume, trade数取得
hyperoptによるベイズ最適化
レポート機能:モダンポートフォリオ理論、ポストモダンポートフォリオ理論、CAPMなどに
使われる各種リスク調整済み指標が20個ぐらい(ただし、比較対象となるベンチマーク
は今のところマーケットそのもの)
DQNによる複数指標込みの学習
BitMechの今後
複数の通貨ペアでの最適ポートフォリオ探索(ブラックリッターマンモデル、モーメンタ
ム、バリュー、グロース)
マーケットニュートラル、ストップロス最適化、Exit戦略、ヘッジ最適化、日次で学習&最
適化
注文時にorderbook/spreadを見て、t分以内で約定しそうな価格の上限下限の推測
現物以外、レバレッジ、オプション、先物、裁定
しばらくやらないこと:ICO、Windows対応、WebUI
まとめ
BitCoinいいよ
ベイズ最適化いいよ
強化学習いいよ
BitMechちゃんをよろしくお願いします。

Contenu connexe

Plus de Kazuyuki Mori

モダンブラウザストレージ
モダンブラウザストレージモダンブラウザストレージ
モダンブラウザストレージKazuyuki Mori
 
GoPiGo2で遊んでみた
GoPiGo2で遊んでみたGoPiGo2で遊んでみた
GoPiGo2で遊んでみたKazuyuki Mori
 
Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Kazuyuki Mori
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワークKazuyuki Mori
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Kazuyuki Mori
 

Plus de Kazuyuki Mori (6)

モダンブラウザストレージ
モダンブラウザストレージモダンブラウザストレージ
モダンブラウザストレージ
 
GoPiGo2で遊んでみた
GoPiGo2で遊んでみたGoPiGo2で遊んでみた
GoPiGo2で遊んでみた
 
Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Dernier (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

BitMech 探索的 トレーディングシステム fin-py study #1