- MacOS Sierra 10.12.6
- Python 3.5.3 :: Anaconda 4.4.0 (x86_64)
- Jupyter 4.3.0
――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.
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.
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
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 ")
Recommended Posts