quantwave-core 0.6.0

A high-performance, Polars-native technical analysis library for Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
//! AUTO-GENERATED by scripts/regenerate_metadata_registry.py — do not edit by hand.
//! Re-run: `python scripts/regenerate_metadata_registry.py`

use super::metadata::IndicatorMetadata;

use crate::indicators::adaptive_ema::ADAPTIVE_EMA_METADATA;
use crate::indicators::alligator::ALLIGATOR_METADATA;
use crate::indicators::alma::ALMA_METADATA;
use crate::indicators::amfm::AM_DETECTOR_METADATA;
use crate::indicators::amfm::FM_DEMODULATOR_METADATA;
use crate::indicators::atr_ts::ATR_TS_METADATA;
use crate::indicators::autotune::AUTOTUNE_FILTER_METADATA;
use crate::indicators::bandpass::BANDPASS_METADATA;
use crate::indicators::butterworth::BUTTERWORTH2_METADATA;
use crate::indicators::butterworth::BUTTERWORTH3_METADATA;
use crate::indicators::cg::CG_METADATA;
use crate::indicators::channel_cycle::CHANNEL_CYCLE_METADATA;
use crate::indicators::choppiness_index::CHOPPINESS_INDEX_METADATA;
use crate::indicators::classic_laguerre::CLASSIC_LAGUERRE_METADATA;
use crate::indicators::continuation_index::CONTINUATION_INDEX_METADATA;
use crate::indicators::correlation_cycle::CORRELATION_CYCLE_METADATA;
use crate::indicators::correlation_trend::CORRELATION_TREND_METADATA;
use crate::indicators::cyber_cycle::CYBER_CYCLE_METADATA;
use crate::indicators::cybernetic_oscillator::CYBERNETIC_OSCILLATOR_METADATA;
use crate::indicators::cycle::HT_DCPERIOD_METADATA;
use crate::indicators::cycle::HT_DCPHASE_METADATA;
use crate::indicators::cycle::HT_PHASOR_METADATA;
use crate::indicators::cycle::HT_SINE_METADATA;
use crate::indicators::cycle::HT_TRENDMODE_METADATA;
use crate::indicators::cycle_trend_analytics::CYCLE_TREND_ANALYTICS_METADATA;
use crate::indicators::dmh::DMH_METADATA;
use crate::indicators::donchian::DONCHIAN_METADATA;
use crate::indicators::dsma::DSMA_METADATA;
use crate::indicators::ehlers_autocorrelation::EHLERS_AUTOCORRELATION_METADATA;
use crate::indicators::ehlers_filter::EHLERS_FILTER_METADATA;
use crate::indicators::ehlers_loops::EHLERS_LOOPS_METADATA;
use crate::indicators::ehlers_stochastic::EHLERS_STOCHASTIC_METADATA;
use crate::indicators::ehlers_ultimate_oscillator::EHLERS_ULTIMATE_OSCILLATOR_METADATA;
use crate::indicators::emd::EMD_METADATA;
use crate::indicators::fisher::FISHER_METADATA;
use crate::indicators::fisher_high_pass::FISHER_HIGH_PASS_METADATA;
use crate::indicators::fourier_series::FOURIER_SERIES_MODEL_METADATA;
use crate::indicators::fourier_transform::FOURIER_DOMINANT_CYCLE_METADATA;
use crate::indicators::frac_diff::FRAC_DIFF_METADATA;
use crate::indicators::fractals::FRACTALS_METADATA;
use crate::indicators::frama::FRAMA_METADATA;
use crate::indicators::gap_momentum::GAP_MOMENTUM_METADATA;
use crate::indicators::gaussian::GAUSSIAN_FILTER_METADATA;
use crate::indicators::generalized_laguerre::GENERALIZED_LAGUERRE_METADATA;
use crate::indicators::geometric_patterns::GEOMETRIC_PATTERNS_METADATA;
use crate::indicators::griffiths_dominant_cycle::GRIFFITHS_DOMINANT_CYCLE_METADATA;
use crate::indicators::griffiths_predictor::GRIFFITHS_PREDICTOR_METADATA;
use crate::indicators::griffiths_spectrum::GRIFFITHS_SPECTRUM_METADATA;
use crate::indicators::hamming::HAMMING_FILTER_METADATA;
use crate::indicators::hann::HANN_FILTER_METADATA;
use crate::indicators::harrington_adx::HARRINGTON_ADX_METADATA;
use crate::indicators::heikin_ashi::HEIKIN_ASHI_METADATA;
use crate::indicators::high_pass::HIGH_PASS_METADATA;
use crate::indicators::hma::HMA_METADATA;
use crate::indicators::homodyne_discriminator::HOMODYNE_DISCRIMINATOR_METADATA;
use crate::indicators::hurst::HURST_EXPONENT_METADATA;
use crate::indicators::ichimoku::ICHIMOKU_METADATA;
use crate::indicators::instantaneous_trendline::INSTANTANEOUS_TRENDLINE_METADATA;
use crate::indicators::inverse_fisher::INVERSE_FISHER_METADATA;
use crate::indicators::just_ignore_them::UNDERSAMPLED_DOUBLE_MA_METADATA;
use crate::indicators::kalman::KALMAN_FILTER_METADATA;
use crate::indicators::kama::KAMA_METADATA;
use crate::indicators::keltner::KELTNER_METADATA;
use crate::indicators::kinematic_kalman::KINEMATIC_KALMAN_METADATA;
use crate::indicators::laguerre_filter::LAGUERRE_FILTER_METADATA;
use crate::indicators::laguerre_oscillator::LAGUERRE_OSCILLATOR_METADATA;
use crate::indicators::laguerre_rsi::LAGUERRE_RSI_METADATA;
use crate::indicators::mad::MAD_METADATA;
use crate::indicators::madh::MADH_METADATA;
use crate::indicators::mama::MAMA_METADATA;
use crate::indicators::market_state::MARKET_STATE_METADATA;
use crate::indicators::market_structure::MARKET_STRUCTURE_METADATA;
use crate::indicators::mesa_stochastic::MESA_STOCHASTIC_METADATA;
use crate::indicators::momentum::ADX_METADATA;
use crate::indicators::momentum::APO_METADATA;
use crate::indicators::momentum::AROON_METADATA;
use crate::indicators::momentum::CCI_METADATA;
use crate::indicators::momentum::CMO_METADATA;
use crate::indicators::momentum::MACD_METADATA;
use crate::indicators::momentum::MFI_METADATA;
use crate::indicators::momentum::MOM_METADATA;
use crate::indicators::momentum::PPO_METADATA;
use crate::indicators::momentum::ROC_METADATA;
use crate::indicators::momentum::RSI_METADATA;
use crate::indicators::momentum::STOCH_METADATA;
use crate::indicators::momentum::TRIX_METADATA;
use crate::indicators::momentum::ULTOSC_METADATA;
use crate::indicators::momentum::WILLR_METADATA;
use crate::indicators::my_rsi::MY_RSI_METADATA;
use crate::indicators::noise_elimination::NOISE_ELIMINATION_METADATA;
use crate::indicators::oc_price_rsi::OC_PRICE_RSI_METADATA;
use crate::indicators::one_euro_filter::ONE_EURO_FILTER_METADATA;
use crate::indicators::overlap::BBANDS_METADATA;
use crate::indicators::overlap::DEMA_METADATA;
use crate::indicators::overlap::SAR_METADATA;
use crate::indicators::overlap::T3_METADATA;
use crate::indicators::overlap::TRIMA_METADATA;
use crate::indicators::pairs_rotation::PAIRS_ROTATION_METADATA;
use crate::indicators::pattern::CDL2CROWS_METADATA;
use crate::indicators::pattern::CDL3BLACKCROWS_METADATA;
use crate::indicators::pattern::CDL3INSIDE_METADATA;
use crate::indicators::pattern::CDL3LINESTRIKE_METADATA;
use crate::indicators::pattern::CDL3OUTSIDE_METADATA;
use crate::indicators::pattern::CDL3STARSINSOUTH_METADATA;
use crate::indicators::pattern::CDL3WHITESOLDIERS_METADATA;
use crate::indicators::pattern::CDLABANDONEDBABY_METADATA;
use crate::indicators::pattern::CDLADVANCEBLOCK_METADATA;
use crate::indicators::pattern::CDLBELTHOLD_METADATA;
use crate::indicators::pattern::CDLBREAKAWAY_METADATA;
use crate::indicators::pattern::CDLCLOSINGMARUBOZU_METADATA;
use crate::indicators::pattern::CDLCONCEALBABYSWALL_METADATA;
use crate::indicators::pattern::CDLCOUNTERATTACK_METADATA;
use crate::indicators::pattern::CDLDARKCLOUDCOVER_METADATA;
use crate::indicators::pattern::CDLDOJISTAR_METADATA;
use crate::indicators::pattern::CDLDOJI_METADATA;
use crate::indicators::pattern::CDLDRAGONFLYDOJI_METADATA;
use crate::indicators::pattern::CDLENGULFING_METADATA;
use crate::indicators::pattern::CDLEVENINGDOJISTAR_METADATA;
use crate::indicators::pattern::CDLEVENINGSTAR_METADATA;
use crate::indicators::pattern::CDLGAPSIDESIDEWHITE_METADATA;
use crate::indicators::pattern::CDLGRAVESTONEDOJI_METADATA;
use crate::indicators::pattern::CDLHAMMER_METADATA;
use crate::indicators::pattern::CDLHANGINGMAN_METADATA;
use crate::indicators::pattern::CDLHARAMICROSS_METADATA;
use crate::indicators::pattern::CDLHARAMI_METADATA;
use crate::indicators::pattern::CDLHIGHWAVE_METADATA;
use crate::indicators::pattern::CDLHIKKAKEMOD_METADATA;
use crate::indicators::pattern::CDLHIKKAKE_METADATA;
use crate::indicators::pattern::CDLHOMINGPIGEON_METADATA;
use crate::indicators::pattern::CDLIDENTICAL3CROWS_METADATA;
use crate::indicators::pattern::CDLINNECK_METADATA;
use crate::indicators::pattern::CDLINVERTEDHAMMER_METADATA;
use crate::indicators::pattern::CDLKICKINGBYLENGTH_METADATA;
use crate::indicators::pattern::CDLKICKING_METADATA;
use crate::indicators::pattern::CDLLADDERBOTTOM_METADATA;
use crate::indicators::pattern::CDLLONGLEGGEDDOJI_METADATA;
use crate::indicators::pattern::CDLLONGLINE_METADATA;
use crate::indicators::pattern::CDLMARUBOZU_METADATA;
use crate::indicators::pattern::CDLMATCHINGLOW_METADATA;
use crate::indicators::pattern::CDLMATHOLD_METADATA;
use crate::indicators::pattern::CDLMORNINGDOJISTAR_METADATA;
use crate::indicators::pattern::CDLMORNINGSTAR_METADATA;
use crate::indicators::pattern::CDLONNECK_METADATA;
use crate::indicators::pattern::CDLPIERCING_METADATA;
use crate::indicators::pattern::CDLRICKSHAWMAN_METADATA;
use crate::indicators::pattern::CDLRISEFALL3METHODS_METADATA;
use crate::indicators::pattern::CDLSEPARATINGLINES_METADATA;
use crate::indicators::pattern::CDLSHOOTINGSTAR_METADATA;
use crate::indicators::pattern::CDLSHORTLINE_METADATA;
use crate::indicators::pattern::CDLSPINNINGTOP_METADATA;
use crate::indicators::pattern::CDLSTALLEDPATTERN_METADATA;
use crate::indicators::pattern::CDLSTICKSANDWICH_METADATA;
use crate::indicators::pattern::CDLTAKURI_METADATA;
use crate::indicators::pattern::CDLTASUKIGAP_METADATA;
use crate::indicators::pattern::CDLTHRUSTING_METADATA;
use crate::indicators::pattern::CDLTRISTAR_METADATA;
use crate::indicators::pattern::CDLUNIQUE3RIVER_METADATA;
use crate::indicators::pattern::CDLUPSIDEGAP2CROWS_METADATA;
use crate::indicators::pattern::CDLXSIDEGAP3METHODS_METADATA;
use crate::indicators::phasor::PHASOR_METADATA;
use crate::indicators::pivot_points::PIVOT_POINTS_METADATA;
use crate::indicators::pma::PROJECTED_MOVING_AVERAGE_METADATA;
use crate::indicators::precision_trend::PRECISION_TREND_ANALYSIS_METADATA;
use crate::indicators::price_transform::AVGPRICE_METADATA;
use crate::indicators::price_transform::MEDPRICE_METADATA;
use crate::indicators::price_transform::OC2_METADATA;
use crate::indicators::price_transform::TYPPRICE_METADATA;
use crate::indicators::price_transform::WCLPRICE_METADATA;
use crate::indicators::recursive_median::RECURSIVE_MEDIAN_METADATA;
use crate::indicators::recursive_median::RECURSIVE_MEDIAN_OSCILLATOR_METADATA;
use crate::indicators::reflex::REFLEX_METADATA;
use crate::indicators::reverse_ema::REVERSE_EMA_METADATA;
use crate::indicators::reversion_index::REVERSION_INDEX_METADATA;
use crate::indicators::rocket_rsi::ROCKET_RSI_METADATA;
use crate::indicators::roofing_filter::ROOFING_FILTER_METADATA;
use crate::indicators::rsih::RSIH_METADATA;
use crate::indicators::sdo::SDO_METADATA;
use crate::indicators::simple_predictor::SIMPLE_PREDICTOR_METADATA;
use crate::indicators::sine_wave::SINE_WAVE_METADATA;
use crate::indicators::smoothing::EMA_METADATA;
use crate::indicators::smoothing::SMA_METADATA;
use crate::indicators::smoothing::WMA_METADATA;
use crate::indicators::sr_monitor::SR_INTERACTION_MONITOR_METADATA;
use crate::indicators::statistics::BETA_METADATA;
use crate::indicators::statistics::CORREL_METADATA;
use crate::indicators::statistics::LINREG_METADATA;
use crate::indicators::statistics::STDDEV_METADATA;
use crate::indicators::stc::STC_METADATA;
use crate::indicators::super_smoother::SUPER_SMOOTHER_METADATA;
use crate::indicators::swiss_army_knife::SWISS_ARMY_KNIFE_METADATA;
use crate::indicators::synthetic_oscillator::SYNTHETIC_OSCILLATOR_METADATA;
use crate::indicators::system_evaluator::SYSTEM_EVALUATOR_METADATA;
use crate::indicators::tema::TEMA_METADATA;
use crate::indicators::tema::ZLEMA_METADATA;
use crate::indicators::tradj_ema::TRADJ_EMA_METADATA;
use crate::indicators::trendflex::TRENDFLEX_METADATA;
use crate::indicators::triangle::TRIANGLE_FILTER_METADATA;
use crate::indicators::truncated_bandpass::TRUNCATED_BANDPASS_METADATA;
use crate::indicators::ttm_squeeze::TTM_SQUEEZE_METADATA;
use crate::indicators::ultimate_bands::ULTIMATE_BANDS_METADATA;
use crate::indicators::ultimate_channel::ULTIMATE_CHANNEL_METADATA;
use crate::indicators::ultimate_smoother::ULTIMATE_SMOOTHER_METADATA;
use crate::indicators::universal_oscillator::UNIVERSAL_OSCILLATOR_METADATA;
use crate::indicators::usi::USI_METADATA;
use crate::indicators::volatility::ATR_METADATA;
use crate::indicators::volatility::NATR_METADATA;
use crate::indicators::volatility::TRUE_RANGE_METADATA;
use crate::indicators::volume::ADOSC_METADATA;
use crate::indicators::volume::AD_METADATA;
use crate::indicators::volume::OBV_METADATA;
use crate::indicators::volume_profile::VOLUME_PROFILE_METADATA;
use crate::indicators::vortex::VORTEX_METADATA;
use crate::indicators::voss_predictor::VOSS_PREDICTOR_METADATA;
use crate::indicators::vpn::VPN_METADATA;
use crate::indicators::vwap::VWAP_METADATA;
use crate::indicators::wavetrend::WAVETREND_METADATA;
use crate::indicators::zero_lag::ZERO_LAG_METADATA;

