예제 #1
0
    def create_layout(self):
        pn.extension()
        title = pn.pane.Markdown("""
                # Stock Index Correlation
                """,
                                 background='#007500')

        title.session_id = self.session_id

        output = interact(self.stockindex_model, stock='TSLA')
        output.session_id = self.session_id
        # df_info = output[1][0].object
        # df_widget = pn.widgets.DataFrame(
        #     df_info, name='DataFrame', autosize_mode='fit_columns',width=900)
        # df_widget.session_id = self.session_id

        # Plot forecast and real data
        layout = interact(self.layout_vis, stock='TSLA')
        layout.session_id = self.session_id

        layout2 = interact(self.layout_vis2, stock='TSLA')
        layout2.session_id = self.session_id

        app_col = pn.Column(title,
                            output[0],
                            output[1][0],
                            layout[1],
                            width=900)
        app_row = pn.Row(app_col,
                         layout2[1],
                         margin=(25, 5, 25, 25),
                         width=900)  #, background='#007500')

        return app_row
예제 #2
0
def test_interact_replaces_model(document, comm):
    def test(a):
        return BkParagraph(text='Pre Test') if a else BkDiv(text='Test')

    interactive = interact(test, a=False)
    pane = interactive._pane
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.Checkbox)
    assert widget.value == False

    column = interactive._get_model(document, comm=comm)
    assert isinstance(column, BkColumn)
    box = column.children[1]
    assert isinstance(box, BkWidgetBox)
    div = box.children[0]
    assert isinstance(div, BkDiv)
    assert div.text == 'Test'
    assert column.ref['id'] in interactive._callbacks
    assert box.ref['id'] in pane._callbacks

    widget.value = True
    assert box.ref['id'] not in pane._callbacks
    new_box = column.children[1]
    pre = new_box.children[0]
    assert isinstance(pre, BkParagraph)
    assert pre.text == 'Pre Test'
    assert column.ref['id'] in interactive._callbacks
    assert new_box.ref['id'] in pane._callbacks

    interactive._cleanup(column)
    assert interactive._callbacks == {}
    assert pane._callbacks == {}
예제 #3
0
def test_string_interact():
    def test(a):
        return a

    interactive = interact(test, a='')
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.TextInput)
    assert widget.value == ''
예제 #4
0
def test_boolean_interact():
    def test(a):
        return a

    interactive = interact(test, a=False)
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.Checkbox)
    assert widget.value == False
예제 #5
0
def test_numeric_list_interact():
    def test(a):
        return a

    interactive = interact(test, a=[1, 3, 5])
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.DiscreteSlider)
    assert widget.value == 1
    assert widget.options == [1, 3, 5]
예제 #6
0
def test_string_list_interact():
    def test(a):
        return a

    options = ['A', 'B', 'C']
    interactive = interact(test, a=options)
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.Select)
    assert widget.value == 'A'
    assert widget.options == dict(zip(options, options))
예제 #7
0
def test_tuple_range_interact_with_default_of_different_type():
    def test(a=3.1):
        return a

    interactive = interact(test, a=(0, 4))
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.FloatSlider)
    assert widget.value == 3.1
    assert widget.start == 0
    assert widget.end == 4
예제 #8
0
def test_integer_interact():
    def test(a):
        return a

    interactive = interact(test, a=1)
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.IntSlider)
    assert widget.value == 1
    assert widget.start == -1
    assert widget.step == 1
    assert widget.end == 3
예제 #9
0
def test_tuple_int_range_interact():
    def test(a):
        return a

    interactive = interact(test, a=(0, 4))
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.IntSlider)
    assert widget.value == 2
    assert widget.start == 0
    assert widget.step == 1
    assert widget.end == 4
예제 #10
0
def test_tuple_float_range_interact_with_default():
    def test(a=3.1):
        return a

    interactive = interact(test, a=(0, 4, 0.1))
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.FloatSlider)
    assert widget.value == 3.1
    assert widget.start == 0
    assert widget.step == 0.1
    assert widget.end == 4
