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