[PYTHON] Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm

Umgebung

- MacOS Sierra 10.12.6
- Python 3.5.3 :: Anaconda 4.4.0 (x86_64)
- Jupyter 4.3.0

Hintergrund

――Die Zaif-Börse ist eine wertvolle virtuelle Geldbörse mit virtuellen Währungen, die paarweise mit japanischen Yen wie NEM und Monacoin sowie Bitcoin gekauft und verkauft werden können.

Problem

Lösung

Spezifikation

Erstellen Sie ein Skript, das Verkaufspreisinformationen von der Zaif-Börse abruft und in eine CSV-Datei schreibt, und ein Skript, das aus der geschriebenen CSV-Datei ein Diagramm erstellt und diese regelmäßig mit cron ausführt.

Informationen zum Verkaufspreis erhalten Sie von Zaif Exchange

import pandas as pd
from pandas import Series,DataFrame
import numpy as np
from datetime import datetime
import time
import json
import requests
import csv
import sys, codecs
date = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
response = requests.get('https://api.zaif.jp/api/1/last_price/btc_jpy')
if response.status_code != 200:
    raise Exception('return status code is {}'.format(response.status_code))
res_dict = json.loads(response.text)
btc_price = res_dict['last_price']
#[Aktuelle Zeit, Verkaufspreis]Erstellen Sie eine Liste von
btc_list = [date, btc_price]
f = open("/var/www/html/zaif/btc.csv", "a")
writer = csv.writer(f, lineterminator='\n')
writer.writerow(btc_list)
f.close()

Wenn Sie ein Skript ausführen, das eine Operation zum Schreiben in eine Datei mit cron enthält, wird möglicherweise der folgende Fehler ausgegeben, und Sie können ihn möglicherweise nicht ausführen.

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 720: ordinal not in range(128)

Dieses Mal wurde der Fehler vermieden, indem "export LANG = ja_JP.UTF-8;" in crontab geschrieben wurde, wie unten gezeigt.

0,5,10,15,20,25,30,35,40,45,50,55 * * * * export LANG=ja_JP.UTF-8; runipy /home/user/Get_Zaif_data.ipynb

Erstellen Sie ein Diagramm aus den erfassten Verkaufspreisinformationen

import pandas as pd
from pandas import Series,DataFrame
import numpy as np
from datetime import datetime
import time
import json
import requests
import csv
import matplotlib.pyplot as plt
from matplotlib.pylab import rcParams
%matplotlib inline
import seaborn as sns
sns.set_style('whitegrid')
rcParams['figure.figsize'] = 20, 10
from matplotlib.dates import DateFormatter
btc_df = pd.read_csv("/var/www/html/zaif/btc.csv", names = ("date", "BTC price"))
btc_df = btc_df[-864:-1]
date_df = btc_df["date"].str[10:16]
btc_df = pd.concat([date_df, btc_df["BTC price"]], axis=1)
rm = btc_df.set_index("date").rolling(window=24).mean()
rstd = btc_df.set_index("date").rolling(window=24).std()
upper_band = rm + rstd * 2
lower_band = rm - rstd * 2

--Erstellen Sie ein Diagramm aus Dataframe (Im Folgenden wird nur BTC beschrieben. Gleiches gilt für andere virtuelle Währungen.)

ax = btc_df.set_index("date").plot()
rm.columns = ["Rolling mean"]
rm.plot(ax=ax, color="#8FBC8F")
upper_band.columns = ["Upper band"]
upper_band.plot(ax=ax, color="#F4A460")
lower_band.columns = ["Lower band"]
lower_band.plot(ax=ax, color="#F4A460")
plt.legend(loc='best',
           fontsize=14,
           borderaxespad=0.,)
plt.tick_params(labelsize=14)
plt.savefig("/var/www/html/zaif/btc.png ")

Zusammenfassung

Recommended Posts

Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Erhalten Sie Informationen zur virtuellen Währung mit der API coin
Erstellen Sie eine saubere Datenbank zum Testen mit FastAPI und führen Sie Unittest of API mit pytest aus
Erstellen Sie einen Stapel von Bildern und blasen Sie sie mit ImageDataGenerator auf
Erstellen Sie eine Tweet-Heatmap mit der Google Maps-API
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Holen Sie sich die ID einer GPU mit geringer Speichernutzung
Holen Sie sich UNIXTIME zu Beginn des heutigen Tages mit einem Befehl
Machen Sie ein BLE-Thermometer und ermitteln Sie die Temperatur mit Pythonista3
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Erstellen Sie eine REST-API, um dynamodb mit dem Django REST Framework zu betreiben
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
Erstellen Sie eine virtuelle Umgebung mit Python!
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Lesen Sie das Diagrammbild mit OpenCV und ermitteln Sie die Koordinaten des Endpunkts des Diagramms
Die Geschichte einer Soundkamera mit Touch Designer und ReSpeaker
Erstellen Sie DNN-CRF mit Chainer und erkennen Sie den Akkordfortschritt der Musik
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
Holen Sie sich das durchschnittliche Gehalt eines Jobs mit bestimmten Bedingungen von Indeed.com
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Betrieb des automatischen Handelsskripts für virtuelle Währungen
Erhalten Sie Parlamentsprotokolle über API
Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)
Holen Sie sich Urlaub mit der Google Kalender-API
Holen Sie sich den Dateinamen des Verzeichnisses (glob)
Erstellen Sie eine einfache App, die die Fetch-API für Ajax-Anforderungen in Flask enthält, und erklären Sie sie schnell.
Erstellen Sie eine REST-API mit dem in Lobe und TensorFlow Serving erlernten Modell.
Erstellen wir ein einfaches Empfangssystem mit dem serverlosen Python-Framework Chalice und Twilio
Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden
Erstellen Sie mithilfe der Gesetzes-API ein einfach zu lesendes PDF mit Gesetzen und Regierungsverordnungen
Verwenden Sie den Befehl [shell], um eine beliebige Datei zu komprimieren, um eine Datei zu erstellen und die Originaldatei zu löschen.
Erstellen Sie ein Django-Projekt und eine Django-Anwendung in einer virtuellen Python-Umgebung und starten Sie den Server
Ermitteln Sie mithilfe der Twitter-API die Anzahl der Tweets, die sich auf ein bestimmtes Keyword beziehen
Erstellen Sie einen Filter, um ein Zugriffstoken mit der Graph-API (Flask) zu erhalten.
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Nachdem Sie mit Python auf die Qiita-API geklickt haben, um eine Liste mit Artikeln für Anfänger zu erhalten, werden wir die Artikel von God besuchen
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Holen Sie sich den Aufrufer einer Funktion in Python
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Holen Sie sich eine Liste der IAM-Benutzer mit Boto3
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Berücksichtigung der Stärken und Schwächen von Python
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Erstellen Sie ein Übersetzungswerkzeug mit dem Translate Toolkit
Erstellen Sie eine Tabelle mit IPython Notebook
Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API
Holen Sie sich mit Python eine große Menge von Starbas Twitter-Daten und probieren Sie die Datenanalyse Teil 1 aus
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.