Overview
仮想通貨市場のデータ分析及び仮想通貨botのテクニカルなデータ分析についてまとめる.
定性的な問題解決としての分析は📊仮想通貨トレード仮説検証事例集に.
クリプトデータ取得
取引所から取得する方法, ヒストリカルデータを提供するサービスから取得する方法, 自作の方法がある.
OHLCをAPIで取得する
OHLCはCandlestick, Klineと表現されることもある.
💡約定履歴からOHLCを自作
OHLCを自作する方法. OHLCVはそれを提供する外部サービスからAPIで取得してデータ分析に使うが, それを約定履歴から自作する.
キーワード的にはresample.
- https://github.com/richmanbtc/crypto_data_fetcher
- 【プログラム更新】約定データから秒足をつくる #2 | 謎の技術研究部
- [Python OHLCV] bitFlyer の過去の約定情報からオレオレOHLCVデータを作成する|ああああ|note
クリプトデータソース
OHLCデータ提供サービス
cryptowatch
2023.09閉鎖, ではなくKrakenに結合(日本からは… ?).
クリプト市場の情報を取得できるサイト. OHLCVも取得できる. 取引所のAPIではリアルタイムの情報は取得できるが, そこから特定期間におけるOHLCV情報は自作しないといけない場合がある. cryptowatchのAPIを利用することでOHLCを取得することが可能.
api sdkはPython/Go/Node.jsの3種類.
https://github.com/cryptowatch
-
OHLC取得詳細
doc: https://docs.cryptowat.ch/rest-api/markets/ohlc
markets/[exchange]/[pair]/ohlc
-
現在時刻より6000本以上前のOHLCデータを取得することはできない
現在時刻より6000本以上前のOHLCデータを取得することはできない制限あり!
とくに1分足(periods=60)だと4日程度.
Cryptowatchで過去6000件以上のローソク足を保存して自前で価格データを蓄積する | 文系でもわかる!BitcoinのBOT自動売買トレードの始め方
-
Cryptwatch API有料化
2020/9/9 前後から Cryptowatch API が有料化. そのため取引所APIからOHLCVを自作する人も現れた.
-
References
CryptoCompare
cryptowatchよりもAPI制限がゆるい.
CryptoCompareのAPIを使ってBitflyerのBTCFX価格を取得しよう! | 文系でもわかる!BitcoinのBOT自動売買トレードの始め方
💡Binance Public Data
🏦Binanceのデータが過去を遡って取得できるという太っ腹データソース.
Binanceのデータ限定なものの, Binanceは最も取引量が多いのでBinanceのデータを分析することはクリプト市場の縮図といってもいい.
メモ.
- OHLCならば1分足から取得可能.
- OIは5分足単位で取得可能.
- Liquidationはない.
-
BitMEX public data
Binance Public Dataとよくセットで話題になるものの, 今webからアクセスするとなにも表示されない. APIからは未検証. 日本からのアクセスを禁止している?
CoinAPI.io
Kaiko
法人向け?申し込まないと使えないようだ.
デリバティブデータAPI取得
無料だと限定的だけど直近1週間くらいは取得できるので貯める必要がある.
ライブラリ
📝仮想通貨: バックテスト
ツール
🔧Nagi: BacktestAssistant
バックテスト補助ツール「BacktestAssistant v3.0」|Nagi|note
情報係数による投資指標の評価
あるテクニカル指標に従って価格変動を予測したとき, その指標の評価に情報係数が使える.
⚖バックテストツール比較
📈TradingViewのストラテジテスターをつかうと, ローコードでバックテストができるので手早く仮設するならばこれ.
TradingViewは簡易バックテスターなので, 複雑な分析をするには自作する必要がある. 🔧backtesting.pyは有名なバックテストライブラリ. 自作ツールをnoteで売っている人もいる.
💡ブルートフォース仮想通貨エッジ探究
組み合わせ総当りによるエッジ探究.
武器を持たない新参botterが収益機会を得ることは出来るか?|nupinupinu|noteより.
以下の要素による掛け算の全探索バックテストでエッジを探す.
- APIがある取引所
- 通貨ペア
- 現物/先物/マージン
- ローソク足
- ルールベースロジック
- ロジックパラメータ
💡バックテストではOrderbook Snapshotデータが最も精確
Introduction to Backtesting - shrimpyより.
バックテストのデータには3種類ある.
- Candlestick data
- tick-by-tick trading data
- Orderbook Snapshot data
多くの場合はOHLCVが使われる. なぜならばそれがもっとも手軽に手に入るから. しかし, OHLCVは現実をうまく反映していないことが多い. tick-by-tickはおそらく約定履歴. OHLCVよりも情報量が多いが中途半端なデータなのでこれも推奨ではない. 一番いいのは, Orderbookのスナップショットデータ.
ポジショントークかもしれない. しかし, OHLCVベースのバックテストがうまく機能しないというのは別の人も言っていた気がした. 近年のクリプト裁量トレード手法の📝オーダーフロー分析はOHLCVではなく板を見ている.
✨ファンダメンタルズやテクニカルを対する第三勢力としてのデータ駆動トレードの台頭
また近年のトレンドとして扱えるデータが増えたということもあるだろう.
✨クリプトは株や為替に比べて個人投資家がアクセスできる情報が多い
Examples
ベクトル化バックテスト
📚日給300万円のSS級トレーダーが明かす botterのリアル - richmanbtc(2021)
イベントベースバックテスト
- 仮想通貨取引BotのBackTestチュートリアル - alpha tech blog
- 仮想通貨Botで効率的にバックテストを回すためのコード|minaul|note
- 仮想通貨のbotを作りたいが、みんなどう書いてるの?
References
- 実力?いいえ、偶然。~相関と因果とカーブフィッティング~ | 考えるハリネズミ
- カーブフィッティング防止のための基本のキ | 考えるハリネズミ
- 仮想通貨botter Advent Calendar 2021 13日目: Pythonとccxtによるバックテスト実装例
📝仮想通貨: フォワードテスト
References
- BFS-Xでフォワードテストを行うエアトレモジュール|くもすけ|note
- bitFlyerフォワードテストフレームワーク「mockFlyer」|mockflyer|note
- 新bot投入したら一瞬で追い抜いた!【高頻度bot実況#2】 - YouTube
高頻度Botはバックテストよりフォワードテスト
この意味するところは, テスト環境の構築のための難易度が高いということ.
;; https://twitter.com/regolith1223/status/1064081786727088128
高頻度BOTのようなバックテストが難しいor信頼できないストラテジーにとっては、こういった「事後」検証は特に有効だと思う。より一般的なテクニカル系のストラテジーでも、机上と実際のギャップを埋めるためのヒントが得られるかもですね。
📝仮想通貨データレイク
データ分析基盤の構築. データをどうやって貯めるか?
ref. 📝時系列データベース(TSDB)
Biqqueryとデータポータルを用いたデータ分析とバックテスト
仮想通貨の自動売買に挑戦した話 | コーラは1日500mlまで
やっている人みかけないけど案外よい着眼点なのでは?
時系列DB InfluxDB
🔧InfluxDBの活用.
💡GASを使った仮想通貨データ定期取得
📝Google App Scriptをつかったデータ取得.
クラウドデータレイク
- AWS
- GCP
- https://github.com/richwomanbtc/gcpts
- pandas x Bigquery.
- https://github.com/richwomanbtc/gcpts
References
仮想通貨: データ可視化
🔧Nagi: ChartCreator
matplotlib/plotyでの可視化ツール.
時系列データ可視化ツール「ChartCreator v3.1.8」|Nagi|note
それとは別に, 📝Altairでの可視化ツイートはすごい.
https://twitter.com/Nagi7692/status/1301175266580938753
🔧ko0hi/pybotters-dealer
ペ(Pe)さん. 画面表示が面白い.
https://github.com/ko0hi/pybotters-dealer
データ分析シェア
🔗References
- シストレのススメ【中級者向け】|Uki & Hoheto (株式・仮想通貨トレーダー)|note
- Ranked L/S - Turning a formula into a strategy
- フォワードテストシリーズ第一回 〜バックテストとフォワードテスト〜|minaul|note
- フォワードテストシリーズ第二回 〜パラメータ最適化と優位性の評価〜|minaul|note
- Tools for Trading on Bybit: An Extensive List (Updated 2023) | Bybit Learn
- 【実践型】python逆引き時系列データ加工&可視化(pandas/numpy)|Nagi