Skip to content

Implement amount-outstanding-weighted long-short portfolios for 41 bond characteristics #7

Description

@Yuning598

Background

The weighting decision is now resolved. The bond dataset contains 41 characteristics, and size is the bond's amount outstanding. Use size as the value-weighting variable, analogous to market equity in the equity portfolios.

Characteristic universe

list_bond = [
    'rating', 'duration', 'VaR_5%', 'Amihud', '1-month_mom',
    'ytm', 'size', 'age', 'time2maturity', 'turnover',
    'VaR_10%', 'std_Amihud', 'Roll', 'BPW', 'P_HL',
    'P_FHT', 'TC_IQR', 'Range_daily', 'trades', 'variance',
    'skewness', 'kurtosis', 'COSKEW', 'ISKEW',
    'market_beta', 'market_residual_variance',
    'term_beta', 'default_beta', 'term_default_residual_variance',
    'drf_beta', 'crf_beta', 'lrf_beta', 'liq_beta', 'vix_beta',
    'unc_beta', '6-month_mom', '12-month_mom', 'LTR_mom',
    'barQ', 'std_barQ_1mom', 'range_monthly',
]

Portfolio construction

For a portfolio formed at month t, define the value weight from amount outstanding:

w(i,t) = size(i,t) / sum_j size(j,t)
R(p,t+1) = sum_i w(i,t) * R(i,t+1)

Use formation-period information only; the sort signal and size weight must be aligned so that no future information enters the return period. Report equal-weighted results as a benchmark and amount-outstanding-weighted results as the primary value-weighted specification.

The calculation pipeline may initially use monthly_return while the refreshed excess-return field is pending. Return-field selection must be explicit and configurable so the final published results can switch to the approved excess_return field tracked in #8 and validated in #9.

Acceptance criteria

  • All 41 characteristics are recognized through a single auditable configuration.
  • Each characteristic produces long and short legs under the adopted portfolio-count convention.
  • Value-weighted portfolios use positive, non-missing size values only.
  • Portfolio weights sum to one within month and leg, subject only to numerical tolerance.
  • Sort signals and weights are lagged consistently and cannot introduce look-ahead bias.
  • Equal-weighted and amount-outstanding-weighted results are both available and labeled correctly.
  • Output records long/short counts, total amount outstanding, missing-weight exclusions, and the selected return field.
  • Tests cover missing or non-positive size, tied signals, small groups, and return-field switching.

Related issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions