【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というものになります。

プログラミングを挫折せず最短で習得する方法


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上にあたってはもはや出来て当たり前のスキルとなりつつあります。こういう話はテレビや雑誌でも最近増えてきたので、知らない人はいないでしょう。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。



それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」「エンジニアとして若いうちから高収入を得たい」という気持ちから一念発起して侍エンジニアのwebサービスコースに申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解できました。


侍エンジニアでは様々なコースが用意されており、PHPなどを使ってWebサイトやWebアプリを作ってみたい人からPythonでデータサイエンティストやAIエンジニアになりたい人にもおすすめです。(ちなみに現在、侍エンジニアに申し込むと25歳以下の学生の方であれば、受講料が20%offなるので超お得です。)







巷でいわれるように侍エンジニアのようなマンツーマンのプログラミングスクールは値段が少し高いのは事実ですが、その分やる気さえあれば間違いなくプログラミングスキルが身に付くので、僕はいいと思います。プログラミングは大勢で授業を受けるよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶより絶対にモノになります。


最近はオンラインで無料でプログラミングが学べるというようなサイトも確かにありますが、自分のお金を払って勉強した方が、払った分の元を取ろうと必死になれるのでプログラミングの学習効率は絶対に上がります。エンジニアの間では、プログラミングは好きなやつが独学で勉強するものだという風潮がありますが、もうそういうのは時代遅れだと思います。僕の意見としてはプログラミングはプログラミングスクールに通って勉強するべきです。


スポンサーリンク

シェアする

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

フォローする