first commit
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
script that runs continuously and collects pricing and technical indicators data,
|
||||
entering the data into instrument/window data tables.
|
||||
"""
|
||||
import sqlite3
|
||||
import sqlalchemy
|
||||
import pandas as pd
|
||||
from datetime import datetime
|
||||
from backend.pricing import history
|
||||
from backend.config import currencies
|
||||
from backend.indicators import sma, stoch, pivotPoints, bollBands
|
||||
|
||||
|
||||
windows = ['M5', 'M15', 'H1', 'H4', 'D']
|
||||
for instr in currencies:
|
||||
for w in windows:
|
||||
LiteCurrencyDB(instr, w)
|
||||
|
||||
def LiteCurrencyDB(instr, w):
|
||||
# connect to the DB
|
||||
db = sqlite3.connect('liteDB/currencies.db')
|
||||
c = db.cursor()
|
||||
table_name = "%s_%s" % (instr, w)
|
||||
# get last 500 data points
|
||||
df = history(instr, w)
|
||||
prices = df['Close']
|
||||
# set the dataframe with our technical indicators
|
||||
df['fast_sma'] = sma(prices, 6)
|
||||
df['slow_sma'] = sma(prices, 10)
|
||||
df = stoch(df, 6, 3)
|
||||
df = bollBands(df, 5, 0.5)
|
||||
pp = pd.DataFrame(data=pivotPoints(df))
|
||||
df = pd.concat([df,pp], axis=1, join_axes=[df.index])
|
||||
inputs = list(tuple(row for idx, row in df.iterrows()))
|
||||
# insert them into the dedicated table for this currency and timeframe
|
||||
c.execute('''CREATE TABLE IF NOT EXISTS {}(
|
||||
dt TEXT, Open REAL, High REAL, Low REAL, Close REAL,
|
||||
Volume INTEGER, fast_sma REAL, slow_sma REAL, Lstoch REAL,
|
||||
Hstoch REAL, K REAL, D REAL, rolling_mean REAL, boll_high REAL,
|
||||
boll_low REAL, PP REAL, R1 REAL, R2 REAL, R3 REAL, S1 REAL,
|
||||
S2 REAL, S3 REAL
|
||||
)'''.format(table_name))
|
||||
c.executemany('''INSERT INTO {}(
|
||||
dt, Open, High, Low, Close, Volume, fast_sma, slow_sma, Lstoch,
|
||||
Hstoch, K, D, rolling_mean, boll_high, boll_low, PP, R1, R2, R3,
|
||||
S1, S2, S3
|
||||
) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''
|
||||
.format(table_name), inputs)
|
||||
db.commit()
|
||||
print('table created successfully')
|
||||
return db, df
|
||||
Reference in New Issue
Block a user