文系人間が理転しようとするブログ

文章書き文系大学生がコード書き理系大学院生になろうとする日々

予備知識0からBTCFX自動売買botを作ろうとする日々(1日目)

タイトルに「予備知識0」と謳っているのは嘘ではない。

何を隠そう、Macの「ターミナル」を触ったのは今日が初めてである(デデンッ)

 

まぁ、そんなスタートだから、このブログはプログラミング経験者の方々の参考にはならないと思うので、あしからず。

 

さて、1日目にやったこと。

 

①Python3.6 インストール

②Anaconda インストール

Atom インストール

④AnacondaとAtomとターミナルをいじってみた

⑤まとめ・感想

 

①Python3.6 インストール

 

なぜ、BTCFX自動売買bot作るのに用いるプログラミング言語Pythonなのか。

それは・・・「Pythonbot作ってるネット記事が多かったから」である。

 

僕の希望や意志ではない。

単に良さげなコードのコピペ元が多そうだからである。

(ちなみに、機械学習Deep learningPythonが使える、ということは知っている)

 

そんなわけで、Pythonをダウンロードした。

https://www.python.org/

 

②Anaconda インストール

 

「Anaconda、なにそれ?」という感じだが、

こちらの記事の流れに従ってみた。

qiita.com

 

ちなみに、Anacondaで何を出来るようになるのかは、あまり分かっていない。

 

Atom インストール

 

Atom という「エディター」も、こちらの記事に従いインストールしました。

qiita.com

これで書くと、勝手に色付けしてくれるんで、わかりやすいです!(記事の受け売り)

 

④AnacondaとAtomとターミナルをいじってみた

 

手段と目的を混同してはいけない。

第一かつ最大の目的は「BTCFX自動売買botを作ること」である。

そして、目的のための手段が「Pythonを使う」ということである。

 

あわよくばPythonをマスター出来たら言うことなしだが、

あくまで「BTCFX自動売買bot」を作れれば、それでOK。

 

ということなので、

こちらの記事から(良記事)

futurismo.biz

ビットコインレートを取得する」というコードをまずコピペしてみた。

 

ターミナルに

$python

と書いて、その後、

 

>>> import pybitflyer

>>>

>>> api = pybitflyer.API()

>>> while True:

...     print(api.ticker(product_code = "BTC_JPY"))

をコピペして、実行すると、

 

{'product_code': 'BTC_JPY', 'timestamp': '2017-12-07T13:23:25.593', 'tick_id': 2939538, 'best_bid': 1792059.0, 'best_ask': 1793020.0, 'best_bid_size': 0.438, 'best_ask_size': 0.0384, 'total_bid_depth': 4177.18544695, 'total_ask_depth': 1075.88590719, 'ltp': 1793020.0, 'volume': 325991.84660535, 'volume_by_product': 35123.18411755}

{'product_code': 'BTC_JPY', 'timestamp': '2017-12-07T13:23:26.25', 'tick_id': 2939553, 'best_bid': 1792059.0, 'best_ask': 1793020.0, 'best_bid_size': 0.428, 'best_ask_size': 0.0384, 'total_bid_depth': 4177.27644695, 'total_ask_depth': 1072.62300718, 'ltp': 1792059.0, 'volume': 325989.85660535, 'volume_by_product': 35123.19411755}

と結果がブワァーーーーーーーっと溢れ出てきた。

 

(「おお!プログラミングしている感じだ!!!!」という感覚を初体験)

 

1BTCのBest Bitは1792059.0円みたいですね。うーん、高い。

 

ちなみに、「jsonライブラリ」を(何それ?)使うと整理出来るらしい。

→調べてみると、

【Python入門】JSON形式データの扱い方 - Qiita

JSON は「JavaScript Object Notation」の略で、「JavaScript 言語の表記法をベースにしたデータ形式」と言えます。しかし、表記が JavaScript ベースなだけで、それ以外のさまざまな言語で利用できます。JSON では、ある数値と、その数値の名前であるキーのペアをコロンで対にして、それらをコンマで区切り、全体を波かっこで括って表現します。」とのことでした。

 

ターミナルに

>>> import pybitflyer

>>> import json

>>>

>>> api = pybitflyer.API()

>>> while True:

...     print(json.dumps(api.ticker(product_code = "BTC_JPY"),

...                      sort_keys=True, indent=4))

...

と書くと、

 

{

    "best_ask": 1789999.0,

    "best_ask_size": 0.06109923,

    "best_bid": 1789001.0,

    "best_bid_size": 0.20002,

    "ltp": 1789999.0,

    "product_code": "BTC_JPY",

    "tick_id": 2942900,

    "timestamp": "2017-12-07T13:28:18.423",

    "total_ask_depth": 1073.88343335,

    "total_bid_depth": 4196.17998555,

    "volume": 326920.73029253,

    "volume_by_product": 35189.97194629

}

と、見やすくなって表示される。すごいぞ、jsonライブラリ。

 

⑤まとめ・感想

 

初日にしては、結構進んだんじゃね?という感じ(←コピペしかしてないからな!)

割と簡単に自動売買botが作れるんじゃないか?という感じ(←コピペしかしてないからな!)

 

しかし・・・予備知識0の初心者でも、調べれば何でも分かる。インターネットってすごい。

 

「自動売買bot作りたいなー」→「Pythonがいいっぽい」

「どうやって使うんだろう」→「Anacondaをインストールか」

「BTCの価格はどうやって分かるの?」→「このコードをコピペか」

jsonライブラリってなんだ?」→「へぇ〜そういうことなんだ。」

 

調べる→真似する→分からないことは調べる→真似する→・・・の無限ループ。

まったくもって手探り状態だけど、なんとか進めそうだ。

 

1日目終了。

予備知識0からBTCFX自動売買botを作ろうとする日々(その0)

尊敬する友人との会話から、「ビットコイン」というものの存在を知ってから早1年。

ビットコインやその根幹となるブロックチェーンの技術に関して勉強しつつ(主にネット記事あさり)、実際にビットコイン等仮想通貨のトレードをしてきた。

 

運良くそこそこの利益も出ているが、余計な事をしていなければ(主にチキってのショート)、もっと利益をGET出来ていたはず。

 

おとなしく寝かせておけばよかった・・・。という後悔は置いといて、仮想通貨トレードを通じて、「何か自分のためになることが出来ないか?」と考えていた折、ビットコイン自動売買botなるプログラムを作成し、主にBTC-FXでアルゴリズム取引を行っている人々がいるということを知った。

 

これは。。。

プログラミングの勉強になる+実際の利益も得られる(かも)

一石二鳥ではないか!!

(損する可能性もあるので、緊張感を持って主体的に学ぶこともできる。と思う)

 

ということで、HTMLやCSSの知識(ごくわずか)しかない文系大学生の僕は、「BTCFX自動売買botを制作する」ことを目標に、人生で初めて本格的にプログラミングを勉強してみることにしたのである。

 

これから「BTCFX自動売買botを作ろうとする日々」と題して、予備知識0からのプログラミング学習の過程を、自分への報告日誌がてら、ここに記すことにする。

 

(卒論やばいけどね・・・)