Ejemplo n.º 1
0
def push():
    # DBから必要なデータを取得
    today = db_session.query(Data).all()[-2].date
    nextday = db_session.query(Data).all()[-1].date
    price_today = db_session.query(Data).all()[-2].real_price
    price_nextday = db_session.query(Data).all()[-1].pred_price

    # 送信するメッセージを記述
    text = (
        "おはようございます!🌅 \n本日のビットコイン相場予測配信です!💹\n\n"
        f"{today.strftime('%Y-%m-%d %H:%M')}の実際相場\n"
        f"¥{price_today} (BTC/JPY)\n\n"
        f"{nextday.strftime('%Y-%m-%d %H:%M')}の予測相場\n"
        f"¥{price_nextday} (BTC/JPY)\n\n"
        "アプリケーションのURL \n"
        "https://predict-bitcoin.herokuapp.com/"
    )       
    messages = TextSendMessage(text=text)

    # アカウントを追加している全ユーザーにメッセージを送信
    line_bot_api.broadcast(messages=messages)
Ejemplo n.º 2
0
def predict_nextday():

    # 価格情報を取得しデータフレームに格納
    today_data = db_session.query(Data).all()[-1]
    today_data.real_price = get_price()  # 上書き(上書きする前はNoneになっている)
    db_session.add(today_data)
    db_session.commit()

    # windowを作成し標準化
    window = 5
    data_five = db_session.query(Data).all()[-window:]
    input_will = []

    for price in data_five:
        input_will.append(price.real_price)

    input_will = np.array(input_will).reshape(1, window, 1)
    input_mean = np.mean(input_will)
    input_std = np.std(input_will)
    sta_input = (input_will - input_mean) / input_std

    # 学習済みモデルを取得
    with open("lstm_model.pickle", "rb") as f:
        model = pickle.load(f)

    # 翌日の価格を予測、標準化してあるので元に戻す
    future_price = model.predict(sta_input)
    future_price = future_price.reshape(-1)
    future_price = future_price * input_std + input_mean
    future_price = float(future_price)

    # 翌日の日付を取得
    today = db_session.query(Data).all()[-1].date
    next_day = today + timedelta(days=1)

    # 翌日の日付、予測した価格をデータベースに格納
    row = Data(date=next_day, real_price=None, pred_price=future_price)
    db_session.add(row)
    db_session.commit()
Ejemplo n.º 3
0
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objects as go
import pandas as pd
import datetime
from assets.database import db_session
from assets.models import Data

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

data = db_session.query(Data.date, Data.subscribers, Data.reviews).all()

dates = []
subscribers = []
reviews = []

for datum in data:
    dates.append(datum.date)
    subscribers.append(datum.subscribers)
    reviews.append(datum.reviews)

diff_subscribers = pd.Series(subscribers).diff().values
diff_reviews = pd.Series(reviews).diff().values

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

server = app.server  #herokuにデプロイする際に必要

app.layout = html.Div(children=[
    html.H2(children='PythonによるWebスクレイピング~アプリケーション偏~'),
Ejemplo n.º 4
0
from assets.database import init_db
from assets.models import Data
import datetime

init_db()

#create
date = datetime.date.today()
row1 = Data(date=date, subscribers=6500, reviews=210)
row2 = Data(date=date, subscribers=1500, reviews=220)
db_session.add(row1)
db_session.add(row2)
db_session.commit() #commitでデータベースに保存

#read
read1 = db_session.query(Data).all()[0].subscribers

#update
datum = db_session.query(Data).all()[0]
datum.subscribers = 1000
db_session.add(datum)
db_session.commit()

#dalete
datum = db_session.query(Data).filter_by(subscribers=1000).one()
db_session.delete(datum)
db_session.commit()
#全削除
#Data.query.delete()
print(db_session.query(Data).all())
Ejemplo n.º 5
0
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go

from assets.database import db_session
from assets.models import Data

# 外部のスタイルシートを取得
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

# インスタンスを生成
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
server = app.server

# DBからデータを取得
data = db_session.query(Data.date, Data.real_price, Data.pred_price).all()

# 取得したデータを項目ごとに分配
dates = []
real_prices = []
pred_prices = []

for _data in data:
    dates.append(_data.date)
    real_prices.append(_data.real_price)
    pred_prices.append(_data.pred_price)

# トップのコンポーネントを作成
top = html.H2(children='ビットコインの相場予測 ( BTC / JPY )',
              style={
                  'textAlign': 'center',