仮想通貨の1分足 OHLC ヒストリカルをcsv形式で取得する方法

システムトレードにおいて自分が建てた戦略が、相場に対して本当に有効かどうかをバックテストをする際には過去の値動きであるヒストリカルデータが必要となります。

1分足以下の OHLCで、長期間(数年分)のものは探すのが難しいです。なので今回は1日分の短期間のOHLCデータを取得する方法を取り上げていきます。

OHLC ヒストリカルデータとは

OHLC とは、通貨の Open、High、Low、Close の頭文字を取ったもので「始値・高値・安値・終値」の事です。

その時系列データをヒストリカル・データと呼ぶ。出来高 (Volume) を入れて「OHLCV」とすることもある。

1分足は使い勝手が良く加工がしやすいためシステムトレードのバックテストにはたいてい1分足が使われます。

というのも1分足のOHLCデータがあれば、そこから10分足、1時間足、日足、と何でも生成できるため、より詳細な検証も可能にしてくれるので1分足は応用が効くのでチャート分析やトレード戦略の検証などなどプログラミングを使って投資(トレード)をする上において欠かせないものなのです。。

スポンサーリンク

1分足で長期間は入手が困難

現在ビットコインを始めとする仮想通貨の価格データで「1分足」で「長期間」というのは殆ど出回っていないのが現状です。

まあ本気で取得しようと思えば取れないこともないのですが、今回は独学や趣味で軽くデータ分析をする人向けに簡単なOHLCデータの取得方法を書いていきます。

使う取引所はビットフライヤーです。ビットフライヤーは国内の仮想通貨取引所の中でも大手で、仮想通貨を始めるのであれば、とりあえずはここにしとけって感じの取引所です。

まあ取引所にも取り扱っている通貨とかで一長一短があるので、色んな取引所を開設した方がオススメです。(他にもリップルが買えるBitbankとかが個人的にオススメ。)

ビットフライヤーからビットコインのOHLCデータの取得する

とりあえず軽くテストする用の1000分(約16時間)のデータは以下の感じで取得しました。

import requests
import json
import pandas as pd
from pandas import Series
import time
import csv

ticker=requests.get(‘https://api.bitflyer.jp/v1/getticker/?product_code=FX_BTC_JPY’)
sirtmp=json.loads(ticker.text)
data2=Series(json.loads(ticker.text))
df=pd.DataFrame(columns=data2.index)
df=df.append(data2,ignore_index=True)

i=0

for i in range(1000):
tick=requests.get(‘https://api.bitflyer.jp/v1/getticker/?product_code=FX_BTC_JPY’)
sirtmp=json.loads(tick.text)
data2=Series(json.loads(tick.text))
df=df.append(data2,ignore_index=True)
df.to_csv(‘BTC.csv’)
time.sleep(60)

これで以下のような感じのデータが取れます。

取得したデータの分析して移動平均線を計算したり、見やすいように操作したりするのはpandasというライブラリを使ってやります。

pandasはデータ操作の他にも日経平均やアメリカ企業の株価データが取得できたりするのでPythonで金融データ分析をしたという人は是非使いこなしておきたいライブラリですね。

プログラミングの独学はとても難しい


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



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

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

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

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



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



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





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

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

フォローする