Skip to content

Commit 3dcb13f

Browse files
committed
ENH Format assets in capacity tear sheet; fix warnings
1 parent adcdea8 commit 3dcb13f

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

pyfolio/capacity.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ def days_to_liquidate_positions(positions, market_data,
8282
"""
8383

8484
DV = market_data['volume'] * market_data['price']
85-
roll_mean_dv = pd.rolling_mean(DV, mean_volume_window).shift()
85+
roll_mean_dv = DV.rolling(window=mean_volume_window,
86+
center=False).mean().shift()
8687
roll_mean_dv = roll_mean_dv.replace(0, np.nan)
8788

8889
positions_alloc = pos.get_percent_alloc(positions)
@@ -148,7 +149,7 @@ def get_max_days_to_liquidate_by_ticker(positions, market_data,
148149
liq_desc.index.levels[0].name = 'symbol'
149150
liq_desc.index.levels[1].name = 'date'
150151

151-
worst_liq = liq_desc.reset_index().sort(
152+
worst_liq = liq_desc.reset_index().sort_values(
152153
'days_to_liquidate', ascending=False).groupby('symbol').first()
153154

154155
return worst_liq
@@ -184,7 +185,7 @@ def get_low_liquidity_transactions(transactions, market_data,
184185
bar_consumption = txn_daily_w_bar.assign(
185186
max_pct_bar_consumed=(
186187
txn_daily_w_bar.amount/txn_daily_w_bar.volume)*100
187-
).sort('max_pct_bar_consumed', ascending=False)
188+
).sort_values('max_pct_bar_consumed', ascending=False)
188189
max_bar_consumption = bar_consumption.groupby('symbol').first()
189190

190191
return max_bar_consumption[['date', 'max_pct_bar_consumed']]

pyfolio/tears.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -798,6 +798,8 @@ def create_capacity_tear_sheet(returns, positions, transactions,
798798
max_bar_consumption=liquidation_daily_vol_limit,
799799
capital_base=1e6,
800800
mean_volume_window=5)
801+
max_days_by_ticker.index = (
802+
max_days_by_ticker.index.map(utils.format_asset))
801803

802804
print("Whole backtest:")
803805
utils.print_table(
@@ -810,12 +812,16 @@ def create_capacity_tear_sheet(returns, positions, transactions,
810812
capital_base=1e6,
811813
mean_volume_window=5,
812814
last_n_days=last_n_days)
815+
max_days_by_ticker_lnd.index = (
816+
max_days_by_ticker_lnd.index.map(utils.format_asset))
813817

814818
print("Last {} trading days:".format(last_n_days))
815819
utils.print_table(
816820
max_days_by_ticker_lnd[max_days_by_ticker_lnd.days_to_liquidate > 1])
817821

818822
llt = capacity.get_low_liquidity_transactions(transactions, market_data)
823+
llt.index = llt.index.map(utils.format_asset)
824+
819825
print('Tickers with daily transactions consuming >{}% of daily bar \n'
820826
'all backtest:'.format(trade_daily_vol_limit * 100))
821827
utils.print_table(

0 commit comments

Comments
 (0)