def main(): parser = argparse.ArgumentParser(prog='duka', usage='%(prog)s [options]') parser.add_argument('-v', '--version', action='version', version='Version: %(prog)s-{version}'.format(version=VERSION)) parser.add_argument('symbols', metavar='SYMBOLS', type=str, nargs='+', help='symbol list using format EURUSD EURGBP') parser.add_argument('-d', '--day', type=valid_date, help='specific day format YYYY-MM-DD (default today)', default=date.today() - timedelta(1)) parser.add_argument('-s', '--startdate', type=valid_date, help='start date format YYYY-MM-DD (default today)') parser.add_argument('-e', '--enddate', type=valid_date, help='end date format YYYY-MM-DD (default today)') parser.add_argument('-t', '--thread', type=int, help='number of threads (default 20)', default=5) parser.add_argument('-f', '--folder', type=str, help='destination folder (default .)', default='.') parser.add_argument('-c', '--candle', type=valid_timeframe, help='use candles instead of ticks. Accepted values 1M 5M 10M 15M 30M 1H 4H', default=TimeFrame.TICK) parser.add_argument('--header', action='store_true', help='include CSV header (default false)', default=False) args = parser.parse_args() if args.startdate is not None: start = args.startdate else: start = args.day if args.enddate is not None: end = args.enddate else: end = args.day set_up_signals() app(args.symbols, start, end, args.thread, args.candle, args.folder, args.header)
def main_batch_download(): '''Download tick series one day at a time.''' # date formats: website download page yyyy/mm/dd # url's yyyy/ # python yyy/mm/dd print('Starting download') set_up_signals() symbols = [ 'USDJPY', 'EURUSD', 'GBPUSD' ] # first run from Mac, starting 2003, 5, 4, and PC1 stating 2010 # symbols = ['GBPJPY', 'EURJPY', 'AUDUSD', 'NZDUSD'] # from PC1, starting 2003, 8, 03 # symbols = ['EURAUD', 'EURNZD', 'GBPAUD', 'EURCAD', 'CADJPY', 'USDCAD', 'GBPCHF', 'NZDCAD', 'EURCHF', 'EURGBP', 'AUDCHF', 'NZDJPY', 'AUDJPY', 'CHFJPY', 'GBPCAD', 'AUDCAD', 'USDCHF', 'GBPNZD'] # not started yet # start = date(2003, 5, 4) # y m d from Mac start = date(2010, 1, 1) # y m d from PC1 # start = date(2003, 8, 3) # y m d for GBPJPY group # start = date(2003, 12, 7) # y m d # start = date(2004, 4, 25) # y m d # start = date(2004, 9, 26) # y m d for i in range(0, (date.today() - start).days, 7): new_start = start + timedelta(days=i) end = new_start + timedelta(days=6) thread = 25 candle = TimeFrame.TICK folder = '/Volumes/SDcard/' if os.getenv( 'HOME') == '/Users/stephenmorrell' else '/home/smorrell/' folder += 'ForexDataDukas/' print('calling app with', symbols, new_start, end, thread, candle, folder, True) app(symbols, new_start, end, thread, candle, folder, True) if i % (7 * 4 * 4 ) == 0 and i > 0: # pause every 4 months in case of throttling print('sleeping for 5 mins', time.time()) time.sleep(300)
def grabTimerange(): start = Config.END_DATE - relativedelta(months=Config.MONTHS) for month in range(Config.MONTHS): end = start + relativedelta(months=1) print('\r\nRequest from ', str(start), ' to ', str(end - relativedelta(days=1))) set_up_signals() app(Config.FOREX, start, end, Config.THREADS, Config.CANDLE, Config.PATH, Config.CSV_HEADER) start = end
def main(): parser = argparse.ArgumentParser(prog='duka', usage='%(prog)s [options]') parser.add_argument('symbols', metavar='SYMBOLS', type=str, nargs='+', help='symbol list using format EURUSD EURGBP') parser.add_argument('-d', '--day', type=valid_date, help='specific day format YYYY-MM-DD (default today)', default=date.today() - timedelta(1)) parser.add_argument('-s', '--startdate', type=valid_date, help='start date format YYYY-MM-DD (default today)') parser.add_argument('-e', '--enddate', type=valid_date, help='end date format YYYY-MM-DD (default today)') parser.add_argument('-t', '--thread', type=int, help='number of threads (default 20)', default=5) parser.add_argument('-f', '--folder', type=str, help='destination folder (default .)', default='.') parser.add_argument( '-c', '--candle', type=valid_timeframe, help= 'use candles instead of ticks. Accepted values 1M 5M 10M 15M 30M 1H 4H', default=TimeFrame.TICK) args = parser.parse_args() if args.startdate is not None: start = args.startdate else: start = args.day if args.enddate is not None: end = args.enddate else: end = args.day set_up_signals() app(args.symbols, start, end, args.thread, args.candle, args.folder)
def main(): parser = argparse.ArgumentParser(prog='dukas', usage='%(prog)s [options]') parser.add_argument('symbols', metavar='SYMBOLS', type=str, nargs='+', help='symbol list using format EURUSD EURGBP') parser.add_argument('-d', '--day', type=valid_date, help='specific day format YYYY-MM-DD (default today)', default=date.today() - timedelta(1)) parser.add_argument('-s', '--startdate', type=valid_date, help='start date format YYYY-MM-DD (default today)') parser.add_argument('-e', '--enddate', type=valid_date, help='end date format YYYY-MM-DD (default today)') parser.add_argument('-t', '--thread', type=int, help='number of threads (default 20)', default=5) args = parser.parse_args() if args.startdate is not None: start = args.startdate else: start = args.day if args.enddate is not None: end = args.enddate else: end = args.day set_up_signals() app(args.symbols, start, end, args.thread)
def main(): parser = argparse.ArgumentParser(prog='duka', usage='%(prog)s [options]') parser.add_argument( '-v', '--version', action='version', version='Version: %(prog)s-{version}'.format(version=VERSION)) parser.add_argument('symbols', metavar='SYMBOLS', type=str, nargs='+', help='symbol list using format EURUSD EURGBP') parser.add_argument('-d', '--day', type=valid_date, help='specific day format YYYY-MM-DD (default today)', default=date.today() - timedelta(1)) parser.add_argument('-s', '--startdate', type=valid_date, help='start date format YYYY-MM-DD (default today)') parser.add_argument('-e', '--enddate', type=valid_date, help='end date format YYYY-MM-DD (default today)') parser.add_argument( '-t', '--throtteling', type=valid_throtteling, help='number of downloads (default 50 per 5 sec). Format: 50/5', default='none') parser.add_argument('-f', '--folder', type=str, help='destination folder (default .)', default='.') parser.add_argument( '-tf', '--timeframes', type=valid_timeframes, help= 'One or multiple Time frames to export. Example: TICK,H1. Accepted values: TICK M1 M2 M5 M10 M15 M30 H1 H4', default=[TimeFrame.TICK]) parser.add_argument('--header', action='store_true', help='include CSV header (default false)', default=False) parser.add_argument('--local-time', action='store_true', help='use local time (default GMT)', default=False) args = parser.parse_args() if args.startdate is not None: start = args.startdate else: start = args.day if args.enddate is not None: end = args.enddate else: end = args.day set_up_signals() print('symbols') print(args.symbols) app(args.symbols, start, end, args.throtteling, args.timeframes, args.folder, args.header, args.local_time)