import requests import zipfile import io from os.path import expanduser, join from os import remove from datetime import datetime, timedelta import pandas as pd from arctic.date import DateRange from adagio.utils.date import date_shift from adagio.utils.logging import get_logger from adagio.utils.mongo import get_library logger = get_logger(__name__) library = get_library('truefx_fx_rates') ccy_pairs = [ 'AUDJPY', 'AUDNZD', 'AUDUSD', 'CADJPY', 'CHFJPY', 'EURCHF', 'EURGBP', 'EURJPY', 'EURUSD', 'GBPJPY', 'GBPUSD', 'NZDUSD', 'USDCAD', 'USDCHF', 'USDJPY' ] start_date = datetime(2009, 5, 1) url_change_date = datetime(2017, 4, 1) root_url = r'https://www.truefx.com/dev/data' download_to = expanduser('~') data_frequency = '1min' def get_last_update(symbol):
import adagio from adagio import keys from adagio.data.fx import FxRatesInfo, get_fx_rates from adagio.utils.logging import get_logger from adagio.utils.mongo import get_library from config import QUANDL_TOKEN logger = get_logger(name=__name__) adagio.AdagioConfig.quandl_token = QUANDL_TOKEN if __name__ == '__main__': library = get_library(keys.fx_rates) for item in FxRatesInfo: logger.info('Saving fx rates for {}'.format(item.name)) fx_rates = get_fx_rates(item.name) symbol = fx_rates.name library.write(symbol, fx_rates)
import adagio from adagio import keys from adagio.data.cash import get_cash_rate, to_cash_returns from adagio.utils.logging import get_logger from adagio.utils.mongo import get_library from config import QUANDL_TOKEN logger = get_logger(name=__name__) adagio.AdagioConfig.quandl_token = QUANDL_TOKEN if __name__ == '__main__': library = get_library(keys.cash_returns) currencies = ['USD', 'EUR', 'JPY', 'GBP'] for ccy in currencies: logger.info('Saving cash returns for {}'.format(ccy)) # get cash rates cash_rate = get_cash_rate(ccy) symbol = cash_rate.name library.write(symbol, cash_rate) # get cash returns cash_return = to_cash_returns(cash_rate, ccy) symbol = cash_return.name library.write(symbol, cash_return)
import adagio from adagio import keys from adagio.utils.const import FuturesInfo from adagio.utils.logging import get_logger from adagio.utils.mongo import get_library from config import QUANDL_TOKEN logger = get_logger(name=__name__) adagio.AdagioConfig.quandl_token = QUANDL_TOKEN if __name__ == '__main__': library = get_library(keys.backtest) for futures in FuturesInfo: logger.info('Running backtest for {}'.format(futures.name)) futures_info = futures.value longonly_params = { keys.lo_ticker: futures.name, keys.backtest_ccy: futures_info.contract_ccy, } engine = adagio.Engine() engine.add(adagio.LongOnly(**longonly_params)) engine.backtest() library.write(engine.symbol, engine, metadata=engine.all_params)