def test_free_fx_tick_download(): # First we can do it by defining all the vendor fields, tickers etc. # so we bypass the configuration file md_request = MarketDataRequest(start_date="05 Dec 2016", finish_date="07 Dec 2016", fields=["bid"], vendor_fields=["bid"], freq="tick", data_source="dukascopy", tickers=["EURUSD"], vendor_tickers=["EURUSD"]) md_request.data_source = "dukascopy" df = market.fetch_market(md_request).resample("1min").mean() assert df is not None
def test_free_fx_tick_download(): # first we can do it by defining all the vendor fields, tickers etc. so we bypass the configuration file md_request = MarketDataRequest(start_date='05 Dec 2016', finish_date='07 Dec 2016', fields=['bid'], vendor_fields=['bid'], freq='tick', data_source='fxcm', tickers=['EURUSD'], vendor_tickers=['EURUSD']) df_tick = market.fetch_market(md_request) df = df_tick.resample('1min').mean() md_request.data_source = 'dukascopy' df1 = market.fetch_market(md_request).resample('1min').mean() assert df is not None assert df1 is not None
df = df.resample('1s').mean() print(df.tail(n=60)) if run_example == 6 or run_example == 0: ####### FXCM (and compare with DukasCopy) examples # let's download data for end of 2016/start 2017 for EUR/USD - the raw data has bid/ask, if we specify close, we calculate # it as the average # first we can do it by defining all the vendor fields, tickers etc. so we bypass the configuration file md_request = MarketDataRequest(start_date='01 Dec 2016', finish_date='07 Dec 2016', fields=['bid'], vendor_fields=['bid'], freq='tick', data_source='fxcm', tickers=['EURUSD'], vendor_tickers=['EURUSD']) df_tick = market.fetch_market(md_request) df = df_tick.resample('1min').mean() md_request.data_source = 'dukascopy' df1 = market.fetch_market(md_request).resample('1min').mean() df1.columns = [c + '_dk' for c in df1.columns] df = df1.join(df) print(df_tick.tail(n=100)) print(df.tail(n=100))
vendor_tickers=fx_vendor_tickers, # Ticker (Quandl) vendor_fields=['close']) # Fill in your own API keys for Quandl and FRED here # md_request.QUANDL_API_KEY = "TYPE HERE" # md_request.FRED_API_KEY = "TYPE HERE" df_fx = market.fetch_market(md_request=md_request) ##### Download deposit rate data rates_tickers = ['USD3M', 'CAD3M', 'EUR3M', 'AUD3M', 'CHF3M', 'SEK3M', 'GBP3M', 'NOK3M', 'JPY3M', 'NZD3M'] rates_vendor_tickers = ['IR3TIB01USM156N', 'IR3TIB01CAM156N', 'IR3TIB01EZM156N', 'IR3TIB01AUM156N', 'IR3TIB01CHM156N', 'IR3TIB01SEM156N', 'IR3TIB01GBM156N', 'IR3TIB01NOM156N', 'IR3TIB01JPM156N', 'IR3TIB01NZM156N'] md_request.data_source = 'alfred' md_request.tickers = rates_tickers md_request.vendor_tickers = rates_vendor_tickers df_rates = market.fetch_market(md_request=md_request) df_rates = df_rates.resample('BM').last() df = df_fx.join(df_rates, how='left') df = df.fillna(method='ffill') df.to_csv("fx_rates.csv") ##### Download US stocks data equities_tickers = ['TWTR', 'GOOG', 'FB', 'AAPL', 'NFLX', 'AMZN', 'TSLA', 'S&P500'] equities_vendor_tickers = ['TWTR', 'GOOG', 'FB', 'AAPL', 'NFLX', 'AMZN', 'TSLA', '^GSPC'] md_request.data_source = 'yahoo'
cache_algo='cache_algo_return', abstract_curve=FXSpotCurve( construct_via_currency='USD', depo_tenor='ON')) df_tot = market.fetch_market(md_request=md_request) df_tot.columns = [x + '-tot-cuemacro' for x in df_tot.columns] df_tot = df_tot.tz_localize(pytz.utc) df_tot.index = df_tot.index + pd.Timedelta( hours=22) # Roughly NY close 2200 GMT md_request.abstract_curve = None # Get intraday spot data md_request.freq = 'tick' md_request.data_source = 'dukascopy' df_intraday_spot = market.fetch_market(md_request=md_request) df_intraday_spot = pd.DataFrame( df_intraday_spot.resample('1min').last().dropna()) # Get Bloomberg calculated total return indices (for spot) md_request.category = 'fx-tot' md_request.freq = 'daily' md_request.data_source = 'bloomberg' df_bbg_tot = market.fetch_market(md_request) df_bbg_tot.columns = [x + '-bbg' for x in df_bbg_tot.columns] df_bbg_tot = df_bbg_tot.tz_localize(pytz.utc) df_bbg_tot.index = df_bbg_tot.index + pd.Timedelta( hours=22) # Roughly NY close 2200 GMT
if run_example == 6 or run_example == 0: ####### FXCM (and compare with DukasCopy) examples # let"s download data for end of 2016/start 2017 for EUR/USD - the # raw data has bid/ask, if we specify close, we calculate # it as the average # first we can do it by defining all the vendor fields, tickers etc. # so we bypass the configuration file md_request = MarketDataRequest(start_date="01 Dec 2016", finish_date="07 Dec 2016", fields=["bid"], vendor_fields=["bid"], freq="tick", data_source="fxcm", tickers=["EURUSD"], vendor_tickers=["EURUSD"]) df_tick = market.fetch_market(md_request) df = df_tick.resample("1min").mean() md_request.data_source = "dukascopy" df1 = market.fetch_market(md_request).resample("1min").mean() df1.columns = [c + "_dk" for c in df1.columns] df = df1.join(df) print(df_tick.tail(n=100)) print(df.tail(n=100))