· 8 years ago · Jul 03, 2018, 08:16 PM
1import StockInfo, sqlite3,datetime
2from datetime import datetime, timedelta
3
4yesterday = datetime.now() #yesterday's date in correct format
5yesterday = yesterday.strftime('%Y%m%d')
6
7tickers = {"MU", "AMD", "BAC", "GS"}
8
9connection = sqlite3.connect("StockData.db")
10crsr = connection.cursor()
11#Create table if not already there
12sql_command = """CREATE TABLE IF NOT EXISTS price_data (
13 entry INTEGER PRIMARY KEY,
14 ticker VARCHAR(5),
15 date INTEGER,
16 minute VARCHAR(5),
17 label VARCHAR(8),
18 high DECIMAL(4,3),
19 low DECIMAL(4,3),
20 average DECIMAL(4,3),
21 volume INTEGER,
22 notional DECIMAL(7,4),
23 numberOfTrades INTEGER,
24 open DECIMAL(4,3),
25 close DECIMAL(4,3),
26 changeOverTime DECIMAL(3,4)
27 );"""
28
29crsr.execute(sql_command)
30
31for stock in tickers:
32 data = StockInfo.getHistoricalMinute(stock, "20180629")
33 format_str = """INSERT INTO price_data (entry, ticker, date, minute, label, high, low, average, volume, notional
34 numberOfTrades, open, close, changeOverTime)
35 VALUES (NULL, "{ticker}", "{date}", "{minute}", "{label}", "{high}", "{low}", "{average}", "{volume}", "{notional}", "{numberOfTrades}",
36 "{open}", "{close}", "{changeOverTime}");"""
37 for point in data:
38 sql_command = format_str.format(ticker=stock, date=yesterday, minute=point['minute'], label=point["label"], high=point['high'],
39 low=point['low'], average=point['average'], volume=point['volume'], notional=point['notional'], numberOfTrades=point['numberOfTrades'],
40 open=point['open'], close=point['close'], changeOverTime=point['changeOverTime'])
41 crsr.execute(sql_command)
42connection.commit()