In [ ]:
import os
import sys
pwd = os.getcwd()
sys.path.append(os.path.join(pwd, '..', '..'))
from server.utils import load_config
from server import db
from sqlalchemy.orm import sessionmaker
import json
import matplotlib.pyplot as plt
conf_dir = os.path.abspath(os.path.join(pwd, '..', '..', 'config', 'base.yaml'))
config = load_config(conf_dir)
engine = db.sync_engine(config['postgres'])
Session = sessionmaker(bind=engine)
session = Session()
In [ ]:
from sqlalchemy.orm.exc import NoResultFound
import sqlalchemy as sa
start_date_filter = '2017-03-10 00:00'
end_date_filter = '2017-04-28 23:59'
sampling = 0.007
pair = 'btc_usd'
rate = session.query(db.history).filter(
(db.history.c.pub_date > start_date_filter)
& (db.history.c.pub_date < end_date_filter)
& (db.history.c.pair == pair)
& (sa.sql.func.random() < sampling)
).order_by(db.history.c.pub_date)
In [ ]:
import pandas as pd
import json
In [ ]:
df = pd.DataFrame(columns=['High', 'Low', 'Date'])
for index, price in enumerate(rate):
api = json.loads(price.resp)
df.set_value(index, 'High', api['asks'][0][0])
df.set_value(index, 'Low', api['bids'][0][0])
df.set_value(index, 'Date', price.pub_date)
In [ ]:
df.to_csv('rates.csv', encoding='utf-8')
In [ ]:
from IPython.display import FileLink
FileLink('./rates.csv')
In [ ]: