FerroSpread
Bull call debit
Build a directional, defined-risk candidate set from one chain.
A bull call debit is one of the candidate families generated by
build_spread_candidates. Enable the family in SpreadBuilderConfig, pass the
same enriched rows used by the pipeline, then filter the returned summaries for
the family or resolution you want to inspect.
use spread_builder::{build_spread_candidates, SpreadBuilderInput};
config.spread_builder.bull_call_debit.enabled = true;
let input = SpreadBuilderInput {
snapshot_date,
equity_rows: &equity_rows,
option_rows: &option_rows,
eligibility_rows: &eligibility_rows,
min_short_leg_open_interest: Some(100),
};
let output = build_spread_candidates(&config.spread_builder, &input)?;
for candidate in output.summaries {
println!(
"{} {} {} {:?}",
candidate.symbol,
candidate.strategy_family,
candidate.strategy_code,
candidate.tradeable_resolution_reason
);
}
# Ok::<(), Box<dyn std::error::Error>>(())Construction-time constraints keep the candidate set focused before ranking. Use the analytics bundle for expected value, probability of profit, health drivers, and scenario decomposition.