예제 #11
0
def test_interact_updates_panel(document, comm):
    def test(a):
        return a

    interactive = interact(test, a=False)
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.Checkbox)
    assert widget.value == False

    column = interactive._get_model(document, comm=comm)
    assert isinstance(column, BkColumn)
    box = column.children[1]
    div = get_div(box)
    assert div.text == '<pre>False</pre>'

    widget.value = True
    assert div.text == '<pre>True</pre>'
예제 #12
0
    def create_layout(self):
        pn.extension()
        title = pn.pane.Markdown("""
                # Financial Analysis
                """,
                                 background='#007500')

        title.session_id = self.session_id

        output = interact(self.statistics_model, stock='TSLA')
        output.session_id = self.session_id
        df_info = output[1][0].object
        # df_widget = pn.widgets.DataFrame(
        #     df_info, name='DataFrame', autosize_mode='fit_columns',width=900)
        # df_widget.session_id = self.session_id

        app_col = pn.Column(title, output[0], output[1][0], width=900)

        return app_col
예제 #13
0
def get_ta(ta_df):
    def get_ta_child(indicator):

        if indicator == "Exponential Moving Avarage (EMA)":
            return ema_plot(ta_df)

        elif indicator == "Bolinger Bands":
            return bb_plot(ta_df)

        elif indicator == "MACD":
            return macd_plot(ta_df)

        elif indicator == "None":
            return price_only(ta_df)

    ta_options = [
        "None", "Exponential Moving Avarage (EMA)", "Bolinger Bands", "MACD"
    ]

    return interact(get_ta_child, indicator=ta_options)
예제 #14
0
def test_interact_replaces_panel(document, comm):
    def test(a):
        return a if a else BkDiv(text='Test')

    interactive = interact(test, a=False)
    pane = interactive._pane
    widget = interactive._widgets['a']
    assert isinstance(widget, widgets.Checkbox)
    assert widget.value == False

    column = interactive._get_model(document, comm=comm)
    assert isinstance(column, BkColumn)
    box = column.children[1]
    div = get_div(box)
    assert div.text == 'Test'

    widget.value = True
    assert pane._callbacks == {}
    div = get_div(column.children[1])
    assert div.text == '<pre>True</pre>'
예제 #15
0
import panel as pn

from panel.interact import interact, interactive, fixed, interact_manual
from panel import widgets

pn.extension()

def f(x):
    return x

interact(f, x=10)
interact(f, x=True)
interact(f, x='Hello there!')

@interact(x=True, y=1.0)
def g(x, y):
    return (x, y)
g

layout = interact(f, x=10)

pn.Column('**A custom interact layout**', pn.Row(layout[0], layout[1]))

def h(p, q):
    return (p, q)

interact(h, p=5, q=fixed(20))

interact(f, x=widgets.IntSlider(start=-10,end=30,step=1,value=10))

pn.extension()

df = pd.read_csv('~/Documents/project_ticker_data.csv')
ticker_list = df['ticker'].drop_duplicates()

#def choose_ticker(ticker):

#ticker_list
#interact(choose_year, year=list_of_years_2)


def plot_candlestick_chart(ticker):
    df = pd.read_csv('~/Documents/project_ticker_data.csv')
    df.drop(columns=['Unnamed: 0'], inplace=True)
    df.set_index('ticker', inplace=True)
    ticker_df = df.loc[ticker]
    fig = go.Figure(data=[
        go.Candlestick(x=ticker_df['Date'],
                       open=ticker_df['Open'],
                       high=ticker_df['High'],
                       low=ticker_df['Low'],
                       close=ticker_df['Close'])
    ])
    #fig.show()
    return fig.show()


#plot_candlestick_chart('INTC')
interact(plot_candlestick_chart, ticker=['INTC', 'AAPL'])
# %%
예제 #17
0
                           name="Values weight")
resample = widgets.LiteralInput(value=None, name="Resample")
resample = widgets.Select(options={"Day": "D", "Week": "W", "Month": "M"})
columns = widgets.MultiSelect(options=df.columns.values.tolist(),
                              value=df.columns.values.tolist(),
                              name="Series")
