Browse Source

Use dateutil instead of pytz to handle timezones

master
Denis Tereshkin 5 years ago
parent
commit
900630dc5a
  1. 8
      hap_csv_upload.py
  2. 4
      qhp-download-futures.py
  3. 6
      qhp-hap-transfer.py

8
hap_csv_upload.py

@ -10,7 +10,7 @@ import datetime
import struct import struct
import re import re
from pytz import timezone import dateutil.tz
def sec_from_period(period): def sec_from_period(period):
if period == "M1": if period == "M1":
@ -49,11 +49,11 @@ def main():
period = args.timeframe period = args.timeframe
utc_tz = timezone('UTC') utc_tz = dateutil.tz.gettz('UTC')
if args.timezone is None: if args.timezone is None:
tz = utc_tz tz = utc_tz
else: else:
tz = timezone(args.timezone) tz = dateutil.tz.gettz(args.timezone)
out_symbol = args.hap_symbol out_symbol = args.hap_symbol
@ -95,7 +95,7 @@ def main():
minute = int(time[2:4]) minute = int(time[2:4])
second = int(time[4:6]) second = int(time[4:6])
dt = datetime.datetime(year, month, day, hour, minute, second, 0, utc_tz).astimezone(tz) - time_delta dt = datetime.datetime(year, month, day, hour, minute, second, 0, tzinfo=tz) - time_delta
dt = dt.astimezone(utc_tz) dt = dt.astimezone(utc_tz)
serialized_bars.write(struct.pack("<qddddQ", int(dt.timestamp()), float(open_), float(high), float(low), float(close), int(volume))) serialized_bars.write(struct.pack("<qddddQ", int(dt.timestamp()), float(open_), float(high), float(low), float(close), int(volume)))

4
qhp-download-futures.py

@ -8,7 +8,7 @@ import json
import csv import csv
import datetime import datetime
import struct import struct
from pytz import timezone import dateutil.tz
def timeframe_to_seconds(tf): def timeframe_to_seconds(tf):
if tf == 'M1': if tf == 'M1':
@ -177,7 +177,7 @@ def main():
print("Tickers: {}".format(tickers)) print("Tickers: {}".format(tickers))
for ticker in tickers: for ticker in tickers:
print("Requesting data: {}".format(ticker)) print("Requesting data: {}".format(ticker))
bars = get_data(s, ticker, start_time, end_time, period, timezone('UTC'), timedelta) bars = get_data(s, ticker, start_time, end_time, period, dateutil.tz.gettz('UTC'), timedelta)
if len(bars) > 0: if len(bars) > 0:
data[ticker] = { 'bars' : bars } data[ticker] = { 'bars' : bars }

6
qhp-hap-transfer.py

@ -9,7 +9,7 @@ import csv
import datetime import datetime
import struct import struct
import re import re
from pytz import timezone import dateutil.tz
def sec_from_period(period): def sec_from_period(period):
if period == "M1": if period == "M1":
@ -190,9 +190,9 @@ def main():
tickers = request_ticker_list(qhp) tickers = request_ticker_list(qhp)
tz = timezone('UTC') tz = dateutil.tz.gettz('UTC')
if args.timezone is not None: if args.timezone is not None:
tz = timezone(args.timezone) tz = dateutil.tz.gettz(args.timezone)
timedelta = datetime.timedelta(seconds=0) timedelta = datetime.timedelta(seconds=0)
if args.time_delta is not None: if args.time_delta is not None:

Loading…
Cancel
Save