def get_weights_html(self):
        fmt_pct = tf.FmtPercent(1, apply_to_header_and_index=False)
        fmt_align = tf.FmtAlignTable("left")
        fmt_background = tf.FmtStripeBackground(
            first_color=tf.colors.LIGHT_GREY,
            second_color=tf.colors.WHITE,
            header_color=tf.colors.BLACK)

        targetweights = Block(self.InputList[3],
                              formatters=[fmt_pct, fmt_align, fmt_background],
                              use_default_formatters=False)._repr_html_()
        targetweights = {'targetweights_table': targetweights}
        effectiveweights = Block(
            self.InputList[4],
            formatters=[fmt_pct, fmt_align, fmt_background],
            use_default_formatters=False)._repr_html_()
        effectiveweights = {'effectiveweights_table': effectiveweights}
        return targetweights, effectiveweights
Esempio n. 2
0
def test_FmtPercent():
    fmt = pbtf.FmtPercent(2)
    assert fmt.fmt_string == '{:.2%}'
    data = FormatterData(0.1234, None, None, None)
    res = fmt._modify_cell_content(data)
    assert res == '12.34%'
    def get_performance_stats_html(self):

        pct_rows = [('P&L', 'Total return'), ('P&L', 'Annual return'),
                    ('P&L', 'Annual return (asset mode)'),
                    ('Risk-adjusted return based on Drawdown',
                     'Max percentage drawdown')]
        dec_rows = [
            ('P&L', 'Starting cash'),
            ('P&L', 'End value'),
            ('Risk-adjusted return based on Drawdown', 'Max money drawdown'),
            # Distribution
            ('Distribution moments', 'Returns volatility'),
            ('Distribution moments', 'Returns skewness'),
            ('Distribution moments', 'Returns kurtosis'),
            # Risk-adjusted return based on Volatility
            ('Risk-adjusted return based on Volatility', 'Treynor ratio'),
            ('Risk-adjusted return based on Volatility', 'Sharpe ratio'),
            ('Risk-adjusted return based on Volatility', 'Information ratio'),
            # Risk-adjusted return based on Value at Risk
            ('Risk-adjusted return based on Value at Risk', 'VaR'),
            ('Risk-adjusted return based on Value at Risk',
             'Expected Shortfall'),
            ('Risk-adjusted return based on Value at Risk', 'Excess var'),
            ('Risk-adjusted return based on Value at Risk',
             'Conditional sharpe ratio'),
            # Risk-adjusted return based on Lower Partial Moments
            ('Risk-adjusted return based on Lower Partial Moments',
             'Omega ratio'),
            ('Risk-adjusted return based on Lower Partial Moments',
             'Sortino ratio'),
            ('Risk-adjusted return based on Lower Partial Moments',
             'Kappa three ratio'),
            ('Risk-adjusted return based on Lower Partial Moments',
             'Gain loss ratio'),
            ('Risk-adjusted return based on Lower Partial Moments',
             'Upside potential ratio'),
            # Risk-adjusted return based on Drawdown
            ('Risk-adjusted return based on Drawdown', 'Calmar ratio')
        ]

        fmt_pct = tf.FmtPercent(1,
                                rows=pct_rows,
                                apply_to_header_and_index=False)
        fmt_dec = tf.FmtDecimals(2,
                                 rows=dec_rows,
                                 apply_to_header_and_index=False)
        fmt_align = tf.FmtAlignTable("left")
        fmt_background = tf.FmtStripeBackground(
            first_color=tf.colors.LIGHT_GREY,
            second_color=tf.colors.WHITE,
            header_color=tf.colors.BLACK)
        fmt_multiindex = tf.FmtExpandMultiIndex(operator=tf.OP_NONE)

        perf_data = Block(self.InputList[2],
                          formatters=[
                              fmt_multiindex, fmt_pct, fmt_dec, fmt_align,
                              fmt_background
                          ],
                          use_default_formatters=False)._repr_html_()
        perf_data = {'performance_table': perf_data}
        return perf_data