【Python】移動平均を使った仮想通貨自動取引Botを作ってみる

スポンサーリンク

の続きで今回は↑の記事でCoinEXから取得したCETの価格データをもとに注文を出して売買する自動取引Botを作っていきたいと思います。

APIを使って注文を出す

超基本の話ですが、HTTPでサーバーから情報を取得したい場合はrequestを送りますが、こちらから情報を送りたい場合はPOSTと言います。

そしてpythonのライブラリであるrequestで使って、headerとbodyを調整しつつ向こうにpostしたのですが、いろいろあってうまくいかず頓挫・・・。(CoinEXの例を見てちゃんとpostできた人がおられましたら、やり方をコメントで教えてください Orz)

BitbankみたいにCoinEX公式が作ったpythonのライブラリねぇかなぁ~とgithub漁ったところライブラリは見つけたのですが、なんとPython2.7・・・。2018年の1月に作ったならpython3.6系で作ってくれよCoinEXさん・・・。などと思いつつRedditとかを探索していたところ、なんと有志の方がライブラリを作ってくださっていました。いやーインターネッツには神がいましたね。ホントありがてぇ~

ライブラリの使い方

まずはコマンドプロンプトにライブラリをインストールします。アナコンダの人はアナコンダプロンプトやjupyterlabのターミナル画面辺りでやってください。

##ライブラリのインストール

>>pip install coinex.py

##ライブラリのインポート

from coinex.coinex import CoinEx

##公開鍵と秘密鍵の登録

coinex = CoinEx(public, SecretKey)

##アカウント内の仮想通貨残高の確認

coinex.balance()

##成行注文の発注

coinex.order_market(‘CETBCH’, ‘buy’, 0.01)

coinex.order_market(‘CETBCH’, ‘sell’, 1.0)

ここで注意したいのが引数の設定なのですが、buyの時はbchの数量で売りの時はCETの数量になる点ですね。同じ量を売買したいなら、買い注文をした時のレスポンスに購入したCETの数量が入っているので、その数値を何らかの変数に入れて売り注文時に売却するCETの数量にその変数を指定すれば同じ量のCETの売買ができるかと思われます。

##指値注文の発注##

coinex.order_ioc(‘CETBCH’, ‘sell’, 100.0, 10.0)

##未約定注文の確認##

coinex.order_pending(‘CETBCH’)

##買い注文履歴の確認##

coinex.order_finished(‘CETBCH’)

##マイニング難易度の確認##

coinex.order_mining_difficulty()

他にも取引所から通貨を出金する(Withdraw系)の関数もありましたが、APIでのハックからの出金は最近の流行りですし、僕は出金系は多分使わないと思うので今回は省略しました。興味のある方は開発者のページに乗ってるのでどうぞ。

移動平均を使った自動取引Botの作成

次はこれまでやってきたことを組み合わせて自動で取引するBotを作っていきます。

終わり

自動取引は楽して儲かるとかいうものではありませんが、自分でトレードのロジックを考えて、それをPCに実行させるという点では結構楽しいと思います。僕は学生の頃プログラミングの勉強をしていたとき、入門書によくあるゲームのプログラミングとかは全然気乗りしなかったのですが、Botを作って金を絡めたことでプログラミングに対するモチベがめっちゃ上がりました。

皆がそうとは限りませんが、カネが絡むとモチベが上がるという人は結構いると思うのでプログラミングのモチベが上がらないという人はBotとかを作ってみたら、創作意欲が継続するんじゃないかなと思います。

そして今回は単純なトレード指標しか使っていませんが、ここからディープラーニングやニュースをテキスト分析した結果などをBotのトレードにおける判断材料にしてBotを高度にすると、俗に言われるアルゴやAIというものになります。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする