Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)