DEVGRU

プログラミングと競馬予想について書きます

bitcoin のシステムトレードをしている 〜2017/08/08の時点の話〜

bitcoinのシステムトレードをいろいろしているが、 エンジニアとして楽しいのはOHLC求めてテクニカル指標出して、あたりまでで、実際の売り買いとなるとそんなに結果が出なかったりするので、 またすぐに改良と称して最初の部分から作りなおしてしまっている。

ブログを書き始めた頃のものをversion6とよんでいるが、 マルチマーケット、マルチカレンシー対応、レンジバー対応したものがversion7、 Elasticsearchと機械学習を取り入れたものが現在のversion8となっている。

対応したマーケットは、bitFlyer、Zaif, coincheckだ。BITPointはこれからになる。

version8はまだ開発中で、データがある程度溜まってから 売買を行うモジュールtraderを実装することにしている。

現在、データ取得はbitFlyerがpubnubを使っていて、Node.js クライアントはまあまあ動いていくれている(Go言語のSDKはダメだった)ので、 データ取得はNode.jsを使っている。Zaif, coincheckはWebSocket で、これもNode.jsから使うのは容易である。

取得したデータは、RedisのPubSubを経由して、Goで書かれたサーバに送られる。 このサーバはRedisをSubscribeして取得した情報を1秒間バッファリングしてからElastisearchにBulk APIで送る。

以前はPostgreSQLを使っていたが、シングルクエリで複数レコードをインサートする術がGoのSQLインターフェースになかったので、 サボっていたところ、CPU使用率がえらいことになっていたのが、これで解消された。

Elasticsearchからデータを引っ張ってきて、機械学習でデータを綺麗にしてからテクニカル指標を計算し、トレンドを返してくれるサーバanalyzerはPython3で書いた。 というか、機械学習ライブラリをガッツリPythonのものを使ったのでそうせざるを得なかった。 ルーチンはJupyter Notebookを使って実装し、Bottle.py でWeb APIサーバにした。

jupyter.org

bottlepy.org

トレードについてだが、以下の書籍を忠実に実行するのが当初から目標にしている。みんな大好き(?)パンローリングだ。

ボリンジャーバンドとMACDによるデイトレード ──世界一シンプルな売買戦略 (ウィザードブックシリーズ)

ボリンジャーバンドとMACDによるデイトレード ──世界一シンプルな売買戦略 (ウィザードブックシリーズ)

この書籍はなるほどうまく行きそうなアルゴリズムがズバリ書いてあり、めんどくさいトレードの勉強なしにいきなりシステムトレードができる。

が、大きな落とし穴があり、この書籍で使用しているのは時間足ではなくレンジバーなので、 データ処理がだいぶ特殊なものになる。具体的にはOHLCの求め方だ。

レンジバーについてはいつか書く。

とにかく、この書籍の手法は基本的にレンジバーが必要で、レンジバーが作れないならこの書籍の内容は全く活きない。

トレードに必要なのは最新のテクニカル指標と、マーケットの現在の売値、買値などだが、 ときに過去数時間〜数日間の値動きが見たくなる。

そういう時には、Google Charts が使える。

Candlestick Charts  |  Charts  |  Google Developers

非常に綺麗にローソクが書け、さらに線グラフでボリンジャーバンドやSMAなどをオーバーラップできる。 マウスオーバーで値も見られる。

このような感じで、システムトレードの環境を作っている。

今後の課題はまだまだある。

  • フォワードテストによるアルゴリズム・パラメータの検証
  • スコアの記録

まだ俺達のシステムトレードは始まったばかりだ。

システムトレード 基本と原則 (ウィザードブックシリーズ)

システムトレード 基本と原則 (ウィザードブックシリーズ)

  • 作者: ブレント・ペンフォールド,長尾慎太郎,山口雅裕
  • 出版社/メーカー: パンローリング
  • 発売日: 2011/07/15
  • メディア: 単行本
  • 購入: 3人 クリック: 14回
  • この商品を含むブログ (2件) を見る

Python3ではじめるシステムトレード ──環境構築と売買戦略 (Modern alchemists series)

Python3ではじめるシステムトレード ──環境構築と売買戦略 (Modern alchemists series)

システムトレード 検証と実践 ──自動売買の再現性と許容リスク

システムトレード 検証と実践 ──自動売買の再現性と許容リスク