15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TradeWave使ってみた(PythonでBitCoin システムトレード)

Posted at

なぁにこれ

BitCoinのシステムトレードを自動化してくれるWebサービス。

スクリーンショット 2015-06-13 16.06.32.png

ぶっちゃけたところ、high & low の条件でのトレードくらいなら iPhoneアプリでもたくさんある。

これの珍しいところは、トレード用のAPIを組み込んだPython IDEがついてくること。
グラフの計算や表示、売買などが非常に楽にできる。
APIを使えばもちろん同じことが個人環境でもできるけど、そういう手間がない分敷居が低い。

つまり、興味本位でなんちゃってシステムトレードが体験できる!

スクリーンショット 2015-06-13 16.16.48.png

やってみよう

立ち上げてみよう

  • とりあえずアカウントを作ってくる
  • [Create a strategy]

スクリーンショット 2015-06-13 16.06.32.png

  • [Python strategy]

スクリーンショット 2015-06-13 16.12.42.png

  • 適当にストラテジー名(要は.pyファイル名)を決める

スクリーンショット 2015-06-13 16.16.25.png

  • 到着!

スクリーンショット 2015-06-13 16.16.48.png

グラフを出して計算してみよう

  • (リファレンス)[https://tradewave.net/help/api/]を開いてみよう

スクリーンショット 2015-06-13 16.29.26.png

  • 長々書いてあるけど、面倒なのでとりあえず [Code structure] > [An example strategy] をコピーして、IDEにぺたり

# A basic Moving Average Crossover strategy

def initialize():
    storage.invested = False

def tick():
    short_term = data.btc_usd.ma(30)
    long_term = data.btc_usd.ma(100)

    if (short_term > long_term) and not storage.invested:
        log('Buying BTC')
        buy(pairs.btc_usd) # market order
        storage.invested = True

    elif (short_term < long_term) and storage.invested:
        log('Selling all BTC')
        sell(pairs.btc_usd)
        storage.invested = False

def stop():
    if storage.invested:
        log('Clearing our position by selling all BTC holdings')
        sell(pairs.btc_usd)

  • 右側の [Save] > [BackTest] を押してやると、過去のBitCoinの取引履歴でサンプルが取引した場合を表示してくれます。

スクリーンショット 2015-06-13 16.34.04.png

なお、サンプルだと元金が10,000ドルで、1日で217ドル損した模様。

サンプルだし、仕方ないね…

APIについてもうちょっと

サンプルでは、普通の BTC/USD 為替相場だけ見てますが、システムトレード用のAPIだけあってやろうと思えばいろいろできます。

  • MA (単純移動平均線) と EMA(指数平滑移動平均線)
def tick():
    x = data.btc_usd.ma(30)
    y = data.btc_usd.ema(30)
    plot('MA', x)
    plot('EMA', y)

スクリーンショット 2015-06-13 16.52.05.png

  • RSI(Relative Strength index)
def tick():
    x = data.btc_usd.rsi(30)
    plot('RSI', x, secondary=True)

スクリーンショット 2015-06-13 16.59.11.png

  • ほかにも、ろうそく足(Candle data)や、いろいろな計算が数行で考えなしに使えます。

    • VWAP
    • MACD
    • AROON
    • SAR
    • StochRSI
    • STOCH
    • MFI
    • ADX
    • ATR
    • MOM
    • TSF
    • STD (Standard Deviation)
    • など

難点を言えば…

  • 計算がちょっと遅い
  • IEDとして使いやすいかといえばそうでもない
    • ちゃんとしたもの書くなら、Sublime text で書いてコピペするとか
  • ここで組んだシステムで実際に取引するには、利用費が必要

結局は

無料で使えるのでとっつきやすいし、Python初心者の私でも悩まずにわかるので、考えはあるけどAPIまわりの技術障壁に阻まれてた人におすすめ!

これでやってみていけそう、面白いと思ったら、自分でAPI入れてサーバ立ててやってみてもいいかと。

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?