1pub(crate) mod pattern_swing;
11
12mod abandoned_baby;
13mod abcd;
14mod absolute_breadth_index;
15mod acceleration_bands;
16mod accelerator_oscillator;
17mod ad_oscillator;
18mod ad_volume_line;
19mod adaptive_cycle;
20mod adaptive_laguerre_filter;
21mod adl;
22mod advance_block;
23mod advance_decline;
24mod advance_decline_ratio;
25mod adx;
26mod adxr;
27mod alligator;
28mod alma;
29mod alpha;
30mod amihud_illiquidity;
31mod anchored_rsi;
32mod anchored_vwap;
33mod apo;
34mod aroon;
35mod aroon_oscillator;
36mod atr;
37mod atr_bands;
38mod atr_ratchet;
39mod atr_trailing_stop;
40mod auto_fib;
41mod autocorrelation;
42mod average_daily_range;
43mod average_drawdown;
44mod avg_price;
45mod awesome_oscillator;
46mod awesome_oscillator_histogram;
47mod balance_of_power;
48mod bat;
49mod belt_hold;
50mod beta;
51mod beta_neutral_spread;
52mod better_volume;
53mod bipower_variation;
54mod body_size_pct;
55mod bollinger;
56mod bollinger_bandwidth;
57mod bomar_bands;
58mod breadth_thrust;
59mod breakaway;
60mod bullish_percent_index;
61mod butterfly;
62mod calendar_spread;
63mod calmar_ratio;
64mod camarilla_pivots;
65mod cci;
66mod center_of_gravity;
67mod cfo;
68mod chaikin_oscillator;
69mod chaikin_volatility;
70mod chande_kroll_stop;
71mod chandelier_exit;
72mod choppiness_index;
73mod classic_pivots;
74mod close_vs_open;
75mod closing_marubozu;
76mod cmf;
77mod cmo;
78mod coefficient_of_variation;
79mod cointegration;
80mod concealing_baby_swallow;
81mod conditional_value_at_risk;
82mod connors_rsi;
83mod coppock;
84mod counterattack;
85mod crab;
86mod cumulative_volume_index;
87mod cup_and_handle;
88mod cvd;
89mod cybernetic_cycle;
90mod cypher;
91mod day_of_week_profile;
92mod decycler;
93mod decycler_oscillator;
94mod dema;
95mod demand_index;
96mod demark_pivots;
97mod depth_slope;
98mod derivative_oscillator;
99mod detrended_std_dev;
100mod disparity_index;
101mod distance_ssd;
102mod doji;
103mod doji_star;
104mod donchian;
105mod donchian_stop;
106mod double_bollinger;
107mod double_top_bottom;
108mod downside_gap_three_methods;
109mod dpo;
110mod dragonfly_doji;
111mod drawdown_duration;
112mod dx;
113mod dynamic_momentum_index;
114mod ease_of_movement;
115mod effective_spread;
116mod ehlers_stochastic;
117mod ehma;
118mod elder_impulse;
119mod elder_ray;
120mod elder_safezone;
121mod ema;
122mod empirical_mode_decomposition;
123mod engulfing;
124mod evening_doji_star;
125mod evwma;
126mod ewma_volatility;
127mod expectancy;
128mod falling_three_methods;
129mod fama;
130mod fib_arcs;
131mod fib_channel;
132mod fib_confluence;
133mod fib_extension;
134mod fib_fan;
135mod fib_projection;
136mod fib_retracement;
137mod fib_time_zones;
138mod fibonacci_pivots;
139mod fisher_rsi;
140mod fisher_transform;
141mod flag_pennant;
142mod footprint;
143mod force_index;
144mod fractal_chaos_bands;
145mod frama;
146mod funding_basis;
147mod funding_rate;
148mod funding_rate_mean;
149mod funding_rate_zscore;
150mod gain_loss_ratio;
151mod gap_side_by_side_white;
152mod garch11;
153mod garman_klass;
154mod gartley;
155mod gator_oscillator;
156mod generalized_dema;
157mod geometric_ma;
158mod golden_pocket;
159mod granger_causality;
160mod gravestone_doji;
161mod hammer;
162mod hanging_man;
163mod harami;
164mod head_and_shoulders;
165mod heikin_ashi;
166mod high_low_index;
167mod high_low_range;
168mod high_wave;
169mod hikkake;
170mod hikkake_modified;
171mod hilbert_dominant_cycle;
172mod hilo_activator;
173mod historical_volatility;
174mod hma;
175mod holt_winters;
176mod homing_pigeon;
177mod ht_dcphase;
178mod ht_phasor;
179mod ht_trendmode;
180mod hurst_channel;
181mod hurst_exponent;
182mod ichimoku;
183mod identical_three_crows;
184mod in_neck;
185mod inertia;
186mod information_ratio;
187mod initial_balance;
188mod instantaneous_trendline;
189mod intraday_intensity;
190mod intraday_momentum_index;
191mod intraday_volatility_profile;
192mod inverse_fisher_transform;
193mod inverted_hammer;
194mod jarque_bera;
195mod jma;
196mod jump_indicator;
197mod kagi_bars;
198mod kalman_hedge_ratio;
199mod kama;
200mod kase_devstop;
201mod kase_permission_stochastic;
202mod kelly_criterion;
203mod keltner;
204mod kendall_tau;
205mod kicking;
206mod kicking_by_length;
207mod kst;
208mod kurtosis;
209mod kvo;
210mod kyles_lambda;
211mod ladder_bottom;
212mod laguerre_rsi;
213mod lead_lag_cross_correlation;
214mod linreg;
215mod linreg_angle;
216mod linreg_channel;
217mod linreg_intercept;
218mod linreg_slope;
219mod liquidation_features;
220mod log_return;
221mod long_legged_doji;
222mod long_line;
223mod long_short_ratio;
224mod ma_envelope;
225mod macd;
226mod macd_ext;
227mod macd_fix;
228mod macd_histogram;
229mod mama;
230mod market_facilitation_index;
231mod marubozu;
232mod mass_index;
233mod mat_hold;
234mod matching_low;
235mod max_drawdown;
236mod mcclellan_oscillator;
237mod mcclellan_summation_index;
238mod mcginley_dynamic;
239mod median_absolute_deviation;
240mod median_channel;
241mod median_ma;
242mod median_price;
243mod mfi;
244mod microprice;
245mod mid_point;
246mod mid_price;
247mod minus_di;
248mod minus_dm;
249mod modified_ma_stop;
250mod mom;
251mod morning_doji_star;
252mod morning_evening_star;
253mod natr;
254mod new_highs_new_lows;
255mod nrtr;
256mod nvi;
257mod ob_imbalance_full;
258mod ob_imbalance_top1;
259mod ob_imbalance_topn;
260mod obv;
261mod oi_delta;
262mod oi_price_divergence;
263mod oi_weighted;
264mod omega_ratio;
265mod on_neck;
266mod opening_marubozu;
267mod opening_range;
268mod order_flow_imbalance;
269mod ou_half_life;
270mod overnight_gap;
271mod overnight_intraday_return;
272mod pain_index;
273mod pair_spread_zscore;
274mod pairwise_beta;
275mod parkinson;
276mod pearson_correlation;
277mod percent_above_ma;
278mod percent_b;
279mod percentage_trailing_stop;
280mod pgo;
281mod piercing_dark_cloud;
282mod plus_di;
283mod plus_dm;
284mod pmo;
285mod point_and_figure_bars;
286mod polarized_fractal_efficiency;
287mod ppo;
288mod ppo_histogram;
289mod profit_factor;
290mod projection_bands;
291mod projection_oscillator;
292mod psar;
293mod pvi;
294mod qqe;
295mod qstick;
296mod quartile_bands;
297mod quoted_spread;
298mod r_squared;
299mod realized_spread;
300mod realized_volatility;
301mod recovery_factor;
302mod rectangle_range;
303mod regime_label;
304mod relative_strength_ab;
305mod renko_bars;
306mod renko_trailing_stop;
307mod rickshaw_man;
308mod rising_three_methods;
309mod rmi;
310mod roc;
311mod rocp;
312mod rocr;
313mod rocr100;
314mod rogers_satchell;
315mod roll_measure;
316mod rolling_correlation;
317mod rolling_covariance;
318mod rolling_iqr;
319mod rolling_min_max_scaler;
320mod rolling_percentile_rank;
321mod rolling_quantile;
322mod roofing_filter;
323mod rsi;
324mod rsx;
325mod rvi;
326mod rvi_volatility;
327mod rwi;
328mod sample_entropy;
329mod sar_ext;
330mod seasonal_z_score;
331mod separating_lines;
332mod session_high_low;
333mod session_range;
334mod session_vwap;
335mod shannon_entropy;
336mod shark;
337mod sharpe_ratio;
338mod shooting_star;
339mod short_line;
340mod signed_volume;
341mod sine_wave;
342mod sine_weighted_ma;
343mod skewness;
344mod sma;
345mod smi;
346mod smma;
347mod sortino_ratio;
348mod spearman_correlation;
349mod spinning_top;
350mod spread_ar1_coefficient;
351mod spread_bollinger_bands;
352mod spread_hurst;
353mod stalled_pattern;
354mod standard_error;
355mod standard_error_bands;
356mod starc_bands;
357mod stc;
358mod std_dev;
359mod step_trailing_stop;
360mod stick_sandwich;
361mod stoch_rsi;
362mod stochastic;
363mod stochastic_cci;
364mod super_smoother;
365mod super_trend;
366mod t3;
367mod taker_buy_sell_ratio;
368mod takuri;
369mod tasuki_gap;
370mod td_combo;
371mod td_countdown;
372mod td_demarker;
373mod td_differential;
374mod td_lines;
375mod td_open;
376mod td_pressure;
377mod td_range_projection;
378mod td_rei;
379mod td_risk_level;
380mod td_sequential;
381mod td_setup;
382mod tema;
383mod term_structure_basis;
384mod three_drives;
385mod three_inside;
386mod three_line_strike;
387mod three_outside;
388mod three_soldiers_or_crows;
389mod three_stars_in_south;
390mod thrusting;
391mod tick_index;
392mod tii;
393mod time_based_stop;
394mod time_of_day_return_profile;
395mod tpo_profile;
396mod trade_imbalance;
397mod trade_volume_index;
398mod trend_label;
399mod trend_strength_index;
400mod treynor_ratio;
401mod triangle;
402mod trima;
403mod trin;
404mod triple_top_bottom;
405mod trix;
406mod true_range;
407mod tsf;
408mod tsf_oscillator;
409mod tsi;
410mod tsv;
411mod ttm_squeeze;
412mod ttm_trend;
413mod turn_of_month;
414mod tweezer;
415mod twiggs_money_flow;
416mod two_crows;
417mod typical_price;
418mod ulcer_index;
419mod ultimate_oscillator;
420mod unique_three_river;
421mod up_down_volume_ratio;
422mod upside_gap_three_methods;
423mod upside_gap_two_crows;
424mod value_area;
425mod value_at_risk;
426mod variance;
427mod variance_ratio;
428mod vertical_horizontal_filter;
429mod vidya;
430mod volatility_cone;
431mod volatility_of_volatility;
432mod volatility_ratio;
433mod volty_stop;
434mod volume_by_time_profile;
435mod volume_oscillator;
436mod volume_profile;
437mod volume_rsi;
438mod volume_weighted_macd;
439mod vortex;
440mod vpin;
441mod vpt;
442mod vwap;
443mod vwap_stddev_bands;
444mod vwma;
445mod vzo;
446mod wad;
447mod wave_pm;
448mod wave_trend;
449mod wedge;
450mod weighted_close;
451mod wick_ratio;
452mod williams_fractals;
453mod williams_r;
454mod win_rate;
455mod wma;
456mod woodie_pivots;
457mod yang_zhang;
458mod yoyo_exit;
459mod z_score;
460mod zero_lag_macd;
461mod zig_zag;
462mod zlema;
463
464pub use abandoned_baby::AbandonedBaby;
465pub use abcd::Abcd;
466pub use absolute_breadth_index::AbsoluteBreadthIndex;
467pub use acceleration_bands::{AccelerationBands, AccelerationBandsOutput};
468pub use accelerator_oscillator::AcceleratorOscillator;
469pub use ad_oscillator::AdOscillator;
470pub use ad_volume_line::AdVolumeLine;
471pub use adaptive_cycle::AdaptiveCycle;
472pub use adaptive_laguerre_filter::AdaptiveLaguerreFilter;
473pub use adl::Adl;
474pub use advance_block::AdvanceBlock;
475pub use advance_decline::AdvanceDecline;
476pub use advance_decline_ratio::AdvanceDeclineRatio;
477pub use adx::{Adx, AdxOutput};
478pub use adxr::Adxr;
479pub use alligator::{Alligator, AlligatorOutput};
480pub use alma::Alma;
481pub use alpha::Alpha;
482pub use amihud_illiquidity::AmihudIlliquidity;
483pub use anchored_rsi::AnchoredRsi;
484pub use anchored_vwap::AnchoredVwap;
485pub use apo::Apo;
486pub use aroon::{Aroon, AroonOutput};
487pub use aroon_oscillator::AroonOscillator;
488pub use atr::Atr;
489pub use atr_bands::{AtrBands, AtrBandsOutput};
490pub use atr_ratchet::{AtrRatchet, AtrRatchetOutput};
491pub use atr_trailing_stop::AtrTrailingStop;
492pub use auto_fib::{AutoFib, AutoFibOutput};
493pub use autocorrelation::Autocorrelation;
494pub use average_daily_range::AverageDailyRange;
495pub use average_drawdown::AverageDrawdown;
496pub use avg_price::AvgPrice;
497pub use awesome_oscillator::AwesomeOscillator;
498pub use awesome_oscillator_histogram::AwesomeOscillatorHistogram;
499pub use balance_of_power::BalanceOfPower;
500pub use bat::Bat;
501pub use belt_hold::BeltHold;
502pub use beta::Beta;
503pub use beta_neutral_spread::BetaNeutralSpread;
504pub use better_volume::BetterVolume;
505pub use bipower_variation::BipowerVariation;
506pub use body_size_pct::BodySizePct;
507pub use bollinger::{BollingerBands, BollingerOutput};
508pub use bollinger_bandwidth::BollingerBandwidth;
509pub use bomar_bands::{BomarBands, BomarBandsOutput};
510pub use breadth_thrust::BreadthThrust;
511pub use breakaway::Breakaway;
512pub use bullish_percent_index::BullishPercentIndex;
513pub use butterfly::Butterfly;
514pub use calendar_spread::CalendarSpread;
515pub use calmar_ratio::CalmarRatio;
516pub use camarilla_pivots::{Camarilla, CamarillaPivotsOutput};
517pub use cci::Cci;
518pub use center_of_gravity::CenterOfGravity;
519pub use cfo::Cfo;
520pub use chaikin_oscillator::ChaikinOscillator;
521pub use chaikin_volatility::ChaikinVolatility;
522pub use chande_kroll_stop::{ChandeKrollStop, ChandeKrollStopOutput};
523pub use chandelier_exit::{ChandelierExit, ChandelierExitOutput};
524pub use choppiness_index::ChoppinessIndex;
525pub use classic_pivots::{ClassicPivots, ClassicPivotsOutput};
526pub use close_vs_open::CloseVsOpen;
527pub use closing_marubozu::ClosingMarubozu;
528pub use cmf::ChaikinMoneyFlow;
529pub use cmo::Cmo;
530pub use coefficient_of_variation::CoefficientOfVariation;
531pub use cointegration::{Cointegration, CointegrationOutput};
532pub use concealing_baby_swallow::ConcealingBabySwallow;
533pub use conditional_value_at_risk::ConditionalValueAtRisk;
534pub use connors_rsi::ConnorsRsi;
535pub use coppock::Coppock;
536pub use counterattack::Counterattack;
537pub use crab::Crab;
538pub use cumulative_volume_index::CumulativeVolumeIndex;
539pub use cup_and_handle::CupAndHandle;
540pub use cvd::CumulativeVolumeDelta;
541pub use cybernetic_cycle::CyberneticCycle;
542pub use cypher::Cypher;
543pub use day_of_week_profile::{DayOfWeekProfile, DayOfWeekProfileOutput};
544pub use decycler::Decycler;
545pub use decycler_oscillator::DecyclerOscillator;
546pub use dema::Dema;
547pub use demand_index::DemandIndex;
548pub use demark_pivots::{DemarkPivots, DemarkPivotsOutput};
549pub use depth_slope::DepthSlope;
550pub use derivative_oscillator::DerivativeOscillator;
551pub use detrended_std_dev::DetrendedStdDev;
552pub use disparity_index::DisparityIndex;
553pub use distance_ssd::DistanceSsd;
554pub use doji::Doji;
555pub use doji_star::DojiStar;
556pub use donchian::{Donchian, DonchianOutput};
557pub use donchian_stop::{DonchianStop, DonchianStopOutput};
558pub use double_bollinger::{DoubleBollinger, DoubleBollingerOutput};
559pub use double_top_bottom::DoubleTopBottom;
560pub use downside_gap_three_methods::DownsideGapThreeMethods;
561pub use dpo::Dpo;
562pub use dragonfly_doji::DragonflyDoji;
563pub use drawdown_duration::DrawdownDuration;
564pub use dx::Dx;
565pub use dynamic_momentum_index::DynamicMomentumIndex;
566pub use ease_of_movement::EaseOfMovement;
567pub use effective_spread::EffectiveSpread;
568pub use ehlers_stochastic::EhlersStochastic;
569pub use ehma::Ehma;
570pub use elder_impulse::ElderImpulse;
571pub use elder_ray::{ElderRay, ElderRayOutput};
572pub use elder_safezone::{ElderSafeZone, ElderSafeZoneOutput};
573pub use ema::Ema;
574pub use empirical_mode_decomposition::EmpiricalModeDecomposition;
575pub use engulfing::Engulfing;
576pub use evening_doji_star::EveningDojiStar;
577pub use evwma::Evwma;
578pub use ewma_volatility::EwmaVolatility;
579pub use expectancy::Expectancy;
580pub use falling_three_methods::FallingThreeMethods;
581pub use fama::Fama;
582pub use fib_arcs::{FibArcs, FibArcsOutput};
583pub use fib_channel::{FibChannel, FibChannelOutput};
584pub use fib_confluence::{FibConfluence, FibConfluenceOutput};
585pub use fib_extension::{FibExtension, FibExtensionOutput};
586pub use fib_fan::{FibFan, FibFanOutput};
587pub use fib_projection::{FibProjection, FibProjectionOutput};
588pub use fib_retracement::{FibRetracement, FibRetracementOutput};
589pub use fib_time_zones::{FibTimeZones, FibTimeZonesOutput};
590pub use fibonacci_pivots::{FibonacciPivots, FibonacciPivotsOutput};
591pub use fisher_rsi::FisherRsi;
592pub use fisher_transform::FisherTransform;
593pub use flag_pennant::FlagPennant;
594pub use footprint::{Footprint, FootprintLevel, FootprintOutput};
595pub use force_index::ForceIndex;
596pub use fractal_chaos_bands::{FractalChaosBands, FractalChaosBandsOutput};
597pub use frama::Frama;
598pub use funding_basis::FundingBasis;
599pub use funding_rate::FundingRate;
600pub use funding_rate_mean::FundingRateMean;
601pub use funding_rate_zscore::FundingRateZScore;
602pub use gain_loss_ratio::GainLossRatio;
603pub use gap_side_by_side_white::GapSideBySideWhite;
604pub use garch11::Garch11;
605pub use garman_klass::GarmanKlassVolatility;
606pub use gartley::Gartley;
607pub use gator_oscillator::{GatorOscillator, GatorOscillatorOutput};
608pub use generalized_dema::GeneralizedDema;
609pub use geometric_ma::GeometricMa;
610pub use golden_pocket::{GoldenPocket, GoldenPocketOutput};
611pub use granger_causality::GrangerCausality;
612pub use gravestone_doji::GravestoneDoji;
613pub use hammer::Hammer;
614pub use hanging_man::HangingMan;
615pub use harami::Harami;
616pub use head_and_shoulders::HeadAndShoulders;
617pub use heikin_ashi::{HeikinAshi, HeikinAshiOutput};
618pub use high_low_index::HighLowIndex;
619pub use high_low_range::HighLowRange;
620pub use high_wave::HighWave;
621pub use hikkake::Hikkake;
622pub use hikkake_modified::HikkakeModified;
623pub use hilbert_dominant_cycle::HilbertDominantCycle;
624pub use hilo_activator::HiLoActivator;
625pub use historical_volatility::HistoricalVolatility;
626pub use hma::Hma;
627pub use holt_winters::HoltWinters;
628pub use homing_pigeon::HomingPigeon;
629pub use ht_dcphase::HtDcPhase;
630pub use ht_phasor::{HtPhasor, HtPhasorOutput};
631pub use ht_trendmode::HtTrendMode;
632pub use hurst_channel::{HurstChannel, HurstChannelOutput};
633pub use hurst_exponent::HurstExponent;
634pub use ichimoku::{Ichimoku, IchimokuOutput};
635pub use identical_three_crows::IdenticalThreeCrows;
636pub use in_neck::InNeck;
637pub use inertia::Inertia;
638pub use information_ratio::InformationRatio;
639pub use initial_balance::{InitialBalance, InitialBalanceOutput};
640pub use instantaneous_trendline::InstantaneousTrendline;
641pub use intraday_intensity::IntradayIntensity;
642pub use intraday_momentum_index::IntradayMomentumIndex;
643pub use intraday_volatility_profile::{IntradayVolatilityProfile, IntradayVolatilityProfileOutput};
644pub use inverse_fisher_transform::InverseFisherTransform;
645pub use inverted_hammer::InvertedHammer;
646pub use jarque_bera::JarqueBera;
647pub use jma::Jma;
648pub use jump_indicator::JumpIndicator;
649pub use kagi_bars::{KagiBar, KagiBars};
650pub use kalman_hedge_ratio::{KalmanHedgeRatio, KalmanHedgeRatioOutput};
651pub use kama::Kama;
652pub use kase_devstop::{KaseDevStop, KaseDevStopOutput};
653pub use kase_permission_stochastic::{KasePermissionStochastic, KasePermissionStochasticOutput};
654pub use kelly_criterion::KellyCriterion;
655pub use keltner::{Keltner, KeltnerOutput};
656pub use kendall_tau::KendallTau;
657pub use kicking::Kicking;
658pub use kicking_by_length::KickingByLength;
659pub use kst::{Kst, KstOutput};
660pub use kurtosis::Kurtosis;
661pub use kvo::Kvo;
662pub use kyles_lambda::KylesLambda;
663pub use ladder_bottom::LadderBottom;
664pub use laguerre_rsi::LaguerreRsi;
665pub use lead_lag_cross_correlation::{LeadLagCrossCorrelation, LeadLagCrossCorrelationOutput};
666pub use linreg::LinearRegression;
667pub use linreg_angle::LinRegAngle;
668pub use linreg_channel::{LinRegChannel, LinRegChannelOutput};
669pub use linreg_intercept::LinRegIntercept;
670pub use linreg_slope::LinRegSlope;
671pub use liquidation_features::{LiquidationFeatures, LiquidationFeaturesOutput};
672pub use log_return::LogReturn;
673pub use long_legged_doji::LongLeggedDoji;
674pub use long_line::LongLine;
675pub use long_short_ratio::LongShortRatio;
676pub use ma_envelope::{MaEnvelope, MaEnvelopeOutput};
677pub use macd::{MacdIndicator, MacdOutput};
678pub use macd_ext::{MaType, MacdExt};
679pub use macd_fix::MacdFix;
680pub use macd_histogram::MacdHistogram;
681pub use mama::{Mama, MamaOutput};
682pub use market_facilitation_index::MarketFacilitationIndex;
683pub use marubozu::Marubozu;
684pub use mass_index::MassIndex;
685pub use mat_hold::MatHold;
686pub use matching_low::MatchingLow;
687pub use max_drawdown::MaxDrawdown;
688pub use mcclellan_oscillator::McClellanOscillator;
689pub use mcclellan_summation_index::McClellanSummationIndex;
690pub use mcginley_dynamic::McGinleyDynamic;
691pub use median_absolute_deviation::MedianAbsoluteDeviation;
692pub use median_channel::{MedianChannel, MedianChannelOutput};
693pub use median_ma::MedianMa;
694pub use median_price::MedianPrice;
695pub use mfi::Mfi;
696pub use microprice::Microprice;
697pub use mid_point::MidPoint;
698pub use mid_price::MidPrice;
699pub use minus_di::MinusDi;
700pub use minus_dm::MinusDm;
701pub use modified_ma_stop::{ModifiedMaStop, ModifiedMaStopOutput};
702pub use mom::Mom;
703pub use morning_doji_star::MorningDojiStar;
704pub use morning_evening_star::MorningEveningStar;
705pub use natr::Natr;
706pub use new_highs_new_lows::NewHighsNewLows;
707pub use nrtr::{Nrtr, NrtrOutput};
708pub use nvi::Nvi;
709pub use ob_imbalance_full::OrderBookImbalanceFull;
710pub use ob_imbalance_top1::OrderBookImbalanceTop1;
711pub use ob_imbalance_topn::OrderBookImbalanceTopN;
712pub use obv::Obv;
713pub use oi_delta::OpenInterestDelta;
714pub use oi_price_divergence::OIPriceDivergence;
715pub use oi_weighted::OIWeighted;
716pub use omega_ratio::OmegaRatio;
717pub use on_neck::OnNeck;
718pub use opening_marubozu::OpeningMarubozu;
719pub use opening_range::{OpeningRange, OpeningRangeOutput};
720pub use order_flow_imbalance::OrderFlowImbalance;
721pub use ou_half_life::OuHalfLife;
722pub use overnight_gap::OvernightGap;
723pub use overnight_intraday_return::{OvernightIntradayReturn, OvernightIntradayReturnOutput};
724pub use pain_index::PainIndex;
725pub use pair_spread_zscore::PairSpreadZScore;
726pub use pairwise_beta::PairwiseBeta;
727pub use parkinson::ParkinsonVolatility;
728pub use pearson_correlation::PearsonCorrelation;
729pub use percent_above_ma::PercentAboveMa;
730pub use percent_b::PercentB;
731pub use percentage_trailing_stop::PercentageTrailingStop;
732pub use pgo::Pgo;
733pub use piercing_dark_cloud::PiercingDarkCloud;
734pub use plus_di::PlusDi;
735pub use plus_dm::PlusDm;
736pub use pmo::Pmo;
737pub use point_and_figure_bars::{PnfColumn, PointAndFigureBars};
738pub use polarized_fractal_efficiency::PolarizedFractalEfficiency;
739pub use ppo::Ppo;
740pub use ppo_histogram::PpoHistogram;
741pub use profit_factor::ProfitFactor;
742pub use projection_bands::{ProjectionBands, ProjectionBandsOutput};
743pub use projection_oscillator::ProjectionOscillator;
744pub use psar::Psar;
745pub use pvi::Pvi;
746pub use qqe::{Qqe, QqeOutput};
747pub use qstick::Qstick;
748pub use quartile_bands::{QuartileBands, QuartileBandsOutput};
749pub use quoted_spread::QuotedSpread;
750pub use r_squared::RSquared;
751pub use realized_spread::RealizedSpread;
752pub use realized_volatility::RealizedVolatility;
753pub use recovery_factor::RecoveryFactor;
754pub use rectangle_range::RectangleRange;
755pub use regime_label::RegimeLabel;
756pub use relative_strength_ab::{RelativeStrengthAB, RelativeStrengthOutput};
757pub use renko_bars::{RenkoBars, RenkoBrick};
758pub use renko_trailing_stop::RenkoTrailingStop;
759pub use rickshaw_man::RickshawMan;
760pub use rising_three_methods::RisingThreeMethods;
761pub use rmi::Rmi;
762pub use roc::Roc;
763pub use rocp::Rocp;
764pub use rocr::Rocr;
765pub use rocr100::Rocr100;
766pub use rogers_satchell::RogersSatchellVolatility;
767pub use roll_measure::RollMeasure;
768pub use rolling_correlation::RollingCorrelation;
769pub use rolling_covariance::RollingCovariance;
770pub use rolling_iqr::RollingIqr;
771pub use rolling_min_max_scaler::RollingMinMaxScaler;
772pub use rolling_percentile_rank::RollingPercentileRank;
773pub use rolling_quantile::RollingQuantile;
774pub use roofing_filter::RoofingFilter;
775pub use rsi::Rsi;
776pub use rsx::Rsx;
777pub use rvi::Rvi;
778pub use rvi_volatility::RviVolatility;
779pub use rwi::{Rwi, RwiOutput};
780pub use sample_entropy::SampleEntropy;
781pub use sar_ext::SarExt;
782pub use seasonal_z_score::SeasonalZScore;
783pub use separating_lines::SeparatingLines;
784pub use session_high_low::{SessionHighLow, SessionHighLowOutput};
785pub use session_range::{SessionRange, SessionRangeOutput};
786pub use session_vwap::SessionVwap;
787pub use shannon_entropy::ShannonEntropy;
788pub use shark::Shark;
789pub use sharpe_ratio::SharpeRatio;
790pub use shooting_star::ShootingStar;
791pub use short_line::ShortLine;
792pub use signed_volume::SignedVolume;
793pub use sine_wave::SineWave;
794pub use sine_weighted_ma::SineWeightedMa;
795pub use skewness::Skewness;
796pub use sma::Sma;
797pub use smi::Smi;
798pub use smma::Smma;
799pub use sortino_ratio::SortinoRatio;
800pub use spearman_correlation::SpearmanCorrelation;
801pub use spinning_top::SpinningTop;
802pub use spread_ar1_coefficient::SpreadAr1Coefficient;
803pub use spread_bollinger_bands::{SpreadBollingerBands, SpreadBollingerBandsOutput};
804pub use spread_hurst::SpreadHurst;
805pub use stalled_pattern::StalledPattern;
806pub use standard_error::StandardError;
807pub use standard_error_bands::{StandardErrorBands, StandardErrorBandsOutput};
808pub use starc_bands::{StarcBands, StarcBandsOutput};
809pub use stc::Stc;
810pub use std_dev::StdDev;
811pub use step_trailing_stop::StepTrailingStop;
812pub use stick_sandwich::StickSandwich;
813pub use stoch_rsi::StochRsi;
814pub use stochastic::{Stochastic, StochasticOutput};
815pub use stochastic_cci::StochasticCci;
816pub use super_smoother::SuperSmoother;
817pub use super_trend::{SuperTrend, SuperTrendOutput};
818pub use t3::T3;
819pub use taker_buy_sell_ratio::TakerBuySellRatio;
820pub use takuri::Takuri;
821pub use tasuki_gap::TasukiGap;
822pub use td_combo::TdCombo;
823pub use td_countdown::TdCountdown;
824pub use td_demarker::TdDeMarker;
825pub use td_differential::TdDifferential;
826pub use td_lines::{TdLines, TdLinesOutput};
827pub use td_open::TdOpen;
828pub use td_pressure::TdPressure;
829pub use td_range_projection::{TdRangeProjection, TdRangeProjectionOutput};
830pub use td_rei::TdRei;
831pub use td_risk_level::{TdRiskLevel, TdRiskLevelOutput};
832pub use td_sequential::{TdSequential, TdSequentialOutput};
833pub use td_setup::TdSetup;
834pub use tema::Tema;
835pub use term_structure_basis::TermStructureBasis;
836pub use three_drives::ThreeDrives;
837pub use three_inside::ThreeInside;
838pub use three_line_strike::ThreeLineStrike;
839pub use three_outside::ThreeOutside;
840pub use three_soldiers_or_crows::ThreeSoldiersOrCrows;
841pub use three_stars_in_south::ThreeStarsInSouth;
842pub use thrusting::Thrusting;
843pub use tick_index::TickIndex;
844pub use tii::Tii;
845pub use time_based_stop::TimeBasedStop;
846pub use time_of_day_return_profile::{TimeOfDayReturnProfile, TimeOfDayReturnProfileOutput};
847pub use tpo_profile::{TpoProfile, TpoProfileOutput};
848pub use trade_imbalance::TradeImbalance;
849pub use trade_volume_index::TradeVolumeIndex;
850pub use trend_label::TrendLabel;
851pub use trend_strength_index::TrendStrengthIndex;
852pub use treynor_ratio::TreynorRatio;
853pub use triangle::Triangle;
854pub use trima::Trima;
855pub use trin::Trin;
856pub use triple_top_bottom::TripleTopBottom;
857pub use trix::Trix;
858pub use true_range::TrueRange;
859pub use tsf::Tsf;
860pub use tsf_oscillator::TsfOscillator;
861pub use tsi::Tsi;
862pub use tsv::Tsv;
863pub use ttm_squeeze::{TtmSqueeze, TtmSqueezeOutput};
864pub use ttm_trend::TtmTrend;
865pub use turn_of_month::TurnOfMonth;
866pub use tweezer::Tweezer;
867pub use twiggs_money_flow::TwiggsMoneyFlow;
868pub use two_crows::TwoCrows;
869pub use typical_price::TypicalPrice;
870pub use ulcer_index::UlcerIndex;
871pub use ultimate_oscillator::UltimateOscillator;
872pub use unique_three_river::UniqueThreeRiver;
873pub use up_down_volume_ratio::UpDownVolumeRatio;
874pub use upside_gap_three_methods::UpsideGapThreeMethods;
875pub use upside_gap_two_crows::UpsideGapTwoCrows;
876pub use value_area::{ValueArea, ValueAreaOutput};
877pub use value_at_risk::ValueAtRisk;
878pub use variance::Variance;
879pub use variance_ratio::VarianceRatio;
880pub use vertical_horizontal_filter::VerticalHorizontalFilter;
881pub use vidya::Vidya;
882pub use volatility_cone::{VolatilityCone, VolatilityConeOutput};
883pub use volatility_of_volatility::VolatilityOfVolatility;
884pub use volatility_ratio::VolatilityRatio;
885pub use volty_stop::VoltyStop;
886pub use volume_by_time_profile::{VolumeByTimeProfile, VolumeByTimeProfileOutput};
887pub use volume_oscillator::VolumeOscillator;
888pub use volume_profile::{VolumeProfile, VolumeProfileOutput};
889pub use volume_rsi::VolumeRsi;
890pub use volume_weighted_macd::{VolumeWeightedMacd, VolumeWeightedMacdOutput};
891pub use vortex::{Vortex, VortexOutput};
892pub use vpin::Vpin;
893pub use vpt::VolumePriceTrend;
894pub use vwap::{RollingVwap, Vwap};
895pub use vwap_stddev_bands::{VwapStdDevBands, VwapStdDevBandsOutput};
896pub use vwma::Vwma;
897pub use vzo::Vzo;
898pub use wad::Wad;
899pub use wave_pm::WavePm;
900pub use wave_trend::{WaveTrend, WaveTrendOutput};
901pub use wedge::Wedge;
902pub use weighted_close::WeightedClose;
903pub use wick_ratio::WickRatio;
904pub use williams_fractals::{WilliamsFractals, WilliamsFractalsOutput};
905pub use williams_r::WilliamsR;
906pub use win_rate::WinRate;
907pub use wma::Wma;
908pub use woodie_pivots::{WoodiePivots, WoodiePivotsOutput};
909pub use yang_zhang::YangZhangVolatility;
910pub use yoyo_exit::YoyoExit;
911pub use z_score::ZScore;
912pub use zero_lag_macd::{ZeroLagMacd, ZeroLagMacdOutput};
913pub use zig_zag::{ZigZag, ZigZagOutput};
914pub use zlema::Zlema;
915
916pub const FAMILIES: &[(&str, &[&str])] = &[
923 (
924 "Moving Averages",
925 &[
926 "Sma",
927 "Ema",
928 "Wma",
929 "Dema",
930 "Tema",
931 "Hma",
932 "Kama",
933 "Smma",
934 "Trima",
935 "Zlema",
936 "T3",
937 "Vwma",
938 "Alma",
939 "McGinleyDynamic",
940 "Frama",
941 "Vidya",
942 "Jma",
943 "Alligator",
944 "Evwma",
945 "SineWeightedMa",
946 "GeometricMa",
947 "Ehma",
948 "MedianMa",
949 "AdaptiveLaguerreFilter",
950 "GeneralizedDema",
951 "HoltWinters",
952 ],
953 ),
954 (
955 "Momentum Oscillators",
956 &[
957 "Rsi",
958 "AnchoredRsi",
959 "Stochastic",
960 "Cci",
961 "Roc",
962 "WilliamsR",
963 "Mfi",
964 "AwesomeOscillator",
965 "Mom",
966 "Cmo",
967 "Tsi",
968 "Pmo",
969 "StochRsi",
970 "UltimateOscillator",
971 "Rvi",
972 "Pgo",
973 "Kst",
974 "Smi",
975 "LaguerreRsi",
976 "ConnorsRsi",
977 "Inertia",
978 "Rocp",
979 "Rocr",
980 "Rocr100",
981 "DisparityIndex",
982 "FisherRsi",
983 "Rsx",
984 "DynamicMomentumIndex",
985 "StochasticCci",
986 "Rmi",
987 "DerivativeOscillator",
988 "ElderRay",
989 "IntradayMomentumIndex",
990 "Qqe",
991 ],
992 ),
993 (
994 "Trend & Directional",
995 &[
996 "MacdIndicator",
997 "MacdFix",
998 "MacdExt",
999 "Adx",
1000 "Adxr",
1001 "Aroon",
1002 "Trix",
1003 "AroonOscillator",
1004 "Vortex",
1005 "Rwi",
1006 "Tii",
1007 "WaveTrend",
1008 "MassIndex",
1009 "ChoppinessIndex",
1010 "VerticalHorizontalFilter",
1011 "PlusDm",
1012 "MinusDm",
1013 "PlusDi",
1014 "MinusDi",
1015 "Dx",
1016 "TrendLabel",
1017 "TtmTrend",
1018 "TrendStrengthIndex",
1019 "Qstick",
1020 "PolarizedFractalEfficiency",
1021 "WavePm",
1022 "GatorOscillator",
1023 "KasePermissionStochastic",
1024 ],
1025 ),
1026 (
1027 "Price Oscillators",
1028 &[
1029 "Ppo",
1030 "Dpo",
1031 "Coppock",
1032 "AcceleratorOscillator",
1033 "BalanceOfPower",
1034 "Apo",
1035 "AwesomeOscillatorHistogram",
1036 "Cfo",
1037 "ZeroLagMacd",
1038 "ElderImpulse",
1039 "Stc",
1040 "TsfOscillator",
1041 "MacdHistogram",
1042 "PpoHistogram",
1043 ],
1044 ),
1045 (
1046 "Volatility & Bands",
1047 &[
1048 "Atr",
1049 "BollingerBands",
1050 "Keltner",
1051 "Donchian",
1052 "Natr",
1053 "StdDev",
1054 "UlcerIndex",
1055 "HistoricalVolatility",
1056 "BollingerBandwidth",
1057 "PercentB",
1058 "TrueRange",
1059 "ChaikinVolatility",
1060 "RviVolatility",
1061 "ParkinsonVolatility",
1062 "GarmanKlassVolatility",
1063 "RogersSatchellVolatility",
1064 "YangZhangVolatility",
1065 "JumpIndicator",
1066 "RegimeLabel",
1067 "EwmaVolatility",
1068 "Garch11",
1069 "VolatilityOfVolatility",
1070 "BipowerVariation",
1071 "VolatilityRatio",
1072 "VolatilityCone",
1073 ],
1074 ),
1075 (
1076 "Bands & Channels",
1077 &[
1078 "MaEnvelope",
1079 "AccelerationBands",
1080 "StarcBands",
1081 "AtrBands",
1082 "HurstChannel",
1083 "LinRegChannel",
1084 "StandardErrorBands",
1085 "DoubleBollinger",
1086 "TtmSqueeze",
1087 "FractalChaosBands",
1088 "VwapStdDevBands",
1089 "QuartileBands",
1090 "BomarBands",
1091 "MedianChannel",
1092 "ProjectionBands",
1093 "ProjectionOscillator",
1094 ],
1095 ),
1096 (
1097 "Trailing Stops",
1098 &[
1099 "Psar",
1100 "SuperTrend",
1101 "ChandelierExit",
1102 "ChandeKrollStop",
1103 "AtrTrailingStop",
1104 "HiLoActivator",
1105 "VoltyStop",
1106 "YoyoExit",
1107 "DonchianStop",
1108 "PercentageTrailingStop",
1109 "StepTrailingStop",
1110 "RenkoTrailingStop",
1111 "SarExt",
1112 "KaseDevStop",
1113 "ElderSafeZone",
1114 "AtrRatchet",
1115 "Nrtr",
1116 "TimeBasedStop",
1117 "ModifiedMaStop",
1118 ],
1119 ),
1120 (
1121 "Volume",
1122 &[
1123 "Obv",
1124 "Vwap",
1125 "RollingVwap",
1126 "Adl",
1127 "VolumePriceTrend",
1128 "ChaikinMoneyFlow",
1129 "ChaikinOscillator",
1130 "ForceIndex",
1131 "EaseOfMovement",
1132 "Kvo",
1133 "VolumeOscillator",
1134 "Nvi",
1135 "Pvi",
1136 "AdOscillator",
1137 "AnchoredVwap",
1138 "DemandIndex",
1139 "Tsv",
1140 "Vzo",
1141 "MarketFacilitationIndex",
1142 "VolumeRsi",
1143 "Wad",
1144 "TwiggsMoneyFlow",
1145 "TradeVolumeIndex",
1146 "IntradayIntensity",
1147 "BetterVolume",
1148 "VolumeWeightedMacd",
1149 ],
1150 ),
1151 (
1152 "Price Statistics",
1153 &[
1154 "TypicalPrice",
1155 "MedianPrice",
1156 "WeightedClose",
1157 "LinearRegression",
1158 "LinRegSlope",
1159 "ZScore",
1160 "LinRegAngle",
1161 "Variance",
1162 "CoefficientOfVariation",
1163 "Skewness",
1164 "Kurtosis",
1165 "StandardError",
1166 "DetrendedStdDev",
1167 "RSquared",
1168 "MedianAbsoluteDeviation",
1169 "Autocorrelation",
1170 "HurstExponent",
1171 "PearsonCorrelation",
1172 "Beta",
1173 "SpearmanCorrelation",
1174 "Cointegration",
1175 "LeadLagCrossCorrelation",
1176 "PairSpreadZScore",
1177 "PairwiseBeta",
1178 "RelativeStrengthAB",
1179 "MidPrice",
1180 "MidPoint",
1181 "AvgPrice",
1182 "LinRegIntercept",
1183 "Tsf",
1184 "RollingCorrelation",
1185 "RollingCovariance",
1186 "OuHalfLife",
1187 "SpreadHurst",
1188 "DistanceSsd",
1189 "BetaNeutralSpread",
1190 "VarianceRatio",
1191 "GrangerCausality",
1192 "KalmanHedgeRatio",
1193 "SpreadBollingerBands",
1194 "LogReturn",
1195 "RealizedVolatility",
1196 "RollingIqr",
1197 "RollingPercentileRank",
1198 "RollingQuantile",
1199 "SpreadAr1Coefficient",
1200 "CloseVsOpen",
1201 "BodySizePct",
1202 "WickRatio",
1203 "HighLowRange",
1204 "JarqueBera",
1205 "RollingMinMaxScaler",
1206 "ShannonEntropy",
1207 "SampleEntropy",
1208 "KendallTau",
1209 ],
1210 ),
1211 (
1212 "Ehlers / Cycle (DSP)",
1213 &[
1214 "Mama",
1215 "Fama",
1216 "FisherTransform",
1217 "InverseFisherTransform",
1218 "SuperSmoother",
1219 "HilbertDominantCycle",
1220 "HtDcPhase",
1221 "HtPhasor",
1222 "HtTrendMode",
1223 "SineWave",
1224 "Decycler",
1225 "DecyclerOscillator",
1226 "RoofingFilter",
1227 "CenterOfGravity",
1228 "CyberneticCycle",
1229 "AdaptiveCycle",
1230 "EmpiricalModeDecomposition",
1231 "EhlersStochastic",
1232 "InstantaneousTrendline",
1233 ],
1234 ),
1235 (
1236 "Pivots & S/R",
1237 &[
1238 "ClassicPivots",
1239 "FibonacciPivots",
1240 "Camarilla",
1241 "WoodiePivots",
1242 "DemarkPivots",
1243 "WilliamsFractals",
1244 "ZigZag",
1245 ],
1246 ),
1247 (
1248 "DeMark",
1249 &[
1250 "TdSetup",
1251 "TdSequential",
1252 "TdDeMarker",
1253 "TdRei",
1254 "TdPressure",
1255 "TdCombo",
1256 "TdCountdown",
1257 "TdLines",
1258 "TdRangeProjection",
1259 "TdDifferential",
1260 "TdOpen",
1261 "TdRiskLevel",
1262 ],
1263 ),
1264 ("Ichimoku & Charts", &["Ichimoku", "HeikinAshi"]),
1265 (
1266 "Candlestick Patterns",
1267 &[
1268 "Doji",
1269 "Hammer",
1270 "InvertedHammer",
1271 "HangingMan",
1272 "ShootingStar",
1273 "Engulfing",
1274 "Harami",
1275 "MorningEveningStar",
1276 "ThreeSoldiersOrCrows",
1277 "PiercingDarkCloud",
1278 "Marubozu",
1279 "Tweezer",
1280 "SpinningTop",
1281 "ThreeInside",
1282 "ThreeOutside",
1283 "TwoCrows",
1284 "UpsideGapTwoCrows",
1285 "IdenticalThreeCrows",
1286 "ThreeLineStrike",
1287 "ThreeStarsInSouth",
1288 "AbandonedBaby",
1289 "AdvanceBlock",
1290 "BeltHold",
1291 "Breakaway",
1292 "Counterattack",
1293 "DojiStar",
1294 "DragonflyDoji",
1295 "GravestoneDoji",
1296 "LongLeggedDoji",
1297 "RickshawMan",
1298 "EveningDojiStar",
1299 "MorningDojiStar",
1300 "GapSideBySideWhite",
1301 "HighWave",
1302 "Hikkake",
1303 "HikkakeModified",
1304 "HomingPigeon",
1305 "OnNeck",
1306 "InNeck",
1307 "Thrusting",
1308 "SeparatingLines",
1309 "Kicking",
1310 "KickingByLength",
1311 "LadderBottom",
1312 "MatHold",
1313 "MatchingLow",
1314 "LongLine",
1315 "ShortLine",
1316 "RisingThreeMethods",
1317 "FallingThreeMethods",
1318 "UpsideGapThreeMethods",
1319 "DownsideGapThreeMethods",
1320 "StalledPattern",
1321 "StickSandwich",
1322 "Takuri",
1323 "ClosingMarubozu",
1324 "OpeningMarubozu",
1325 "TasukiGap",
1326 "UniqueThreeRiver",
1327 "ConcealingBabySwallow",
1328 ],
1329 ),
1330 (
1331 "Microstructure",
1332 &[
1333 "OrderBookImbalanceTop1",
1334 "OrderBookImbalanceTopN",
1335 "OrderBookImbalanceFull",
1336 "Microprice",
1337 "QuotedSpread",
1338 "DepthSlope",
1339 "SignedVolume",
1340 "CumulativeVolumeDelta",
1341 "TradeImbalance",
1342 "EffectiveSpread",
1343 "RealizedSpread",
1344 "KylesLambda",
1345 "Footprint",
1346 "OrderFlowImbalance",
1347 "Vpin",
1348 "AmihudIlliquidity",
1349 "RollMeasure",
1350 ],
1351 ),
1352 (
1353 "Derivatives",
1354 &[
1355 "FundingRate",
1356 "FundingRateMean",
1357 "FundingRateZScore",
1358 "FundingBasis",
1359 "OpenInterestDelta",
1360 "OIPriceDivergence",
1361 "OIWeighted",
1362 "LongShortRatio",
1363 "TakerBuySellRatio",
1364 "LiquidationFeatures",
1365 "TermStructureBasis",
1366 "CalendarSpread",
1367 ],
1368 ),
1369 (
1370 "Market Profile",
1371 &[
1372 "ValueArea",
1373 "InitialBalance",
1374 "OpeningRange",
1375 "VolumeProfile",
1376 "TpoProfile",
1377 ],
1378 ),
1379 (
1380 "Risk / Performance",
1381 &[
1382 "SharpeRatio",
1383 "SortinoRatio",
1384 "CalmarRatio",
1385 "OmegaRatio",
1386 "MaxDrawdown",
1387 "AverageDrawdown",
1388 "DrawdownDuration",
1389 "PainIndex",
1390 "ValueAtRisk",
1391 "ConditionalValueAtRisk",
1392 "ProfitFactor",
1393 "GainLossRatio",
1394 "RecoveryFactor",
1395 "KellyCriterion",
1396 "TreynorRatio",
1397 "InformationRatio",
1398 "Alpha",
1399 "WinRate",
1400 "Expectancy",
1401 ],
1402 ),
1403 (
1404 "Alt-Chart Bars",
1405 &["RenkoBars", "KagiBars", "PointAndFigureBars"],
1406 ),
1407 (
1408 "Market Breadth",
1409 &[
1410 "AdvanceDecline",
1411 "AdvanceDeclineRatio",
1412 "AdVolumeLine",
1413 "McClellanOscillator",
1414 "McClellanSummationIndex",
1415 "Trin",
1416 "BreadthThrust",
1417 "NewHighsNewLows",
1418 "HighLowIndex",
1419 "PercentAboveMa",
1420 "UpDownVolumeRatio",
1421 "BullishPercentIndex",
1422 "CumulativeVolumeIndex",
1423 "AbsoluteBreadthIndex",
1424 "TickIndex",
1425 ],
1426 ),
1427 (
1428 "Seasonality & Session",
1429 &[
1430 "SessionVwap",
1431 "SessionHighLow",
1432 "SessionRange",
1433 "AverageDailyRange",
1434 "OvernightGap",
1435 "OvernightIntradayReturn",
1436 "TurnOfMonth",
1437 "SeasonalZScore",
1438 "TimeOfDayReturnProfile",
1439 "DayOfWeekProfile",
1440 "IntradayVolatilityProfile",
1441 "VolumeByTimeProfile",
1442 ],
1443 ),
1444 (
1445 "Chart Patterns",
1446 &[
1447 "DoubleTopBottom",
1448 "TripleTopBottom",
1449 "HeadAndShoulders",
1450 "Triangle",
1451 "Wedge",
1452 "FlagPennant",
1453 "RectangleRange",
1454 "CupAndHandle",
1455 ],
1456 ),
1457 (
1458 "Harmonic Patterns",
1459 &[
1460 "Abcd",
1461 "Gartley",
1462 "Butterfly",
1463 "Bat",
1464 "Crab",
1465 "Shark",
1466 "Cypher",
1467 "ThreeDrives",
1468 ],
1469 ),
1470 (
1471 "Fibonacci",
1472 &[
1473 "FibRetracement",
1474 "FibExtension",
1475 "FibProjection",
1476 "AutoFib",
1477 "GoldenPocket",
1478 "FibConfluence",
1479 "FibFan",
1480 "FibArcs",
1481 "FibChannel",
1482 "FibTimeZones",
1483 ],
1484 ),
1485];
1486
1487#[cfg(test)]
1488mod family_tests {
1489 use super::FAMILIES;
1490
1491 #[test]
1492 fn no_duplicates_across_families() {
1493 let mut names: Vec<&str> = FAMILIES
1494 .iter()
1495 .flat_map(|(_, ns)| ns.iter().copied())
1496 .collect();
1497 let len_before = names.len();
1498 names.sort_unstable();
1499 names.dedup();
1500 assert_eq!(
1501 names.len(),
1502 len_before,
1503 "duplicate indicator across families"
1504 );
1505 }
1506
1507 #[test]
1508 fn total_count_matches_expected() {
1509 let total: usize = FAMILIES.iter().map(|(_, ns)| ns.len()).sum();
1513 assert_eq!(total, 452, "FAMILIES total drifted from indicator count");
1514 }
1515}