feat: derivatives basis & calendar-spread indicators (part 3 of 3) (#128)

* feat(derivatives): TermStructureBasis indicator (core)

* feat(derivatives): CalendarSpread indicator (core)

* feat(derivatives): Python, Node and WASM bindings for basis & calendar-spread indicators

* test(derivatives): Python and Node tests for basis & calendar-spread indicators

* docs(derivatives): README row + counter 242->244, CHANGELOG part 3; fuzz basis indicators
This commit is contained in:
kingchenc
2026-06-01 22:07:35 +02:00
committed by GitHub
parent 8e5bfd07ce
commit 2d140419bb
17 changed files with 830 additions and 12 deletions
@@ -11,9 +11,9 @@
use libfuzzer_sys::fuzz_target;
use wickra_core::{
BatchExt, DerivativesTick, FundingBasis, FundingRate, FundingRateMean, FundingRateZScore,
Indicator, LiquidationFeatures, LongShortRatio, OIPriceDivergence, OIWeighted,
OpenInterestDelta, TakerBuySellRatio,
BatchExt, CalendarSpread, DerivativesTick, FundingBasis, FundingRate, FundingRateMean,
FundingRateZScore, Indicator, LiquidationFeatures, LongShortRatio, OIPriceDivergence,
OIWeighted, OpenInterestDelta, TakerBuySellRatio, TermStructureBasis,
};
#[inline(never)]
@@ -51,6 +51,8 @@ fuzz_target!(|data: &[u8]| {
drive(OIWeighted::new, &ticks);
drive(LongShortRatio::new, &ticks);
drive(TakerBuySellRatio::new, &ticks);
drive(TermStructureBasis::new, &ticks);
drive(CalendarSpread::new, &ticks);
// LiquidationFeatures emits a struct, not an f64, so drive it directly.
let mut liq = LiquidationFeatures::new();