/// Slug + metadata pair for codegen and discovery.
#[derive(Debug, Clone, Copy)]
pub struct RegisteredMetadata {
    pub slug: &'static str,
    pub meta: &'static IndicatorMetadata,
    pub struct_name: &'static str,
    pub source_file: &'static str,
}

/// All registered indicator metadata (slug is Python/API key derived from const name).
pub static ALL_REGISTERED: &[RegisteredMetadata] = &[
    RegisteredMetadata { slug: "adaptive_ema", meta: &ADAPTIVE_EMA_METADATA, struct_name: "AdaptiveEma", source_file: "adaptive_ema" },
    RegisteredMetadata { slug: "adosc", meta: &ADOSC_METADATA, struct_name: "", source_file: "volume" },
    RegisteredMetadata { slug: "adx", meta: &ADX_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "ad", meta: &AD_METADATA, struct_name: "", source_file: "volume" },
    RegisteredMetadata { slug: "alligator", meta: &ALLIGATOR_METADATA, struct_name: "Alligator", source_file: "alligator" },
    RegisteredMetadata { slug: "alma", meta: &ALMA_METADATA, struct_name: "Alma", source_file: "alma" },
    RegisteredMetadata { slug: "am_detector", meta: &AM_DETECTOR_METADATA, struct_name: "AmDetector", source_file: "amfm" },
    RegisteredMetadata { slug: "apo", meta: &APO_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "aroon", meta: &AROON_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "atr", meta: &ATR_METADATA, struct_name: "Atr", source_file: "volatility" },
    RegisteredMetadata { slug: "atr_ts", meta: &ATR_TS_METADATA, struct_name: "ATRTrailingStop", source_file: "atr_ts" },
    RegisteredMetadata { slug: "autotune_filter", meta: &AUTOTUNE_FILTER_METADATA, struct_name: "AutotuneFilter", source_file: "autotune" },
    RegisteredMetadata { slug: "avgprice", meta: &AVGPRICE_METADATA, struct_name: "OC2", source_file: "price_transform" },
    RegisteredMetadata { slug: "bandpass", meta: &BANDPASS_METADATA, struct_name: "Bandpass", source_file: "bandpass" },
    RegisteredMetadata { slug: "bbands", meta: &BBANDS_METADATA, struct_name: "", source_file: "overlap" },
    RegisteredMetadata { slug: "beta", meta: &BETA_METADATA, struct_name: "StandardDeviation", source_file: "statistics" },
    RegisteredMetadata { slug: "butterworth2", meta: &BUTTERWORTH2_METADATA, struct_name: "Butterworth2", source_file: "butterworth" },
    RegisteredMetadata { slug: "butterworth3", meta: &BUTTERWORTH3_METADATA, struct_name: "Butterworth3", source_file: "butterworth" },
    RegisteredMetadata { slug: "cci", meta: &CCI_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "cdl2crows", meta: &CDL2CROWS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3blackcrows", meta: &CDL3BLACKCROWS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3inside", meta: &CDL3INSIDE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3linestrike", meta: &CDL3LINESTRIKE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3outside", meta: &CDL3OUTSIDE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3starsinsouth", meta: &CDL3STARSINSOUTH_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdl3whitesoldiers", meta: &CDL3WHITESOLDIERS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlabandonedbaby", meta: &CDLABANDONEDBABY_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdladvanceblock", meta: &CDLADVANCEBLOCK_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlbelthold", meta: &CDLBELTHOLD_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlbreakaway", meta: &CDLBREAKAWAY_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlclosingmarubozu", meta: &CDLCLOSINGMARUBOZU_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlconcealbabyswall", meta: &CDLCONCEALBABYSWALL_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlcounterattack", meta: &CDLCOUNTERATTACK_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdldarkcloudcover", meta: &CDLDARKCLOUDCOVER_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdldojistar", meta: &CDLDOJISTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdldoji", meta: &CDLDOJI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdldragonflydoji", meta: &CDLDRAGONFLYDOJI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlengulfing", meta: &CDLENGULFING_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdleveningdojistar", meta: &CDLEVENINGDOJISTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdleveningstar", meta: &CDLEVENINGSTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlgapsidesidewhite", meta: &CDLGAPSIDESIDEWHITE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlgravestonedoji", meta: &CDLGRAVESTONEDOJI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhammer", meta: &CDLHAMMER_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhangingman", meta: &CDLHANGINGMAN_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlharamicross", meta: &CDLHARAMICROSS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlharami", meta: &CDLHARAMI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhighwave", meta: &CDLHIGHWAVE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhikkakemod", meta: &CDLHIKKAKEMOD_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhikkake", meta: &CDLHIKKAKE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlhomingpigeon", meta: &CDLHOMINGPIGEON_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlidentical3crows", meta: &CDLIDENTICAL3CROWS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlinneck", meta: &CDLINNECK_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlinvertedhammer", meta: &CDLINVERTEDHAMMER_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlkickingbylength", meta: &CDLKICKINGBYLENGTH_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlkicking", meta: &CDLKICKING_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlladderbottom", meta: &CDLLADDERBOTTOM_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdllongleggeddoji", meta: &CDLLONGLEGGEDDOJI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdllongline", meta: &CDLLONGLINE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlmarubozu", meta: &CDLMARUBOZU_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlmatchinglow", meta: &CDLMATCHINGLOW_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlmathold", meta: &CDLMATHOLD_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlmorningdojistar", meta: &CDLMORNINGDOJISTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlmorningstar", meta: &CDLMORNINGSTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlonneck", meta: &CDLONNECK_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlpiercing", meta: &CDLPIERCING_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlrickshawman", meta: &CDLRICKSHAWMAN_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlrisefall3methods", meta: &CDLRISEFALL3METHODS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlseparatinglines", meta: &CDLSEPARATINGLINES_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlshootingstar", meta: &CDLSHOOTINGSTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlshortline", meta: &CDLSHORTLINE_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlspinningtop", meta: &CDLSPINNINGTOP_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlstalledpattern", meta: &CDLSTALLEDPATTERN_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlsticksandwich", meta: &CDLSTICKSANDWICH_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdltakuri", meta: &CDLTAKURI_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdltasukigap", meta: &CDLTASUKIGAP_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlthrusting", meta: &CDLTHRUSTING_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdltristar", meta: &CDLTRISTAR_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlunique3river", meta: &CDLUNIQUE3RIVER_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlupsidegap2crows", meta: &CDLUPSIDEGAP2CROWS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cdlxsidegap3methods", meta: &CDLXSIDEGAP3METHODS_METADATA, struct_name: "", source_file: "pattern" },
    RegisteredMetadata { slug: "cg", meta: &CG_METADATA, struct_name: "CenterOfGravity", source_file: "cg" },
    RegisteredMetadata { slug: "channel_cycle", meta: &CHANNEL_CYCLE_METADATA, struct_name: "ChannelCycle", source_file: "channel_cycle" },
    RegisteredMetadata { slug: "choppiness_index", meta: &CHOPPINESS_INDEX_METADATA, struct_name: "ChoppinessIndex", source_file: "choppiness_index" },
    RegisteredMetadata { slug: "classic_laguerre", meta: &CLASSIC_LAGUERRE_METADATA, struct_name: "ClassicLaguerre", source_file: "classic_laguerre" },
    RegisteredMetadata { slug: "cmo", meta: &CMO_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "continuation_index", meta: &CONTINUATION_INDEX_METADATA, struct_name: "ContinuationIndex", source_file: "continuation_index" },
    RegisteredMetadata { slug: "correlation_cycle", meta: &CORRELATION_CYCLE_METADATA, struct_name: "CorrelationCycle", source_file: "correlation_cycle" },
    RegisteredMetadata { slug: "correlation_trend", meta: &CORRELATION_TREND_METADATA, struct_name: "CorrelationTrend", source_file: "correlation_trend" },
    RegisteredMetadata { slug: "correl", meta: &CORREL_METADATA, struct_name: "StandardDeviation", source_file: "statistics" },
    RegisteredMetadata { slug: "cybernetic_oscillator", meta: &CYBERNETIC_OSCILLATOR_METADATA, struct_name: "CyberneticOscillator", source_file: "cybernetic_oscillator" },
    RegisteredMetadata { slug: "cyber_cycle", meta: &CYBER_CYCLE_METADATA, struct_name: "CyberCycle", source_file: "cyber_cycle" },
    RegisteredMetadata { slug: "cycle_trend_analytics", meta: &CYCLE_TREND_ANALYTICS_METADATA, struct_name: "CycleTrendAnalytics", source_file: "cycle_trend_analytics" },
    RegisteredMetadata { slug: "dema", meta: &DEMA_METADATA, struct_name: "", source_file: "overlap" },
    RegisteredMetadata { slug: "dmh", meta: &DMH_METADATA, struct_name: "Dmh", source_file: "dmh" },
    RegisteredMetadata { slug: "donchian", meta: &DONCHIAN_METADATA, struct_name: "Donchian", source_file: "donchian" },
    RegisteredMetadata { slug: "dsma", meta: &DSMA_METADATA, struct_name: "Dsma", source_file: "dsma" },
    RegisteredMetadata { slug: "ehlers_autocorrelation", meta: &EHLERS_AUTOCORRELATION_METADATA, struct_name: "EhlersAutocorrelation", source_file: "ehlers_autocorrelation" },
    RegisteredMetadata { slug: "ehlers_filter", meta: &EHLERS_FILTER_METADATA, struct_name: "EhlersFilter", source_file: "ehlers_filter" },
    RegisteredMetadata { slug: "ehlers_loops", meta: &EHLERS_LOOPS_METADATA, struct_name: "EhlersLoops", source_file: "ehlers_loops" },
    RegisteredMetadata { slug: "ehlers_stochastic", meta: &EHLERS_STOCHASTIC_METADATA, struct_name: "EhlersStochastic", source_file: "ehlers_stochastic" },
    RegisteredMetadata { slug: "ehlers_ultimate_oscillator", meta: &EHLERS_ULTIMATE_OSCILLATOR_METADATA, struct_name: "EhlersUltimateOscillator", source_file: "ehlers_ultimate_oscillator" },
    RegisteredMetadata { slug: "ema", meta: &EMA_METADATA, struct_name: "Ema", source_file: "smoothing" },
    RegisteredMetadata { slug: "emd", meta: &EMD_METADATA, struct_name: "Emd", source_file: "emd" },
    RegisteredMetadata { slug: "fisher_high_pass", meta: &FISHER_HIGH_PASS_METADATA, struct_name: "FisherHighPass", source_file: "fisher_high_pass" },
    RegisteredMetadata { slug: "fisher", meta: &FISHER_METADATA, struct_name: "Fisher", source_file: "fisher" },
    RegisteredMetadata { slug: "fm_demodulator", meta: &FM_DEMODULATOR_METADATA, struct_name: "FmDemodulator", source_file: "amfm" },
    RegisteredMetadata { slug: "fourier_dominant_cycle", meta: &FOURIER_DOMINANT_CYCLE_METADATA, struct_name: "FourierDominantCycle", source_file: "fourier_transform" },
    RegisteredMetadata { slug: "fourier_series_model", meta: &FOURIER_SERIES_MODEL_METADATA, struct_name: "FourierSeriesModel", source_file: "fourier_series" },
    RegisteredMetadata { slug: "fractals", meta: &FRACTALS_METADATA, struct_name: "BillWilliamsFractals", source_file: "fractals" },
    RegisteredMetadata { slug: "frac_diff", meta: &FRAC_DIFF_METADATA, struct_name: "FracDiff", source_file: "frac_diff" },
    RegisteredMetadata { slug: "frama", meta: &FRAMA_METADATA, struct_name: "Frama", source_file: "frama" },
    RegisteredMetadata { slug: "gap_momentum", meta: &GAP_MOMENTUM_METADATA, struct_name: "GapMomentum", source_file: "gap_momentum" },
    RegisteredMetadata { slug: "gaussian_filter", meta: &GAUSSIAN_FILTER_METADATA, struct_name: "GaussianFilter", source_file: "gaussian" },
    RegisteredMetadata { slug: "generalized_laguerre", meta: &GENERALIZED_LAGUERRE_METADATA, struct_name: "GeneralizedLaguerre", source_file: "generalized_laguerre" },
    RegisteredMetadata { slug: "geometric_patterns", meta: &GEOMETRIC_PATTERNS_METADATA, struct_name: "GeometricPatterns", source_file: "geometric_patterns" },
    RegisteredMetadata { slug: "griffiths_dominant_cycle", meta: &GRIFFITHS_DOMINANT_CYCLE_METADATA, struct_name: "GriffithsDominantCycle", source_file: "griffiths_dominant_cycle" },
    RegisteredMetadata { slug: "griffiths_predictor", meta: &GRIFFITHS_PREDICTOR_METADATA, struct_name: "GriffithsPredictor", source_file: "griffiths_predictor" },
    RegisteredMetadata { slug: "griffiths_spectrum", meta: &GRIFFITHS_SPECTRUM_METADATA, struct_name: "GriffithsSpectrum", source_file: "griffiths_spectrum" },
    RegisteredMetadata { slug: "hamming_filter", meta: &HAMMING_FILTER_METADATA, struct_name: "HammingFilter", source_file: "hamming" },
    RegisteredMetadata { slug: "hann_filter", meta: &HANN_FILTER_METADATA, struct_name: "HannFilter", source_file: "hann" },
    RegisteredMetadata { slug: "harrington_adx", meta: &HARRINGTON_ADX_METADATA, struct_name: "HarringtonAdx", source_file: "harrington_adx" },
    RegisteredMetadata { slug: "heikin_ashi", meta: &HEIKIN_ASHI_METADATA, struct_name: "HeikinAshi", source_file: "heikin_ashi" },
    RegisteredMetadata { slug: "high_pass", meta: &HIGH_PASS_METADATA, struct_name: "HighPass", source_file: "high_pass" },
    RegisteredMetadata { slug: "hma", meta: &HMA_METADATA, struct_name: "Hma", source_file: "hma" },
    RegisteredMetadata { slug: "homodyne_discriminator", meta: &HOMODYNE_DISCRIMINATOR_METADATA, struct_name: "HomodyneDiscriminator", source_file: "homodyne_discriminator" },
    RegisteredMetadata { slug: "ht_dcperiod", meta: &HT_DCPERIOD_METADATA, struct_name: "", source_file: "cycle" },
    RegisteredMetadata { slug: "ht_dcphase", meta: &HT_DCPHASE_METADATA, struct_name: "", source_file: "cycle" },
    RegisteredMetadata { slug: "ht_phasor", meta: &HT_PHASOR_METADATA, struct_name: "", source_file: "cycle" },
    RegisteredMetadata { slug: "ht_sine", meta: &HT_SINE_METADATA, struct_name: "", source_file: "cycle" },
    RegisteredMetadata { slug: "ht_trendmode", meta: &HT_TRENDMODE_METADATA, struct_name: "", source_file: "cycle" },
    RegisteredMetadata { slug: "hurst_exponent", meta: &HURST_EXPONENT_METADATA, struct_name: "HurstExponent", source_file: "hurst" },
    RegisteredMetadata { slug: "ichimoku", meta: &ICHIMOKU_METADATA, struct_name: "Ichimoku", source_file: "ichimoku" },
    RegisteredMetadata { slug: "instantaneous_trendline", meta: &INSTANTANEOUS_TRENDLINE_METADATA, struct_name: "InstantaneousTrendline", source_file: "instantaneous_trendline" },
    RegisteredMetadata { slug: "inverse_fisher", meta: &INVERSE_FISHER_METADATA, struct_name: "InverseFisher", source_file: "inverse_fisher" },
    RegisteredMetadata { slug: "kalman_filter", meta: &KALMAN_FILTER_METADATA, struct_name: "KalmanFilter", source_file: "kalman" },
    RegisteredMetadata { slug: "kama", meta: &KAMA_METADATA, struct_name: "Kama", source_file: "kama" },
    RegisteredMetadata { slug: "keltner", meta: &KELTNER_METADATA, struct_name: "Keltner", source_file: "keltner" },
    RegisteredMetadata { slug: "kinematic_kalman", meta: &KINEMATIC_KALMAN_METADATA, struct_name: "KinematicKalman", source_file: "kinematic_kalman" },
    RegisteredMetadata { slug: "laguerre_filter", meta: &LAGUERRE_FILTER_METADATA, struct_name: "LaguerreFilter", source_file: "laguerre_filter" },
    RegisteredMetadata { slug: "laguerre_oscillator", meta: &LAGUERRE_OSCILLATOR_METADATA, struct_name: "LaguerreOscillator", source_file: "laguerre_oscillator" },
    RegisteredMetadata { slug: "laguerre_rsi", meta: &LAGUERRE_RSI_METADATA, struct_name: "LaguerreRsi", source_file: "laguerre_rsi" },
    RegisteredMetadata { slug: "linreg", meta: &LINREG_METADATA, struct_name: "StandardDeviation", source_file: "statistics" },
    RegisteredMetadata { slug: "macd", meta: &MACD_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "madh", meta: &MADH_METADATA, struct_name: "Madh", source_file: "madh" },
    RegisteredMetadata { slug: "mad", meta: &MAD_METADATA, struct_name: "Mad", source_file: "mad" },
    RegisteredMetadata { slug: "mama", meta: &MAMA_METADATA, struct_name: "Mama", source_file: "mama" },
    RegisteredMetadata { slug: "market_state", meta: &MARKET_STATE_METADATA, struct_name: "MarketState", source_file: "market_state" },
    RegisteredMetadata { slug: "market_structure", meta: &MARKET_STRUCTURE_METADATA, struct_name: "MarketStructure", source_file: "market_structure" },
    RegisteredMetadata { slug: "medprice", meta: &MEDPRICE_METADATA, struct_name: "OC2", source_file: "price_transform" },
    RegisteredMetadata { slug: "mesa_stochastic", meta: &MESA_STOCHASTIC_METADATA, struct_name: "MesaStochastic", source_file: "mesa_stochastic" },
    RegisteredMetadata { slug: "mfi", meta: &MFI_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "mom", meta: &MOM_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "my_rsi", meta: &MY_RSI_METADATA, struct_name: "MyRsi", source_file: "my_rsi" },
    RegisteredMetadata { slug: "natr", meta: &NATR_METADATA, struct_name: "TrueRange", source_file: "volatility" },
    RegisteredMetadata { slug: "noise_elimination", meta: &NOISE_ELIMINATION_METADATA, struct_name: "NoiseElimination", source_file: "noise_elimination" },
    RegisteredMetadata { slug: "obv", meta: &OBV_METADATA, struct_name: "", source_file: "volume" },
    RegisteredMetadata { slug: "oc2", meta: &OC2_METADATA, struct_name: "Oc2", source_file: "price_transform" },
    RegisteredMetadata { slug: "oc_price_rsi", meta: &OC_PRICE_RSI_METADATA, struct_name: "OcPriceRsi", source_file: "oc_price_rsi" },
    RegisteredMetadata { slug: "one_euro_filter", meta: &ONE_EURO_FILTER_METADATA, struct_name: "OneEuroFilter", source_file: "one_euro_filter" },
    RegisteredMetadata { slug: "pairs_rotation", meta: &PAIRS_ROTATION_METADATA, struct_name: "PairsRotation", source_file: "pairs_rotation" },
    RegisteredMetadata { slug: "phasor", meta: &PHASOR_METADATA, struct_name: "Phasor", source_file: "phasor" },
    RegisteredMetadata { slug: "pivot_points", meta: &PIVOT_POINTS_METADATA, struct_name: "PivotPoints", source_file: "pivot_points" },
    RegisteredMetadata { slug: "ppo", meta: &PPO_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "precision_trend_analysis", meta: &PRECISION_TREND_ANALYSIS_METADATA, struct_name: "PrecisionTrendAnalysis", source_file: "precision_trend" },
    RegisteredMetadata { slug: "projected_moving_average", meta: &PROJECTED_MOVING_AVERAGE_METADATA, struct_name: "ProjectedMovingAverage", source_file: "pma" },
    RegisteredMetadata { slug: "recursive_median", meta: &RECURSIVE_MEDIAN_METADATA, struct_name: "RecursiveMedian", source_file: "recursive_median" },
    RegisteredMetadata { slug: "recursive_median_oscillator", meta: &RECURSIVE_MEDIAN_OSCILLATOR_METADATA, struct_name: "RecursiveMedianOscillator", source_file: "recursive_median" },
    RegisteredMetadata { slug: "reflex", meta: &REFLEX_METADATA, struct_name: "Reflex", source_file: "reflex" },
    RegisteredMetadata { slug: "reverse_ema", meta: &REVERSE_EMA_METADATA, struct_name: "ReverseEma", source_file: "reverse_ema" },
    RegisteredMetadata { slug: "reversion_index", meta: &REVERSION_INDEX_METADATA, struct_name: "ReversionIndex", source_file: "reversion_index" },
    RegisteredMetadata { slug: "rocket_rsi", meta: &ROCKET_RSI_METADATA, struct_name: "RocketRsi", source_file: "rocket_rsi" },
    RegisteredMetadata { slug: "roc", meta: &ROC_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "roofing_filter", meta: &ROOFING_FILTER_METADATA, struct_name: "RoofingFilter", source_file: "roofing_filter" },
    RegisteredMetadata { slug: "rsih", meta: &RSIH_METADATA, struct_name: "Rsih", source_file: "rsih" },
    RegisteredMetadata { slug: "rsi", meta: &RSI_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "sar", meta: &SAR_METADATA, struct_name: "", source_file: "overlap" },
    RegisteredMetadata { slug: "sdo", meta: &SDO_METADATA, struct_name: "Sdo", source_file: "sdo" },
    RegisteredMetadata { slug: "simple_predictor", meta: &SIMPLE_PREDICTOR_METADATA, struct_name: "SimplePredictor", source_file: "simple_predictor" },
    RegisteredMetadata { slug: "sine_wave", meta: &SINE_WAVE_METADATA, struct_name: "SineWave", source_file: "sine_wave" },
    RegisteredMetadata { slug: "sma", meta: &SMA_METADATA, struct_name: "Sma", source_file: "smoothing" },
    RegisteredMetadata { slug: "sr_interaction_monitor", meta: &SR_INTERACTION_MONITOR_METADATA, struct_name: "SrInteractionMonitor", source_file: "sr_monitor" },
    RegisteredMetadata { slug: "stc", meta: &STC_METADATA, struct_name: "SchaffTrendCycle", source_file: "stc" },
    RegisteredMetadata { slug: "stddev", meta: &STDDEV_METADATA, struct_name: "StandardDeviation", source_file: "statistics" },
    RegisteredMetadata { slug: "stoch", meta: &STOCH_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "super_smoother", meta: &SUPER_SMOOTHER_METADATA, struct_name: "SuperSmoother", source_file: "super_smoother" },
    RegisteredMetadata { slug: "swiss_army_knife", meta: &SWISS_ARMY_KNIFE_METADATA, struct_name: "SwissArmyKnife", source_file: "swiss_army_knife" },
    RegisteredMetadata { slug: "synthetic_oscillator", meta: &SYNTHETIC_OSCILLATOR_METADATA, struct_name: "SyntheticOscillator", source_file: "synthetic_oscillator" },
    RegisteredMetadata { slug: "system_evaluator", meta: &SYSTEM_EVALUATOR_METADATA, struct_name: "SystemEvaluator", source_file: "system_evaluator" },
    RegisteredMetadata { slug: "t3", meta: &T3_METADATA, struct_name: "", source_file: "overlap" },
    RegisteredMetadata { slug: "tema", meta: &TEMA_METADATA, struct_name: "Tema", source_file: "tema" },
    RegisteredMetadata { slug: "tradj_ema", meta: &TRADJ_EMA_METADATA, struct_name: "TradjEma", source_file: "tradj_ema" },
    RegisteredMetadata { slug: "trendflex", meta: &TRENDFLEX_METADATA, struct_name: "Trendflex", source_file: "trendflex" },
    RegisteredMetadata { slug: "triangle_filter", meta: &TRIANGLE_FILTER_METADATA, struct_name: "TriangleFilter", source_file: "triangle" },
    RegisteredMetadata { slug: "trima", meta: &TRIMA_METADATA, struct_name: "", source_file: "overlap" },
    RegisteredMetadata { slug: "trix", meta: &TRIX_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "true_range", meta: &TRUE_RANGE_METADATA, struct_name: "TrueRange", source_file: "volatility" },
    RegisteredMetadata { slug: "truncated_bandpass", meta: &TRUNCATED_BANDPASS_METADATA, struct_name: "TruncatedBandpass", source_file: "truncated_bandpass" },
    RegisteredMetadata { slug: "ttm_squeeze", meta: &TTM_SQUEEZE_METADATA, struct_name: "TtmSqueeze", source_file: "ttm_squeeze" },
    RegisteredMetadata { slug: "typprice", meta: &TYPPRICE_METADATA, struct_name: "OC2", source_file: "price_transform" },
    RegisteredMetadata { slug: "ultimate_bands", meta: &ULTIMATE_BANDS_METADATA, struct_name: "UltimateBands", source_file: "ultimate_bands" },
    RegisteredMetadata { slug: "ultimate_channel", meta: &ULTIMATE_CHANNEL_METADATA, struct_name: "UltimateChannel", source_file: "ultimate_channel" },
    RegisteredMetadata { slug: "ultimate_smoother", meta: &ULTIMATE_SMOOTHER_METADATA, struct_name: "UltimateSmoother", source_file: "ultimate_smoother" },
    RegisteredMetadata { slug: "ultosc", meta: &ULTOSC_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "undersampled_double_ma", meta: &UNDERSAMPLED_DOUBLE_MA_METADATA, struct_name: "UndersampledDoubleMa", source_file: "just_ignore_them" },
    RegisteredMetadata { slug: "universal_oscillator", meta: &UNIVERSAL_OSCILLATOR_METADATA, struct_name: "UniversalOscillator", source_file: "universal_oscillator" },
    RegisteredMetadata { slug: "usi", meta: &USI_METADATA, struct_name: "Usi", source_file: "usi" },
    RegisteredMetadata { slug: "volume_profile", meta: &VOLUME_PROFILE_METADATA, struct_name: "VolumeProfile", source_file: "volume_profile" },
    RegisteredMetadata { slug: "vortex", meta: &VORTEX_METADATA, struct_name: "Vortex", source_file: "vortex" },
    RegisteredMetadata { slug: "voss_predictor", meta: &VOSS_PREDICTOR_METADATA, struct_name: "VossPredictor", source_file: "voss_predictor" },
    RegisteredMetadata { slug: "vpn", meta: &VPN_METADATA, struct_name: "Vpn", source_file: "vpn" },
    RegisteredMetadata { slug: "vwap", meta: &VWAP_METADATA, struct_name: "AnchoredVWAP", source_file: "vwap" },
    RegisteredMetadata { slug: "wavetrend", meta: &WAVETREND_METADATA, struct_name: "Wavetrend", source_file: "wavetrend" },
    RegisteredMetadata { slug: "wclprice", meta: &WCLPRICE_METADATA, struct_name: "OC2", source_file: "price_transform" },
    RegisteredMetadata { slug: "willr", meta: &WILLR_METADATA, struct_name: "", source_file: "momentum" },
    RegisteredMetadata { slug: "wma", meta: &WMA_METADATA, struct_name: "Wma", source_file: "smoothing" },
    RegisteredMetadata { slug: "zero_lag", meta: &ZERO_LAG_METADATA, struct_name: "ZeroLag", source_file: "zero_lag" },
    RegisteredMetadata { slug: "zlema", meta: &ZLEMA_METADATA, struct_name: "Zlema", source_file: "tema" },
];