columns.height = 300
columns.width = 200

dates = widgets.DateRangeSlider(start=df.index[0],
                                end=df.index[-1],
                                name="Date range",
                                value=(df.index[0], df.index[-1]))
widget, plot = interact(metaplot,
                        shift_weight=shift,
                        numvals_weight=nums,
                        dates=dates,
                        columns=columns,
                        resample=resample)

# In[ ]:

# In[ ]:

# In[ ]:

# In[16]:

dashboard = pn.Row(pn.Column(plot), pn.Column(widget))

# In[15]:
예제 #18
0
''',
    align="center",
    width_policy="max",
)

lower_text = pn.pane.Markdown(
    '''
<h2><bold>Please wait for simulations and analysis to run after initiating the request, results will appear in a new window.</bold></h2>
---
        ''',
    align="center",
    width_policy="max",
    margin=(0, 50),
)

left_row = pn.Row(side_text, align="start")
middle_row = pn.Row(interact(ta_pane, asset=assets),
                    align="end",
                    width_policy="min")
both_row = pn.Row(left_row, middle_row)

crypto_rows_column = pn.Column(both_row,
                               crypto_selector_row,
                               result,
                               select_button,
                               lower_text,
                               align="center",
                               sizing_mode='stretch_both')

crypto_rows_column.show()
예제 #19
0
    def create_layout(self):
        pn.extension()
        title = pn.pane.Markdown("""
                # Stock Market Forecasting tool (version alpha)
                """,
                                 background='#007500')

        title_recom = pn.pane.Markdown("""
                # Recommendations by other firms in the past 60 days
                """,
                                       background='#007500')

        title.session_id = self.session_id
        title_recom.session_id = self.session_id

        status_console = pn.pane.Markdown(self.status)

        # visualize table which contains company info
        comp_data = interact(self.comp_info, stock='TSLA')
        comp_data.session_id = self.session_id
        # df_info = comp_data[1][0].object
        # df_widget = pn.widgets.DataFrame(
        #     df_info, name='DataFrame', autosize_mode='fit_columns',width=400)
        # df_widget.session_id = self.session_id

        # visualize table which contains stock earnings
        # stk_news = interact(self.stock_news, stock='TSLA')
        # stk_news.session_id = self.session_id
        # df_info2 = stk_news[1][0].object
        # df_widget2 = pn.widgets.DataFrame(
        #     df_info2, name='DataFrame', autosize_mode='fit_columns',width=400)
        # df_widget2.session_id = self.session_id

        # visualize table which contains recommendations by other banks and traders
        stk_recom = interact(self.stock_recom, stock='TSLA')
        stk_recom.session_id = self.session_id
        # df_info3 = stk_recom[1][0].object
        # df_widget3 = pn.widgets.DataFrame(
        #     df_info3, name='DataFrame', autosize_mode='fit_columns',width=900,background='#00ff00')
        # df_widget3.session_id = self.session_id

        # Plot forecast and real data
        layout = interact(self.layout_vis, stock='TSLA')
        layout.session_id = self.session_id

        # app_col1 = pn.Column(layout[1],title_recom,df_widget3,width=2100)
        # app_col = pn.Column(title,layout[0],df_widget, df_widget2,width=400)
        # app_row = pn.Row(app_col,app_col1,margin=(25, 5, 25, 25),width=2100) #, background='#007500')
        app_col1 = pn.Column(title_recom, stk_recom[1][0], width=900)
        # app_col = pn.Column(title,layout[0],stk_recom[0],comp_data[0],stk_news[0],comp_data[1][0], stk_news[1][0],width=400)
        app_col = pn.Column(title,
                            layout[0],
                            stk_recom[0],
                            comp_data[0],
                            comp_data[1][0],
                            width=400)
        app_row = pn.Row(app_col,
                         layout[1],
                         app_col1,
                         margin=(25, 5, 25, 25),
                         width=900)  #, background='#007500')

        return app_row