仮想通貨(BTC)を自動取引するプログラムを書いてみた
仮想通貨(BTC)を自動取引するプログラムを書いてみた
自分でどんなもんが作れるかを見てみたかったので作ってみました。
結果から言うとまともに利益を上げられるものはできていません笑
pythonが好きなのですべてpythonで書きました。
ライブラリには主にdjangoとccxtを使い、ccxtは微妙に拡張しています。
構成
AWS(nginx) ⇔ django(uwsgi) ⇔ mysqld ⇔ トレードアルゴリズム ⇔ ccxt
取引をするアルゴリズムをバッチ処理的に実行し、基本永遠にループ処理します。
トレードアルゴリズムはweb画面で制御できるようにしました。データベースを通してトレードアルゴリズムは引数を受け取るイメージです。
ちなみに画面はこんな感じ、cssはUIkitにしてみました。
アイコンはaice9uさんに作っていただきました。
トレード処理はベースとなるbase/trade.pyを作り、それを継承しentry()とmake_a_deal()関数をオーバーライドすれば動くように作りました。割と簡単に新しいトレードを作れます。
基本、テクニカル分析でトレードしています。
取引所からローソク足データをとってきて、ググって出てきたテクニカルの計算式を関数化してサクッと呼び出せるようにした感じです。
システムトレードを作ってて思ったこと
1年ほどそこそこ真面目に取り組みましたが、やはり安定して利益を上げるのは難しいです。
テクニカル通りに取引してもダメなんですよね、テクニカルはチャートで起こった結果の現れなので。。
TradingViewのような解析ツールが必須だなあと最近痛感しています。勝ちと負けの特徴をつかんで少しずつ改善することがいい方法だと今は思っています。
同じようなもの作る方へ
Oandaの取引所なら為替でも同じようなことができます。
トレードアルゴリズム部分をREST APIとかで制御するのもありかなあと思います。
予定
イーサリアムのオライリー本かったのでそれを勉強する予定です。
誰かいいトレード方法知ってる方はぜひ教えてください笑
Discussion