/// Flat view of metadata pointers (legacy / export).
pub static ALL_INDICATOR_METADATA: &[&IndicatorMetadata] = &[
    &ADAPTIVE_EMA_METADATA,
    &ADOSC_METADATA,
    &ADX_METADATA,
    &AD_METADATA,
    &ALLIGATOR_METADATA,
    &ALMA_METADATA,
    &AM_DETECTOR_METADATA,
    &APO_METADATA,
    &AROON_METADATA,
    &ATR_METADATA,
    &ATR_TS_METADATA,
    &AUTOTUNE_FILTER_METADATA,
    &AVGPRICE_METADATA,
    &BANDPASS_METADATA,
    &BBANDS_METADATA,
    &BETA_METADATA,
    &BUTTERWORTH2_METADATA,
    &BUTTERWORTH3_METADATA,
    &CCI_METADATA,
    &CDL2CROWS_METADATA,
    &CDL3BLACKCROWS_METADATA,
    &CDL3INSIDE_METADATA,
    &CDL3LINESTRIKE_METADATA,
    &CDL3OUTSIDE_METADATA,
    &CDL3STARSINSOUTH_METADATA,
    &CDL3WHITESOLDIERS_METADATA,
    &CDLABANDONEDBABY_METADATA,
    &CDLADVANCEBLOCK_METADATA,
    &CDLBELTHOLD_METADATA,
    &CDLBREAKAWAY_METADATA,
    &CDLCLOSINGMARUBOZU_METADATA,
    &CDLCONCEALBABYSWALL_METADATA,
    &CDLCOUNTERATTACK_METADATA,
    &CDLDARKCLOUDCOVER_METADATA,
    &CDLDOJISTAR_METADATA,
    &CDLDOJI_METADATA,
    &CDLDRAGONFLYDOJI_METADATA,
    &CDLENGULFING_METADATA,
    &CDLEVENINGDOJISTAR_METADATA,
    &CDLEVENINGSTAR_METADATA,
    &CDLGAPSIDESIDEWHITE_METADATA,
    &CDLGRAVESTONEDOJI_METADATA,
    &CDLHAMMER_METADATA,
    &CDLHANGINGMAN_METADATA,
    &CDLHARAMICROSS_METADATA,
    &CDLHARAMI_METADATA,
    &CDLHIGHWAVE_METADATA,
    &CDLHIKKAKEMOD_METADATA,
    &CDLHIKKAKE_METADATA,
    &CDLHOMINGPIGEON_METADATA,
    &CDLIDENTICAL3CROWS_METADATA,
    &CDLINNECK_METADATA,
    &CDLINVERTEDHAMMER_METADATA,
    &CDLKICKINGBYLENGTH_METADATA,
    &CDLKICKING_METADATA,
    &CDLLADDERBOTTOM_METADATA,
    &CDLLONGLEGGEDDOJI_METADATA,
    &CDLLONGLINE_METADATA,
    &CDLMARUBOZU_METADATA,
    &CDLMATCHINGLOW_METADATA,
    &CDLMATHOLD_METADATA,
    &CDLMORNINGDOJISTAR_METADATA,
    &CDLMORNINGSTAR_METADATA,
    &CDLONNECK_METADATA,
    &CDLPIERCING_METADATA,
    &CDLRICKSHAWMAN_METADATA,
    &CDLRISEFALL3METHODS_METADATA,
    &CDLSEPARATINGLINES_METADATA,
    &CDLSHOOTINGSTAR_METADATA,
    &CDLSHORTLINE_METADATA,
    &CDLSPINNINGTOP_METADATA,
    &CDLSTALLEDPATTERN_METADATA,
    &CDLSTICKSANDWICH_METADATA,
    &CDLTAKURI_METADATA,
    &CDLTASUKIGAP_METADATA,
    &CDLTHRUSTING_METADATA,
    &CDLTRISTAR_METADATA,
    &CDLUNIQUE3RIVER_METADATA,
    &CDLUPSIDEGAP2CROWS_METADATA,
    &CDLXSIDEGAP3METHODS_METADATA,
    &CG_METADATA,
    &CHANNEL_CYCLE_METADATA,
    &CHOPPINESS_INDEX_METADATA,
    &CLASSIC_LAGUERRE_METADATA,
    &CMO_METADATA,
    &CONTINUATION_INDEX_METADATA,
    &CORRELATION_CYCLE_METADATA,
    &CORRELATION_TREND_METADATA,
    &CORREL_METADATA,
    &CYBERNETIC_OSCILLATOR_METADATA,
    &CYBER_CYCLE_METADATA,
    &CYCLE_TREND_ANALYTICS_METADATA,
    &DEMA_METADATA,
    &DMH_METADATA,
    &DONCHIAN_METADATA,
    &DSMA_METADATA,
    &EHLERS_AUTOCORRELATION_METADATA,
    &EHLERS_FILTER_METADATA,
    &EHLERS_LOOPS_METADATA,
    &EHLERS_STOCHASTIC_METADATA,
    &EHLERS_ULTIMATE_OSCILLATOR_METADATA,
    &EMA_METADATA,
    &EMD_METADATA,
    &FISHER_HIGH_PASS_METADATA,
    &FISHER_METADATA,
    &FM_DEMODULATOR_METADATA,
    &FOURIER_DOMINANT_CYCLE_METADATA,
    &FOURIER_SERIES_MODEL_METADATA,
    &FRACTALS_METADATA,
    &FRAC_DIFF_METADATA,
    &FRAMA_METADATA,
    &GAP_MOMENTUM_METADATA,
    &GAUSSIAN_FILTER_METADATA,
    &GENERALIZED_LAGUERRE_METADATA,
    &GEOMETRIC_PATTERNS_METADATA,
    &GRIFFITHS_DOMINANT_CYCLE_METADATA,
    &GRIFFITHS_PREDICTOR_METADATA,
    &GRIFFITHS_SPECTRUM_METADATA,
    &HAMMING_FILTER_METADATA,
    &HANN_FILTER_METADATA,
    &HARRINGTON_ADX_METADATA,
    &HEIKIN_ASHI_METADATA,
    &HIGH_PASS_METADATA,
    &HMA_METADATA,
    &HOMODYNE_DISCRIMINATOR_METADATA,
    &HT_DCPERIOD_METADATA,
    &HT_DCPHASE_METADATA,
    &HT_PHASOR_METADATA,
    &HT_SINE_METADATA,
    &HT_TRENDMODE_METADATA,
    &HURST_EXPONENT_METADATA,
    &ICHIMOKU_METADATA,
    &INSTANTANEOUS_TRENDLINE_METADATA,
    &INVERSE_FISHER_METADATA,
    &KALMAN_FILTER_METADATA,
    &KAMA_METADATA,
    &KELTNER_METADATA,
    &KINEMATIC_KALMAN_METADATA,
    &LAGUERRE_FILTER_METADATA,
    &LAGUERRE_OSCILLATOR_METADATA,
    &LAGUERRE_RSI_METADATA,
    &LINREG_METADATA,
    &MACD_METADATA,
    &MADH_METADATA,
    &MAD_METADATA,
    &MAMA_METADATA,
    &MARKET_STATE_METADATA,
    &MARKET_STRUCTURE_METADATA,
    &MEDPRICE_METADATA,
    &MESA_STOCHASTIC_METADATA,
    &MFI_METADATA,
    &MOM_METADATA,
    &MY_RSI_METADATA,
    &NATR_METADATA,
    &NOISE_ELIMINATION_METADATA,
    &OBV_METADATA,
    &OC2_METADATA,
    &OC_PRICE_RSI_METADATA,
    &ONE_EURO_FILTER_METADATA,
    &PAIRS_ROTATION_METADATA,
    &PHASOR_METADATA,
    &PIVOT_POINTS_METADATA,
    &PPO_METADATA,
    &PRECISION_TREND_ANALYSIS_METADATA,
    &PROJECTED_MOVING_AVERAGE_METADATA,
    &RECURSIVE_MEDIAN_METADATA,
    &RECURSIVE_MEDIAN_OSCILLATOR_METADATA,
    &REFLEX_METADATA,
    &REVERSE_EMA_METADATA,
    &REVERSION_INDEX_METADATA,
    &ROCKET_RSI_METADATA,
    &ROC_METADATA,
    &ROOFING_FILTER_METADATA,
    &RSIH_METADATA,
    &RSI_METADATA,
    &SAR_METADATA,
    &SDO_METADATA,
    &SIMPLE_PREDICTOR_METADATA,
    &SINE_WAVE_METADATA,
    &SMA_METADATA,
    &SR_INTERACTION_MONITOR_METADATA,
    &STC_METADATA,
    &STDDEV_METADATA,
    &STOCH_METADATA,
    &SUPER_SMOOTHER_METADATA,
    &SWISS_ARMY_KNIFE_METADATA,
    &SYNTHETIC_OSCILLATOR_METADATA,
    &SYSTEM_EVALUATOR_METADATA,
    &T3_METADATA,
    &TEMA_METADATA,
    &TRADJ_EMA_METADATA,
    &TRENDFLEX_METADATA,
    &TRIANGLE_FILTER_METADATA,
    &TRIMA_METADATA,
    &TRIX_METADATA,
    &TRUE_RANGE_METADATA,
    &TRUNCATED_BANDPASS_METADATA,
    &TTM_SQUEEZE_METADATA,
    &TYPPRICE_METADATA,
    &ULTIMATE_BANDS_METADATA,
    &ULTIMATE_CHANNEL_METADATA,
    &ULTIMATE_SMOOTHER_METADATA,
    &ULTOSC_METADATA,
    &UNDERSAMPLED_DOUBLE_MA_METADATA,
    &UNIVERSAL_OSCILLATOR_METADATA,
    &USI_METADATA,
    &VOLUME_PROFILE_METADATA,
    &VORTEX_METADATA,
    &VOSS_PREDICTOR_METADATA,
    &VPN_METADATA,
    &VWAP_METADATA,
    &WAVETREND_METADATA,
    &WCLPRICE_METADATA,
    &WILLR_METADATA,
    &WMA_METADATA,
    &ZERO_LAG_METADATA,
    &ZLEMA_METADATA,
];

pub const METADATA_COUNT: usize = 217;