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 [ ]: