Beispiel #1
0
def test_init_portfolio_failing():
    with pytest.raises(
            ValueError,
            match=
            r"Number of tickers \(2\) should be equal to the weights number \(3\)",
    ):
        ok.Portfolio(['RUB.FX', 'MCFTR.INDX'], weights=[0.1, 0.2, 0.7])
    with pytest.raises(ValueError, match="Weights sum is not equal to one."):
        ok.Portfolio(['RUB.FX', 'MCFTR.INDX'], weights=[0.1, 0.2])
Beispiel #2
0
def _init_portfolio(request, _init_portfolio_values):
    request.cls.portfolio = ok.Portfolio(**_init_portfolio_values)

    _init_portfolio_values['inflation'] = False
    request.cls.portfolio_no_inflation = ok.Portfolio(**_init_portfolio_values)

    _init_portfolio_values['first_date'] = '2019-02'
    request.cls.portfolio_short_history = ok.Portfolio(
        **_init_portfolio_values)
Beispiel #3
0
def test_init_portfolio_failing(_init_portfolio_values):
    with pytest.raises(
            ValueError,
            match=
            r'Number of tickers \(2\) should be equal to the weights number \(3\)'
    ):
        _init_portfolio_values['weights'] = [0.1, 0.2, 0.7]
        ok.Portfolio(**_init_portfolio_values)
    with pytest.raises(ValueError, match='Weights sum is not equal to one.'):
        _init_portfolio_values['weights'] = [0.1, 0.2]
        ok.Portfolio(**_init_portfolio_values)
    def plots(self):
        ##-- Page 3
        self.ui.stackedWidget.setCurrentWidget(self.ui.page_3)
        if self.weights is None or len(self.all_tickers) == 0:
            return
        tickers = [ticker + '.US' for ticker in self.all_tickers]
        weights = [weight for weight in self.weights.values()]
        portfolio_okama = ok.Portfolio(tickers,
                                       weights=weights,
                                       ccy='USD',
                                       last_date=datetime.datetime.now(),
                                       first_date="2006-01")

        self.ui.browser_page_4 = QtWebEngineWidgets.QWebEngineView(self)
        self.ui.stackedWidget_2.addWidget(self.ui.browser_page_4)
        self.ui.btn_page_4.clicked.connect(
            lambda: self.plot_forecast(portfolio_okama))
        self.ui.btn_page_5.clicked.connect(self.plot_assets)
        self.ui.btn_page_6.clicked.connect(self.plot_transition_map)

        self.ui.btn_page_4.clicked.connect(self.btn_page_4_visible)
        self.ui.btn_page_5.clicked.connect(self.btn_page_5_visible)
        self.ui.btn_page_6.clicked.connect(self.btn_page_6_visible)
        # self.plot_forecast(portfolio_okama)
        pass
Beispiel #5
0
def test_initialization_failing():
    with pytest.raises(
            ValueError,
            match=
            r"Number of tickers \(2\) should be equal to the weights number \(3\)"
    ):
        ok.Portfolio(assets=['MCFTR.INDX', 'MCFTR.INDX', 'RUB.FX'],
                     weights=[.3, .3, .4])
Beispiel #6
0
import okama as ok

ln = ok.Portfolio(['EDV.US'], inflation=False)
ln.plot_forecast(distr='lognorm', years=2)
Beispiel #7
0
def portfolio_short_history(init_portfolio_values):
    _portfolio_short_history = deepcopy(init_portfolio_values)
    _portfolio_short_history['first_date'] = '2019-02'
    return ok.Portfolio(**_portfolio_short_history)
Beispiel #8
0
def portfolio_no_inflation(init_portfolio_values):
    _portfolio_no_inflation = deepcopy(init_portfolio_values)
    _portfolio_no_inflation['inflation'] = False
    _portfolio_no_inflation['rebalancing_period'] = 'month'
    return ok.Portfolio(**_portfolio_no_inflation)
Beispiel #9
0
def portfolio_rebalanced_month(init_portfolio_values):
    _portfolio_rebalanced_month = deepcopy(init_portfolio_values)
    _portfolio_rebalanced_month['rebalancing_period'] = 'month'
    return ok.Portfolio(**_portfolio_rebalanced_month)
Beispiel #10
0
def portfolio_not_rebalanced(init_portfolio_values):
    _portfolio_not_rebalanced = deepcopy(init_portfolio_values)
    _portfolio_not_rebalanced['rebalancing_period'] = 'none'
    return ok.Portfolio(**_portfolio_not_rebalanced)
Beispiel #11
0
def portfolio_rebalanced_year(init_portfolio_values):
    return ok.Portfolio(**init_portfolio_values)
Beispiel #12
0
def portfolio_dividends(init_portfolio_values):
    _portfolio_dividends = deepcopy(init_portfolio_values)
    _portfolio_dividends['assets'] = ['SBER.MOEX', 'T.US', 'GNS.LSE']
    return ok.Portfolio(**_portfolio_dividends)
Beispiel #13
0
import okama as ok

x = ok.Portfolio(['LKOH.MOEX', 'T.US'], ccy='USD', rebalancing_period='none')
y = ok.AssetList(['SPY.US', x])
print(y.assets_dividend_yield)
Beispiel #14
0
import okama as ok
import pandas as pd

x = ok.Portfolio(symbols=['RUB.FX', 'MCFTR.INDX'],
                 ccy='RUB',
                 first_date='2015-01',
                 last_date='2020-01',
                 inflation=True)
print(x.describe())
print('\n\n*******************')
print(pd.read_pickle('tests/data/portfolio_description.pkl'))