Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
        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))
Exemplo n.º 4
0
    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
Exemplo n.º 6
0
    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))