bot開発3.CryptowatchのAPIで取得したJSONデータから欲しい数字を取り出す

前回、https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1661299200のデータを確認しました。after=1661299200を人間でもわかる日時に直すと

タイムスタンプ=1661299200

日時(Tokyo)=2022/08/24 09:00:00

でした。
after=**********以降のデータを取得しています。少し期間を伸ばしてデータを取得してみましょう。

2022/04/01 09:00:00をUNIXタイムスタンプに変更して、データを取得してみてください。

https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1648771200

データ量が多くなったはずです。JSON形式の見方を忘れてしまった方はこちら(JSON形式のデータから欲しい情報を取得しよう)を参照してください。

このデータから指定した日時の最安値の値を取得してみましょう。

Contents

指定した日時の最安値の値を取得してみよう

JSONデータから、2022年4月27日の始値を目視でさっと探すのは難しいです。
このような場合にプログラムでデータを探します。

取得するためのコードは以下の通りです。

import requests
response = requests.get("https://api.cryptowat.ch/markets/bitflyer/btcjpy/ohlc?periods=86400&after=1648771200")
data = response.json()

for item in data["result"]["86400"]:
	if item[0] == 1651017600:
		print(item[1])

結果として、5169873が取得できたと思います。

JSONデータの中身

[xx,xx,xx,xx….]から始値ってどうやって見つけるの?となっているはずです。
[xx,xx,xx,xx….]の順番で[ 取引時間(クローズ), 始値 , 高値 , 安値 , 終値 , 出来高 , 不明(ごめんなさい)]となっています。

ですので、始値を取得したい場合、pyrhonのリストの型で順番を表現するのであれば[1]となります。

また、今後OHLCという言葉を聞くことが多くなると思います。

  • OpenPrice (始値)
  • HighPrice (高値)
  • LowPrice (安値)
  • ClosePrice (終値)

を指します。
JSONデータから取得できますね。

コードの中身を簡単に解説

JSONデータから目視で探すのは非常に大変です。
ですので、2022年4月27日の始値を自動的に見つけて、ヒットしたら表示させるということを行なっています。

この処理を書き出してみます。

  1. bitflyerのデータを取得する
  2. 変数に代入する
  3. 取引時間(クローズ)が2022年4月27日を見つける
  4. 2022年4月27日がみつかったら、始値を取得する
  5. 取得した始値を表示させる

上記の流れをプログラムで表現すればOKです。

処理1,2は以前にも説明させていただいたので割愛します。3からが問題です。botを作る上でというより、システムを開発する上で、必要なfor文とif文のプログラミングが必要になります。とはいえ、やっていることを理解できればそんな難しいことではありません。

for文とif文

今回のコードベースで話を進めます。

for item in data[“result”][“86400”]:部分ですが、data[“result”][“86400”]の数だけitemに値を入れるということを繰り返しております。

if文ではitem[0]が1651017600であった場合、item[1]を表示するとなっています。逆に考えれば、item[0]が1651017600でなければ何も表示されません。

最後に

CryptowatchのAPIで取得したJSONデータから欲しい数字を取り出すことができました。

今回、取得日を1651017600としてしているので、この部分を変数にして、プログラム的に取得することも可能です。カスタマイズは幅広いです。みなさんが思うとおりにチャレンジしてみてください。

※注意:本bot開発は「文系でもわかる!BitcoinのBOT自動売買トレードの始め方」をもとに開発・自分なりの解釈用備忘録としています。


Python勉強したいのであればこれ一択


AIの技術、データ分析を身につけるにはPythonが取り組みやすいです。専門コースもあるので、まずは、気軽に問い合わせしてみてください!
技術者も多くなってきていますが、世界と戦うにはまだまだ人材不足です。高い年収を狙うなら今がチャンス!


フリーランスエンジニアが登録して欲しいエージェント


長くお世話になっているengineer-route。
単価、稼働日数、稼働時間相談も親身にのってくれます。しっかりしたサポート・コミュニケーションを交わすことで「はいってみた違った」というエンジニアあるあるを極力回避できると思います。私は当たりしかないです。