Agent-Directed Wave Analysis Blueprint#
You can build this, but the first target should not be “predict the next price.” Build a causal system that identifies and labels multi-degree impulsive, corrective, and uncertain states using only Alligator, momentum, and Williams fractals; prediction and entry/exit policies should sit downstream of that shared structural language.
Separate four tasks#
These are different problems and should produce different artifacts.
| Task | Question | Uses future bars? | Output |
|---|---|---|---|
| Historical detection | What structure occurred? | Yes | Research labels |
| Real-time classification | What is observable now? | No | Current state probabilities |
| Forecasting | What state or pivot may come next? | No | Probabilistic forecast |
| Trading policy | Should an entry, exit, or no-action occur? | No | Decision with invalidation |
An ex-post wave count can use later fractals to explain history. A real-time system cannot know a Williams fractal at its center bar because the two bars to its right do not exist yet; the fractal becomes available two completed bars later.1
This distinction is foundational: do not train an agent to predict using labels or features that would not have existed at the decision timestamp.
Indicator contract#
Before agents write code, establish one canonical mathematical specification.
| Component | Canonical definition | Structural role | Main trap |
|---|---|---|---|
| Median price | $M_t=(H_t+L_t)/2$ | Common Alligator/momentum input | Substituting close silently |
| Jaw | 13-period SMMA of $M_t$, shifted 8 bars | Largest of the three balance scales | Confusing visual shift with future knowledge |
| Teeth | 8-period SMMA, shifted 5 bars | Intermediate balance scale | Platform-specific alignment |
| Lips | 5-period SMMA, shifted 3 bars | Short balance scale | Incorrect SMMA implementation |
| Up fractal | Middle high exceeds the two highs on each side | Confirmed candidate swing high | Confirmation requires two future bars |
| Down fractal | Middle low is below the two lows on each side | Confirmed candidate swing low | Same two-bar delay |
| Momentum | Must be defined explicitly | Impulse strength and weakening | “Momentum” has several incompatible meanings |
The standard Alligator uses the 13/8, 8/5, and 5/3 SMMA configurations on median price. Store both computed_at and displayed_at; an agent must never shift a newly computed value backward in a way that exposes future information.2
Momentum decision#
Because your other indicators come from the Bill Williams system, the clean default is the Awesome Oscillator:
$$ AO_t=SMA_5(M)t-SMA{34}(M)_t $$
MetaTrader defines it as the difference between 5- and 34-period simple moving averages of median price. If by “momentum indicator” you instead mean a platform’s conventional Momentum function, freeze its exact specification—for example $C_t-C_{t-n}$ or $100C_t/C_{t-n}$—because those definitions are not interchangeable.3
Do not let an implementation agent make this choice implicitly.
Define wave degree#
A “degree” cannot remain a visual intuition. Give it an explicit data definition.
The safest approach within your indicator restriction is:
- Apply the same five-bar fractal rule at several predefined bar intervals.
- Treat each interval as a named degree.
- Map higher-interval fractals back to their underlying base bars.
- Require higher-degree pivots to contain lower-degree pivot sequences.
- Record the interval and confirmation time with every pivot.
For example:
| Degree | Bars analyzed | Purpose |
|---|---|---|
| D0 | Base interval | Smallest observable swings |
| D1 | Aggregation of D0 bars | Short wave structure |
| D2 | Aggregation of D1 bars | Larger impulse/correction |
| D3 | Aggregation of D2 bars | Context for lower degrees |
The human should decide the aggregation relationships. The agent can test alternatives, but it should not redefine “degree” after seeing profitable results.
A secondary research path is multilevel wavelet decomposition: PyWavelets separates a series into approximation and detail coefficients at multiple scales. That is useful for investigating whether your manually perceived degrees correspond to measurable scales, but it should remain an offline research instrument until boundary effects and real-time causality have been tested.4
Operational wave language#
Avoid starting with a claim that an agent has found “the correct Elliott count.” Define observable structures first.
State vocabulary#
Use a small ontology at every degree:
impulse_upimpulse_downcorrective_upcorrective_downtransitionuncertain
The final two classes are important. Forcing every sequence into an impulse or correction will manufacture certainty and encourage agents to retrofit counts.
Impulsive evidence#
An upward impulse candidate can accumulate evidence from:
- Confirmed alternating down/up fractals making directional progress.
- Lips above Teeth above Jaw.
- Positive slopes in the Alligator lines.
- Expansion between the three lines.
- Positive momentum during advancing legs.
- A stronger momentum expansion in the central advancing portion.
- Continued higher-degree alignment.
The downward definition mirrors this. These should initially be scored conditions, not all-or-nothing doctrine.
Corrective evidence#
A downward correction within a larger upward structure can accumulate evidence from:
- A lower-degree sequence moving against the higher-degree direction.
- Alligator lines contracting, tangling, or losing their directional ordering.
- Momentum falling toward or below zero.
- Countertrend momentum that remains weaker than the preceding impulse.
- A three-leg fractal sequence rather than a stable five-leg directional sequence.
The resulting classification should be a probability or score accompanied by the contributing evidence.
Multiple hypotheses#
Wave interpretation is inherently ambiguous, especially before a structure is complete. Store several candidates:
{
"degree": "D1",
"as_of": "timestamp",
"hypotheses": [
{
"state": "corrective_down",
"phase": "candidate_C",
"probability": 0.56,
"pivots": ["p17", "p18", "p19", "p20"],
"supporting_rules": ["momentum_negative", "alligator_compressing"],
"violated_rules": [],
"invalidation": "close_above_p18"
},
{
"state": "impulse_down",
"phase": "candidate_3",
"probability": 0.31,
"pivots": ["p16", "p17", "p18", "p19", "p20"],
"supporting_rules": ["lower_fractals"],
"violated_rules": ["higher_degree_up"]
}
]
}
This gives you something intelligible to review: not merely the agent’s label, but its structural claim, evidence, alternatives, and invalidation.
Labels before models#
Your entry and exit annotations are useful, but they should not be the only labels. Otherwise the system learns your current trading policy instead of learning price structure.
Maintain four independent label families:
| Label family | Example | Purpose |
|---|---|---|
| Structural | corrective_down, degree D1 | Describe market structure |
| Event | Confirmed up fractal | Identify observable turning events |
| Forecast target | Next confirmed pivot is higher | Train predictive models |
| Policy | Enter long, exit, hold | Evaluate the trading process |
Every research label should include:
- Degree.
- Start and end pivot identifiers.
- Direction.
- Complete, incomplete, or invalidated status.
- Label creation timestamp.
- Last bar the label was allowed to inspect.
- Confidence.
- Alternative interpretation.
- Entry or exit annotation, if applicable.
- Annotator and revision history.
Keep event_time separate from available_time. For a five-bar fractal centered at bar $t$, the event time is $t$, but the earliest causal availability is $t+2$.1
Human responsibilities#
The human does not need to implement every numerical routine. You do need to control the semantics that determine what the routines mean.
You should personally define:
- Which momentum formula is authorized.
- The bar intervals corresponding to each degree.
- Whether incomplete bars are excluded.
- The structural state vocabulary.
- What constitutes completion and invalidation.
- Whether competing wave hypotheses are permitted.
- The maximum acceptable signal delay.
- The forecasting horizon and target.
- What an entry or exit label means.
- What level of uncertainty requires agent abstention.
- Which historical period remains untouched as final evaluation data.
You should also adjudicate difficult examples. A small set of carefully reasoned “gold” annotations is more useful than thousands of unexplained entry labels.
Agent responsibilities#
| Agent | Responsibility | Required artifact |
|---|---|---|
| Coordinator | Execute a fixed dependency graph; prevent agents from bypassing validation | Run manifest |
| Data curator | Ingest and validate immutable OHLC bars | Versioned bar dataset |
| Indicator engine | Compute only Alligator, authorized momentum, and fractals | Feature frame plus parity tests |
| Degree mapper | Construct nested fractal events across intervals | Fractal hierarchy |
| Structure agent | Generate competing impulse/correction hypotheses | Hypothesis graph |
| Annotation agent | Propose labels and identify uncertain examples | Annotation queue |
| Human-review agent | Present disagreements without deciding them | Review packet |
| Model agent | Train causal state and next-event models | Model card |
| Replay agent | Reconstruct information available at each historical bar | Causal replay log |
| Evaluation agent | Run walk-forward tests and sensitivity checks | Evaluation report |
| Red-team agent | Search for leakage, repainting, unstable counts, and overfitting | Failure report |
| Reporting agent | Explain predictions from stored evidence | Decision packet |
The LLM should coordinate, explain, and inspect. It should not be the numerical authority calculating indicators or silently assigning pivots; those operations should be deterministic functions with tests.
Shared data contracts#
Your agents will understand one another only if they exchange typed artifacts rather than prose.
Fractal event#
fractal_id
instrument
interval
degree
kind: up | down
pivot_time
available_time
price
left_context_end
right_context_end
status: confirmed | superseded
algorithm_version
Wave hypothesis#
hypothesis_id
instrument
degree
as_of
direction
state
phase
pivot_ids[]
supporting_evidence[]
violations[]
confidence
invalidation_condition
parent_hypothesis_id
algorithm_version
Prediction#
prediction_id
as_of
information_cutoff
degree
target_definition
horizon
class_probabilities
predicted_pivot_interval
abstain
invalidation
model_version
feature_version
The information_cutoff should be mandatory. If any input timestamp is later than that field, the entire result is invalid.
Library map#
These libraries do not need to introduce additional trading indicators. They can supply signal-processing, labeling, classification, and validation machinery around your three authorized indicators.
| Library/project | Useful role | Use now? | Caution |
|---|---|---|---|
| NumPy/Pandas | Bar alignment and deterministic feature tables | Yes | Freeze index and timezone semantics |
SciPy find_peaks | Independent audit of your fractal pivots using distance and prominence controls | Later | Do not replace canonical fractals silently; find_peaks has its own peak definition 5 |
| PyWavelets | Explore whether apparent degrees correspond to multiresolution components | Research | Border effects and noncausal reconstruction |
ruptures | Offline segmentation of non-stationary sequences | Research | It performs offline change-point detection, so detected boundaries may use later observations 6 |
| Statsmodels Markov models | Estimate probabilities of persistent latent states | Later | A statistical regime is not automatically an impulse or correction 7 |
| STUMPY | Find repeated subsequences resembling labeled structures | Later | Similar shape does not imply the same causal state; motifs are based on subsequence distance 8 |
| sktime shapelets | Learn interpretable subsequences associated with your human labels | Later | Requires a clean, non-leaking labeled dataset 9 |
| Trend scanning | Independent research label for up/down/no-trend | Audit only | It may use forward windows and must never become an input to a live prediction 10 |
| tsfresh | Automated feature exploration | Not in MVP | It generates very large feature sets and would weaken your indicator restriction; its current documentation describes over 1,200 extracted features 11 |
GitHub findings#
python-taew is the clearest existing open-source Elliott-wave labeling reference found. It searches iteratively for possible wave points and can return structures of different sizes, but it relies heavily on Fibonacci validation—which you have excluded—and its author explicitly warns that it does not guarantee correct identification; use it as a research comparison, not as your foundation.
WilliamsIndicators contains Python implementations related to Alligator and SMMA. It is a small reference implementation rather than a production dependency: the source should be independently tested against an authoritative platform before adoption.
The older mlfinlab trend-scanning implementation is relevant to your labeling problem rather than your indicator set. It selects the forward window whose linear slope has the strongest t-value, producing up/down or up/flat/down labels.12
Academic evidence#
Academic support for automatic turning-point detection is stronger than support for uniquely correct Elliott counts. One probability-based method detects financial peaks and troughs by testing changes between consecutive rolling-regression slopes and evaluates the method with in-sample and out-of-sample data.13
Change-point research also distinguishes offline detection, which can use later observations and is usually more accurate, from online detection, which must respond immediately and normally incurs delay. This is directly analogous to the difference between your historical wave labels and live wave-state estimates.14
Evidence for Elliott-wave profitability is mixed:
- A Tilburg thesis implemented Elliott-wave and Fibonacci strategies across four exchange rates but did not find enough significant profitability to reject the null hypothesis overall.15
- A neural-network recognition study reported Elliott-pattern extraction, but its described test series contained only 259 EUR/USD values, making it weak evidence for broad market generalization.16
- A 2024 study of NFT and cryptocurrency periodicity found that periodic models could explain some behavior but did not support the existence of Elliott waves in that market.17
A particularly relevant paper proposed ElliottAgents, a hierarchical multi-agent system with separate data, wave-analysis, backtesting, technical-analysis, advisory, and reporting roles. It reports improved pattern-prediction accuracy after historical backtesting, but the paper does not supply an openly linked reproducibility repository and evaluates several conditions with small pattern counts; its architecture is more useful than treating its reported performance as settled evidence.18
The defensible position is therefore:
Treat impulse and correction as an explicit, testable labeling hypothesis—not as a proven natural law of prices.
Modeling sequence#
Deterministic baseline#
Begin with no machine learning.
- Calculate the three indicators exactly.
- Confirm fractals causally.
- Construct alternating pivot sequences.
- Map pivots across degrees.
- Generate scored impulse/correction hypotheses.
- Compare those hypotheses with your manual annotations.
- Record every disagreement.
This baseline tells you whether the conceptual definitions are workable. A complex model cannot repair an inconsistent label ontology.
Supervised classification#
Once annotations are stable, train a model to estimate:
$$ P(S_t \mid I_t) $$
where $S_t$ is the current structural state and $I_t$ contains only information available by time $t$.
Use features derived only from your authorized indicators:
- Alligator ordering.
- Alligator slopes.
- Separation between lines.
- Changes in separation.
- Momentum level, sign, slope, and local extrema.
- Time since each confirmed fractal.
- Distance from price to the latest confirmed fractals.
- Number and direction of recent fractal breaks.
- Agreement between adjacent degrees.
Event forecasting#
Only after state classification is stable should the system estimate:
- Probability that the next confirmed fractal is up or down.
- Probability of structural invalidation.
- Expected bars until the next confirmed pivot.
- Probability of transition from correction to impulse.
- Probability that the current candidate remains valid after additional bars.
Prefer ranges and calibrated probabilities over a single predicted price.
Entry and exit policy#
The policy should consume the state forecast; it should not define the state.
For example:
IF
D2 state supports impulse_up
AND D1 correction is probably completing
AND D0 confirms an up fractal outside the Alligator
AND momentum is improving
THEN
propose long-entry candidate
ELSE
no action
This remains within your three-indicator restriction. The policy agent must also output an invalidation condition and should be allowed to return no_action.
Honest validation#
Randomly shuffling financial bars is inappropriate because nearby feature windows and forward labels overlap. Use chronological walk-forward testing, remove training labels whose outcome intervals overlap the test interval, and apply an embargo where needed; purged-validation implementations describe these controls explicitly.19
Your evaluation should include several layers.
| Layer | Metrics |
|---|---|
| Indicator correctness | Exact parity with a trusted platform |
| Fractal detection | Precision, recall, confirmation delay |
| Degree mapping | Parent-child consistency and pivot alignment |
| State labeling | Per-class precision/recall, macro F1, confusion matrix |
| Probability quality | Brier score and calibration curves |
| Structural stability | Percentage of counts revised after new bars |
| Forecasting | Next-pivot accuracy, timing error, invalidation rate |
| Human agreement | Inter-annotator agreement and unresolved ambiguity |
| Trading policy | Net expectancy, drawdown, turnover, costs and slippage |
| Robustness | Results by instrument, interval, and historical period |
Keep one final period locked. No agent should inspect it during label design, parameter selection, prompt development, or model selection.
Required tests#
Your coordinator should reject a build unless all of these pass:
- Alligator values match a trusted reference on a fixed fixture.
- SMMA initialization and recursive updates are tested.
- Chart displacement is separate from information availability.
- A fractal centered at $t$ cannot appear before $t+2$.
- Features contain no bar later than the prediction cutoff.
- Incomplete bars cannot enter calculations.
- Higher-degree bars close before their features become available.
- Labels record their full look-forward interval.
- Training and test label intervals do not overlap.
- Every prediction can be reproduced from stored data and versions.
- Parameter changes generate a new experiment identifier.
- The system reports ambiguous structures rather than coercing a count.
Build order#
Foundation#
- Freeze the indicator definitions.
- Freeze bar and timestamp semantics.
- Define degrees and the structural ontology.
- Create 50–100 carefully annotated examples containing both clear and ambiguous cases.
Calculation engine#
- Implement deterministic Alligator, momentum, and fractal functions.
- Add platform-parity fixtures.
- Create causal replay so the chart can be reconstructed exactly as it appeared at each historical bar.
Structural engine#
- Build alternating confirmed-fractal sequences.
- Create nested degrees.
- Generate several candidate wave hypotheses.
- Produce evidence and invalidation for every hypothesis.
Annotation workflow#
- Let agents pre-label historical windows.
- Review disagreement and low-confidence cases.
- Version every correction.
- Measure your own consistency by relabeling a hidden subset later.
Predictive layer#
- Train a current-state classifier.
- Add next-fractal and transition forecasts.
- Calibrate probabilities.
- Compare against deterministic and persistence baselines.
Policy layer#
- Formalize your existing entry labels.
- Define exit and invalidation separately.
- Replay every decision with realistic availability and costs.
- Run paper trading before any live execution.
Agent operating rules#
Give these constraints to the coordinating agent:
1. Use no market indicators other than Alligator, the authorized
momentum definition, and Williams fractals.
2. Distinguish event time, confirmation time, display time,
and decision time.
3. Never use a future-confirmed fractal in a historical feature row.
4. Never present an ex-post wave count as a real-time prediction.
5. Preserve competing wave hypotheses when evidence is ambiguous.
6. Every label must state its degree, inspected interval,
confidence, and invalidation condition.
7. Every prediction must state its information cutoff.
8. Numerical calculations must come from deterministic,
tested functions—not from LLM interpretation.
9. Do not optimize indicator parameters on final test data.
10. Report failed hypotheses, revisions, and abstentions;
do not report only successful examples.
Recommended starting scope#
Start with one instrument, one base interval, three degrees, the standard Alligator, confirmed five-bar fractals, and one frozen momentum definition. The first deliverable should be a causal chart-replay and annotation system—not an autonomous trading agent—because that artifact establishes the shared language from which reliable model training, agent coordination, and entry/exit evaluation become possible.
2021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
Footnotes#
-
https://www.metatrader5.com/en/terminal/help/indicators/bw_indicators/fractals.md ↩ ↩2
-
https://www.metatrader5.com/en/mobile-trading/iphone/help/chart/indicators/bw_indicators/alligator ↩
-
https://www.metatrader5.com/en/terminal/help/indicators/bw_indicators/awesome ↩
-
https://pywavelets.readthedocs.io/en/0.2.2/ref/dwt-discrete-wavelet-transform.html ↩
-
https://docs.scipy.org/doc//scipy-1.11.1/reference/generated/scipy.signal.find_peaks.html ↩
-
https://www.statsmodels.org/stable/generated/statsmodels.tsa.regime_switching.markov_regression.MarkovRegression.html ↩
-
https://github.com/stumpy-dev/stumpy/blob/main/stumpy/motifs.py ↩
-
https://www.sktime.org/en/stable/examples/shapelet_transform.html ↩
-
https://mlfinpy.readthedocs.io/en/stable/\_sources/Labelling.rst.txt ↩
-
https://tsfresh.readthedocs.io/en/latest/text/quick_start.html ↩
-
https://github.com/hudson-and-thames/mlfinlab/blob/master/mlfinlab/labeling/trend_scanning.py ↩
-
https://www.scs-europe.net/conf/ecms2012/ecms2012 accepted papers/is_ECMS_0080.pdf ↩
-
https://pdfs.semanticscholar.org/c93e/dde15d5477a2b0f74cfb884d1f18f4c21ae0.pdf ↩
-
https://ppuertos.github.io/financial-ml-core/reference/model_selection/split/ ↩
-
https://www.quantopia.net/ml-finance/feature-engineering-finance/ ↩
-
https://github.com/buckstrdr/quant-trading-strategies/blob/main/99_ideas/Triple_Barrier_Method.md ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4778909 ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2326253 ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2568435 ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4686376 ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2308659 ↩
-
https://www.luxalgo.com/library/indicator/williams-fractal/?ref=luxalgo.com ↩
-
https://github.com/TA-Lib/ta-lib-python/blob/master/docs/func_groups/momentum_indicators.md ↩
-
https://github.com/TA-Lib/ta-lib-python/blob/master/docs/index.md ↩
-
https://github.com/phmatray/TaLibStandard/blob/dev/docs/indicators/README.md ↩
-
https://github.com/xLUPOx/TA-Lib_but-pinescript/blob/master/categories/momentum-indicators/README.md ↩
-
https://quantiacs.com/documentation/en/user_guide/technical_indicators.html ↩
-
https://tessl.io/registry/tessl/pypi-ta-lib/0.6.0/files/docs/momentum-indicators.md ↩
-
https://github.com/TA-Lib/ta-lib-python/blob/master/docs/funcs.md ↩
-
https://github.com/TA-Lib/ta-lib-python/blob/master/docs/func.md ↩
-
https://www.sierrachart.com/index.php?page=doc/StudiesReference.php\&ID=175 ↩
-
https://help.tc2000.com/m/69445/l/755876-williams-alligator ↩
-
https://www.luxalgo.com/library/indicator/williams-alligator/ ↩
-
https://github.com/facioquo/stock-indicators-python/blob/main/stock_indicators/indicators/alligator.py ↩
-
https://therighttrader.com/learn/indicators/williams-alligator ↩
-
https://help.tc2000.com/m/69404/l/747130-williams-alligator ↩
-
https://blog.olymptrade.com/education/the-alligator-indicator ↩
-
https://toslc.thinkorswim.com/center/reference/Tech-Indicators/studies-library/V-Z/WilliamsAlligator ↩
-
https://www.tradingview.com/support/solutions/43000592305-williams-alligator/ ↩
-
https://lavs9.github.io/quantwave/guides/indicators/native/bill_williams_alligator/ ↩
-
https://ta4j.github.io/ta4j-wiki/Bill-Williams-Indicators.html ↩
-
https://www.angelone.in/knowledge-center/online-share-trading/momentum-indicator?msockid=3ea72b966c1161aa21393c626db56036 ↩
-
https://help.quantower.com/quantower/analytics-panels/chart/technical-indicators/oscillators/momentum ↩
-
https://www.bajajamc.com/knowledge-centre/momentum-indicators ↩
-
https://www.fidelity.com/learning-center/trading-investing/technical-analysis/technical-indicator-guide/momentum ↩
-
https://www.metatrader5.com/en/terminal/help/indicators/oscillators/momentum ↩
-
https://www.motilaloswal.com/personal-finance/technical-analysis/momentum-indicators-definition-types-advantages-limitations ↩
-
https://www.scribd.com/document/120787328/Bill-Williams-Alligator-and-Gator ↩
-
https://forexmt4systems.com/education/technical-analysis/williams-fractals/ ↩
-
https://www.metatrader5.com/en/mobile-trading/android/help/chart/indicators/bw_indicators/alligator ↩
-
https://www.tradingview.com/script/5Jms2RoO-XI0033-Williams-Fractal/ ↩
-
https://chartschool.stockcharts.com/table-of-contents/technical-indicators-and-overlays/technical-overlays/alligator ↩
-
https://ijsrem.com/download/niftyinvest-ai-enhancing-investment-decisions-through-time-series-forecasting-and-deep-learning-models/ ↩
-
http://www.scitepress.org/DigitalLibrary/Link.aspx?doi=10.5220/0007922200740083 ↩
-
https://link.springer.com/article/10.1007/s11277-017-5086-2 ↩
-
https://link.springer.com/article/10.1007/s41109-025-00748-1 ↩
-
https://www.yu.edu/sites/default/files/inline-files/Research report document_0.pdf ↩
-
https://link.springer.com/chapter/10.1007/978-88-470-0502-0_19 ↩
-
https://inria.hal.science/hal-03543760v1/file/Towards_Dynamic_Structure_Changes_Detection_in_Financial_Series_via_Causal_Analysis.pdf ↩
-
https://www.academia.edu/96534243/An_Approach_to_Modeling_on_Financial_Time_Series_Data_with_Regime_Shifts ↩
-
https://ctujs.ctu.edu.vn/index.php/ctujs/article/download/1156/728/6512 ↩
-
https://www.tandfonline.com/doi/full/10.1080/29966892.2026.2718692 ↩
-
https://www.econstor.eu/bitstream/10419/174211/1/wp_2017_18_witzany.pdf ↩
-
https://www.davidhbailey.com/dhbpapers/overfit-tools-at.pdf ↩
-
https://github.com/buckstrdr/quant-trading-strategies/blob/main/99_ideas/Purged_Cross_Validation.md ↩
-
https://github.com/eslazarev/purged-cross-validation/blob/main/paper/paper.md ↩
-
https://www.garp.org/hubfs/Whitepapers/a1Z1W0000054x6lUAA.pdf ↩
-
https://cran.r-project.org/web/packages/pbo/readme/README.html ↩
-
https://www.ijqqr.com/index.php/ijqqr/article/download/43/65 ↩
-
https://cran.r-project.org/web/packages//pbo/vignettes/pbo.html ↩
-
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.peak_prominences.html ↩
-
https://ctruong.perso.math.cnrs.fr/ruptures-docs/build/html/detection/binseg.html ↩
-
https://github.com/scipy/scipy/blob/v1.13.1/scipy/signal/\_peak_finding.py ↩
-
https://docs.scipy.org/doc/scipy-1.15.3/reference/generated/scipy.signal.find_peaks.html ↩
-
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html ↩
-
https://docs.scipy.org/doc/scipy-1.7.0/reference/reference/generated/scipy.signal.find_peaks.html ↩
-
https://docs.scipy.org/doc/scipy-1.11.4/reference/generated/scipy.signal.find_peaks.html ↩
-
https://docs.scipy.org/doc/scipy-1.13.0/reference/generated/scipy.signal.find_peaks.html ↩
-
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.peak_widths.html ↩
-
https://ctruong.perso.math.cnrs.fr/ruptures-docs/build/html/costs/costnormal.html ↩
-
https://www.degruyter.com/document/doi/10.1051/978-2-7598-2487-8.c005/html ↩
-
https://github.com/edelweiss611428/rupturesRcpp/blob/main/README.md ↩
-
https://github.com/cran/rupturesRcpp/blob/master/README.md ↩
-
https://www.mdpi.com/2227-7390/9/5/514/pdf?version=1614908214 ↩
-
https://www.semanticscholar.org/paper/cdc0e35b0f9f0a764756000d35277d1452fb6610 ↩
-
https://www.semanticscholar.org/paper/Intrinsic-Time-Directional-Change-Methodology-in-Petrov-Golub/42d8aa753820e55df9947f0ebac0dae9c17e2b8d ↩
-
https://www.econstor.eu/bitstream/10419/65285/1/726346985.pdf ↩
-
https://link.springer.com/article/10.1007/s10462-022-10307-0?error=cookies_not_supported\&code=6033918f-3595-4f5b-8896-6d851cdd3b05 ↩
-
https://gala.gre.ac.uk/id/eprint/19924/3/19924 CHINTHALAPATI_Developing_Sustainable_Trading_Strategies_2018.pdf ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S1544612320304414 ↩
-
https://www.semanticscholar.org/paper/89c56e48c454f229453f16c8239973dd424ce82b ↩
-
https://onlinelibrary.wiley.com/doi/10.1111/0022-1082.00163 ↩
-
https://www.semanticscholar.org/paper/6f83bb44bbc67c173b9a911772089fbb068a6865 ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S0927539810000022 ↩
-
https://academic.oup.com/jfec/article-lookup/doi/10.1093/jjfinec/nbi026 ↩
-
https://www.semanticscholar.org/paper/3880c224a8500a7294b3edc9fdf9533c7ad7e0e5 ↩
-
https://escholarship.org/content/qt4hn4t174/qt4hn4t174.pdf ↩
-
https://www.semanticscholar.org/paper/A-Reality-Check-for-Data-Snooping-White/ee1014390904db3c2c7c1f81719f49450e621a70 ↩
-
https://python.financial/concepts/purged-cross-validation/ ↩
-
https://academic.oup.com/jfec/article/3/4/606/907780?guestAccessKey= ↩
-
https://tdr.lib.ntu.edu.tw/jspui/retrieve/942f3b21-5027-48cb-bffa-c0e7d848e23f/ntu-112-1.pdf ↩
-
https://onlinelibrary.wiley.com/doi/pdf/10.1111/1468-0262.00152?casa_token=9hMoWAkeGAEAAAAA:RqiXDJEOxVRMWkzvmvnMyCizkyyDr8iBot9y5YN0JCaAjM9XyHGupP4D2xcpP0uLW3MgrEW42hwVyHc ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=788013 ↩
-
https://onlinelibrary.wiley.com/doi/abs/10.1111/1468-0262.00152 ↩
-
https://onlinelibrary.wiley.com/doi/epdf/10.1111/1468-0262.00152 ↩
-
https://downloads.hindawi.com/journals/mpe/2012/819503.pdf ↩
-
https://www.semanticscholar.org/paper/3b33290f3abf3884838bd3fe6ed3033e27b72b29 ↩
-
https://journals.sagepub.com/doi/10.1177/10731911221086985 ↩
-
https://www.tradingview.com/support/solutions/43000591663-williams-fractal-indicator/ ↩
-
https://www.metatrader5.com/en/mobile-trading/android/help/chart/indicators/bw_indicators/fractals ↩
-
https://www.metatrader5.com/en/mobile-trading/iphone/help/chart/indicators/bw_indicators/fractals ↩
-
https://docs.wickra.org/Indicators/Indicator-WilliamsFractals ↩
-
https://corporatefinanceinstitute.com/resources/capital_markets/fractal-indicator/ ↩
-
https://www.tradingview.com/scripts/alligator/?script_type=strategies ↩
-
https://pineify.app/pine-script/indicators/williams-alligator ↩
-
https://www.ig.com/en/trading-strategies/a-traders-guide-to-using-the-awesome-oscillator-200130 ↩
-
https://gocharting.com/docs/charting/technical-indicator/oscillators/awesome-oscillator ↩
-
https://www.worldscientific.com/doi/10.1142/9789814415774_0009 ↩
-
https://www.computer.org/csdl/proceedings-article/bigcom/2023/312400a134/1UlmUCf092M ↩
-
https://dn790006.ca.archive.org/0/items/machine_learning_for_asset_managers/machine_learning_for_asset_managers.pdf ↩
-
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0139420 ↩
-
https://unstats.un.org/unsd/nationalaccount/workshops/2009/ottawa/AC188-Bk3.PDF ↩
-
https://jurcon.ums.edu.my/ojums/index.php/lbibf/article/download/1332/851 ↩
-
https://science.lpnu.ua/sisn/all-volumes-and-issues/volume-18-2025/employing-discrete-wavelet-transform-methods-and-python ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3240456 ↩
-
https://www.statsmodels.org/0.8.0/examples/notebooks/generated/markov_regression.html ↩
-
https://www.statsmodels.org/dev/examples/notebooks/generated/markov_regression.html ↩
-
https://www.statsmodels.org/stable/examples/notebooks/generated/markov_regression.html ↩
-
https://www.statsmodels.org/devel/examples/notebooks/generated/markov_regression.html ↩
-
https://www.statsmodels.org/0.9.0/generated/statsmodels.tsa.regime_switching.markov_regression.MarkovRegression.html ↩
-
https://www.statsmodels.org/v0.12.2/examples/notebooks/generated/markov_autoregression.html ↩
-
https://pywavelets.readthedocs.io/\_/downloads/en/0.2.0/pdf/ ↩
-
https://www.sciencedirect.com/science/article/pii/S1876610211011672/pdf?md5=44b8771ead598ab4f66bfb1074ba29d4\&pid=1-s2.0-S1876610211011672-main.pdf ↩
-
https://pywavelets.readthedocs.io/\_/downloads/en/v1.2.0/pdf/ ↩
-
https://www.ccsenet.org/journal/index.php/ibr/article/download/68095/37141 ↩
-
https://www.tandfonline.com/doi/full/10.1080/23322039.2020.1768648 ↩
-
https://repository.essex.ac.uk/8101/1/WP2010-4 NConstantinous Periodicities.pdf ↩
-
https://www.academia.edu/94978837/Elliott_Waves_Recognition_Via_Neural_Networks ↩
-
https://ew-strategy.com/blog/elliott-wave-fibonacci-retracement-levels-guide-2 ↩
-
https://link.springer.com/content/pdf/10.1186/s40854-021-00311-8.pdf?error=cookies_not_supported\&code=e153d1b5-8056-4cfa-b884-f0b507b059a1 ↩
-
https://repositorio.bc.ufg.br/tedeserver/api/core/bitstreams/785fbadd-f80c-4ba2-bf31-deadf7f5cb91/content ↩
-
https://ijnaa.semnan.ac.ir/article_6725_e605a87718da8d66b2f717bcef6684bc.pdf ↩
-
https://ijnaa.semnan.ac.ir/article_6725_cf4ef4731ce12549040d98f506ff302d.pdf ↩
-
https://docs.openbb.co/odp/python/reference/technical/awesome_oscillator ↩
-
https://tradersweek.com/help/traders-tips/awesome-oscillator ↩
-
https://takeprofitapp.com/en/learn/awesome-oscillator-trading ↩
-
https://www.luxalgo.com/library/indicator/awesome-oscillator/ ↩
-
https://www.luxalgo.com/library/concept/accelerator-oscillator/ ↩
-
https://www.metatrader5.com/en/terminal/help/indicators/bw_indicators/go.md ↩
-
https://www.metatrader5.com/en/terminal/help/indicators/bw_indicators/go ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S2666352X25001219 ↩
-
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-025-06250-w ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S0925231218304843 ↩
-
https://www.econstor.eu/bitstream/10419/239003/1/1668177099.pdf ↩
-
https://tsfresh.readthedocs.io/\_/downloads/en/v0.10.1/pdf/ ↩
-
https://tsfresh.readthedocs.io/\_/downloads/en/v0.11.1/pdf/ ↩
-
https://tsfresh.readthedocs.io/en/latest/api/tsfresh.feature_extraction.html ↩
-
https://tsfresh.readthedocs.io/en/v0.20.3/text/list_of_features.html ↩
-
https://tsfresh.readthedocs.io/en/latest/text/list_of_features.html ↩
-
https://ideas.repec.org/a/gam/jjrfmx/v12y2019i2p54-d219095.html ↩
-
https://www.mdpi.com/2504-4990/6/2/65/pdf?version=1718886627 ↩
-
https://github.com/nutdnuy/afml-book-skill/blob/main/.github/skills/lopez-de-prado-financial-ml/chapters/ch07-cross-validation-in-finance.md ↩
-
https://arithmion.com/learn/en/depth-advanced-ml/cross-validation-in-finance/ ↩
-
https://github.com/Furkan-rgb/PurgeEmbargoKFoldCV/blob/main/README.md ↩
-
https://github.com/eslazarev/purged-cross-validation/blob/main/README.md ↩
-
https://github.com/eslazarev/purged-cross-validation/tree/main ↩
-
https://repository.essex.ac.uk/33750/1/s10462-022-10307-0.pdf ↩
-
https://www.semanticscholar.org/paper/The-Deflated-Sharpe-Ratio:-Correcting-for-Selection-Bailey-Prado/950f37470615dc6ae6e1f45f735408af11c48251 ↩
-
https://onlinelibrary.wiley.com/doi/full/10.1002/isaf.1552 ↩
-
https://link.springer.com/article/10.1007/s00521-022-07687-3 ↩
-
https://www.econjournals.com/index.php/ijefi/article/view/1518 ↩
-
https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1973471 ↩
-
https://www.semanticscholar.org/paper/7cf463db32aac5c6c2f97881623efafc91bc8295 ↩
-
https://www.semanticscholar.org/paper/d75f76a538a15c62fe4db1c98841d5296108e762 ↩
-
https://www.semanticscholar.org/paper/368f7eb1833d6520bafbfd1d5da29fdeabbaf331 ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S0010465516302016 ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S1388245714508462 ↩
-
https://www.semanticscholar.org/paper/3995e43e9be494541baa5da385cf73b35919cc44 ↩
-
https://github.com/laszukdawid/PyEMD/blob/master/doc/ceemdan.rst ↩
-
https://pyemd.readthedocs.io/en/latest/\_modules/PyEMD/CEEMDAN.html ↩
-
https://pywavelets.readthedocs.io/en/latest/ref/index.html ↩
-
https://ctruong.perso.math.cnrs.fr/ruptures-docs/build/html/\_modules/ruptures/detection/window.html ↩
-
https://ctruong.perso.math.cnrs.fr/ruptures-docs/build/html/\_modules/ruptures/detection/binseg.html ↩
-
https://linkinghub.elsevier.com/retrieve/pii/S0950705124011432 ↩
-
https://stumpy.readthedocs.io/en/latest/Tutorial_STUMPY_Basics.html ↩
-
https://www.sktime.net/docs/examples/classification-clustering/ ↩
-
https://tsfresh.readthedocs.io/\_/downloads/en/v0.7.0/pdf/ ↩
-
https://tsfresh.readthedocs.io/en/latest/text/feature_extraction_settings.html ↩
-
https://tsfresh.readthedocs.io/en/stable/api/tsfresh.feature_extraction.html ↩
-
https://www.sktime.org/en/latest/api_reference/classification.html ↩
-
https://tsfresh.readthedocs.io/en/latest/text/feature_filtering.html ↩
-
https://tsfresh.readthedocs.io/en/v0.8.1/api/tsfresh.feature_extraction.html ↩
-
https://stumpy.readthedocs.io/en/latest/Tutorial_Multidimensional_Motif_Discovery.html ↩
-
https://github.com/maxzager/Financial-series-and-Triple-Barrier-Method ↩
-
https://ppuertos.github.io/financial-ml-core/reference/processing/labeling/ ↩