Esempio n. 1
0
df = tsc.create_mult_index_from_prices(daily_vals)
df = df.fillna(method='ffill')


# Lastly we can plot the results! We shall plot it with the PlotFactory class using PyThalesians engine (a wrapper on top of matplotlib). We can specify the properties of the plot using a GraphProperties class. The first line, forces matplotlib to give us the plot in the notebook, as opposed to a separate window. 

# In[ ]:

get_ipython().magic(u'matplotlib inline')

from pythalesians.graphics.graphs.plotfactory import PlotFactory
from pythalesians.graphics.graphs.graphproperties import GraphProperties

gp = GraphProperties()

gp.source = 'Thalesians/BBG (created with PyThalesians Python library)'
gp.title = 'Equity Markets'
gp.scale_factor = 1
gp.display_legend = True
gp.x_title = 'Dates'
gp.y_title = 'Index'

pf = PlotFactory()
pf.plot_line_graph(df, adapter = 'pythalesians', gp = gp)


# In[ ]:



Esempio n. 2
0
    short_dates = df[["EURUSDV1M", "USDJPYV1M"]]
    long_dates = df[["EURUSDV1Y", "USDJPYV1Y"]]
    short_dates, long_dates = short_dates.align(long_dates,
                                                join='left',
                                                axis=0)

    slope = pandas.DataFrame(data=short_dates.values - long_dates.values,
                             index=short_dates.index,
                             columns=["EURUSDV1M-1Y", "USDJPYV1M-1Y"])

    # resample fand calculate average over month
    slope_monthly = slope.resample('M', how='mean')

    slope_monthly.index = [
        str(x.year) + '/' + str(x.month) for x in slope_monthly.index
    ]

    pf = PlotFactory()

    gp = GraphProperties()

    gp.source = 'Thalesians/BBG'
    gp.title = 'Vol slopes in EUR/USD and USD/JPY recently'
    gp.scale_factor = 2
    gp.display_legend = True
    gp.chart_type = 'bar'
    gp.x_title = 'Dates'
    gp.y_title = 'Pc'

    # plot using Cufflinks
    pf.plot_bar_graph(slope_monthly, adapter='bokeh', gp=gp)
    daily_vals = daily_vals / daily_vals.shift(1) - 1
    daily_vals.index = [str(x.year) + '/' + str(x.month) for x in daily_vals.index]
    daily_vals = daily_vals.drop(daily_vals.head(1).index)

    pf = PlotFactory()

    gp = GraphProperties()

    gp.source = 'Thalesians/BBG (created with PyThalesians Python library)'
    gp.html_file_output = "output_data/equities.htm"
    gp.title = 'Recent monthly changes in equity markets'
    gp.scale_factor = 2
    gp.display_legend = True
    gp.chart_type = ['bar', 'scatter', 'line']
    gp.x_title = 'Dates'
    gp.y_title = 'Pc'

    # plot using Bokeh then PyThalesians
    pf.plot_bar_graph(daily_vals * 100, adapter = 'bokeh', gp = gp)
    pf.plot_bar_graph(daily_vals * 100, adapter = 'pythalesians', gp = gp)

# plot daily changes in FX
if True:
    from datetime import timedelta
    ltsf = LightTimeSeriesFactory()

    end = datetime.datetime.utcnow()
    start = end - timedelta(days=5)

    tickers = ['EUR', 'GBP', 'AUD', 'NZD', 'CAD', 'CHF', 'NOK', 'SEK', 'JPY']
    vendor_tickers = [x + 'USD BGN Curncy' for x in tickers]
Esempio n. 4
0
            data_source='bloomberg',  # use Bloomberg as data source
            tickers=tickers,  # ticker (Thalesians)
            fields=['close'],  # which fields to download
            vendor_tickers=vendor_tickers,  # ticker (Bloomberg)
            vendor_fields=['PX_LAST'],  # which Bloomberg fields to download
            cache_algo='internet_load_return')  # how to return data

        daily_vals = ltsf.harvest_time_series(time_series_request)

        # resample for year end
        daily_vals = daily_vals.resample('A')

        daily_vals = daily_vals / daily_vals.shift(1) - 1
        daily_vals.index = daily_vals.index.year
        daily_vals = daily_vals.drop(daily_vals.head(1).index)

        pf = PlotFactory()

        gp = GraphProperties()

        gp.source = 'Thalesians/BBG'
        gp.title = 'Yearly changes in spot'
        gp.scale_factor = 3
        gp.y_title = "Percent Change"

        daily_vals = daily_vals * 100

        # plot using PyThalesians (stacked & then bar graph)
        pf.plot_stacked_graph(daily_vals, adapter='pythalesians', gp=gp)
        pf.plot_bar_graph(daily_vals, adapter='pythalesians', gp=gp)
Esempio n. 5
0
        vendor_tickers=vendor_tickers,  # ticker (Bloomberg)
        vendor_fields=["PX_LAST"],  # which Bloomberg fields to download
        cache_algo="internet_load_return",
    )  # how to return data

    daily_vals = ltsf.harvest_time_series(time_series_request)

    # resample for end of month
    daily_vals = daily_vals.resample("BM")

    daily_vals = daily_vals / daily_vals.shift(1) - 1
    daily_vals.index = [str(x.year) + "/" + str(x.month) for x in daily_vals.index]
    daily_vals = daily_vals.drop(daily_vals.head(1).index)

    pf = PlotFactory()

    gp = GraphProperties()

    gp.source = "Thalesians/BBG"
    gp.html_file_output = "output_data/equities.htm"
    gp.title = "Recent monthly changes in equity markets"
    gp.scale_factor = 2
    gp.display_legend = True
    gp.chart_type = ["bar", "scatter", "line"]
    gp.x_title = "Dates"
    gp.y_title = "Pc"

    # plot using Bokeh then PyThalesians
    pf.plot_bar_graph(daily_vals * 100, adapter="bokeh", gp=gp)
    pf.plot_bar_graph(daily_vals * 100, adapter="pythalesians", gp=gp)
            tickers=tickers,  # ticker (Thalesians)
            fields=["close"],  # which fields to download
            vendor_tickers=vendor_tickers,  # ticker (Bloomberg)
            vendor_fields=["PX_LAST"],  # which Bloomberg fields to download
            cache_algo="internet_load_return",
        )  # how to return data

        daily_vals = ltsf.harvest_time_series(time_series_request)

        # resample for year end
        daily_vals = daily_vals.resample("A")

        daily_vals = daily_vals / daily_vals.shift(1) - 1
        daily_vals.index = daily_vals.index.year
        daily_vals = daily_vals.drop(daily_vals.head(1).index)

        pf = PlotFactory()

        gp = GraphProperties()

        gp.source = "Thalesians/BBG"
        gp.title = "Yearly changes in spot"
        gp.scale_factor = 3
        gp.y_title = "Percent Change"

        daily_vals = daily_vals * 100

        # plot using PyThalesians (stacked & then bar graph)
        pf.plot_stacked_graph(daily_vals, adapter="pythalesians", gp=gp)
        pf.plot_bar_graph(daily_vals, adapter="pythalesians", gp=gp)