mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-18 18:48:05 +00:00
Merge branch 'dev'
This commit is contained in:
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [bbi.pine](bbi.pine) |
|
||||
|
||||
- BBI (Bulls Bears Index) computes the arithmetic mean of four Simple Moving Averages with geometrically spaced periods (3, 6, 12, 24 by default).
|
||||
- Parameterized by `p1` (default defaultp1), `p2` (default defaultp2), `p3` (default defaultp3), `p4` (default defaultp4).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(Math.Max(p1, p2), Math.Max(p3, p4))` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [BBB](../bbb/Bbb.md), [BBS](../bbs/Bbs.md) | **Complementary:** RSI for overbought/oversold | **Trading note:** Bollinger Band %B indicator; position within bands. >1 = above upper, <0 = below lower.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
BBI (Bulls Bears Index) computes the arithmetic mean of four Simple Moving Averages with geometrically spaced periods (3, 6, 12, 24 by default). The result is a price-overlay line that captures trend consensus across ultra-short, short, medium, and long timeframes simultaneously. Price above BBI signals bullish dominance; price below BBI signals bearish control. The crossover point marks the regime boundary between long and short markets.
|
||||
@@ -147,4 +145,4 @@ Fully SIMD-vectorizable. AVX2 achieves ~4× throughput for large arrays.
|
||||
|
||||
- TradingView. "BBI - Bull and Bear Index." Community Scripts. (Standard implementation reference.)
|
||||
- Chinese Securities Association. Technical analysis indicator specifications. (Origin of 3/6/12/24 period convention.)
|
||||
- Binance Square. "BBI Indicator Usage Tutorial." (Modern application to cryptocurrency markets.)
|
||||
- Binance Square. "BBI Indicator Usage Tutorial." (Modern application to cryptocurrency markets.)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [brar.pine](brar.pine) |
|
||||
|
||||
- BRAR is a dual-output sentiment oscillator from the Japanese technical analysis tradition that decomposes market pressure into two independent rati...
|
||||
- Parameterized by `period` (default 26).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [ERI](../eri/Eri.md), [FI](../fi/Fi.md) | **Complementary:** Volume | **Trading note:** BRAR (Buying/Selling Power); AR measures opening vs H/L, BR measures close vs H/L. Popular in Asian markets.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
BRAR is a dual-output sentiment oscillator from the Japanese technical analysis tradition that decomposes market pressure into two independent ratios: BR (Buying Ratio), which measures upside thrust relative to the previous close, and AR (Atmosphere Ratio), which measures intraday range asymmetry relative to the open. Both outputs oscillate around an equilibrium of 100, where values above 100 signal dominance of the measured pressure and values below 100 signal weakness. The default lookback of 26 bars (one Japanese trading month) produces stable readings with 4 additions per bar in streaming mode.
|
||||
@@ -190,4 +188,4 @@ Validation strategy: generate synthetic OHLC data via GBM, compute BRAR through
|
||||
- Nison, Steve. (1991). *Japanese Candlestick Charting Techniques*. New York Institute of Finance.
|
||||
- Nison, Steve. (1994). *Beyond Candlesticks: New Japanese Charting Techniques Revealed*. John Wiley and Sons.
|
||||
- Morris, Gregory L. (2006). *Candlestick Charting Explained*. 3rd Edition. McGraw-Hill.
|
||||
- Taiwan Stock Exchange Technical Analysis Committee. (2003). *Technical Analysis Reference Manual* (技術分析參考手冊). TWSE Publications.
|
||||
- Taiwan Stock Exchange Technical Analysis Committee. (2003). *Technical Analysis Reference Manual* (技術分析參考手冊). TWSE Publications.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [coppock.pine](coppock.pine) |
|
||||
|
||||
- The Coppock Curve is a long-term momentum oscillator that applies a Weighted Moving Average to the sum of two Rate of Change calculations at differ...
|
||||
- Parameterized by `longRoc` (default 14), `shortRoc` (default 11), `wmaPeriod` (default 10).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [MACD](../../momentum/macd/Macd.md), [KST](../kst/Kst.md) | **Complementary:** Trend confirmation | **Trading note:** Coppock Curve; designed for monthly S&P 500 buy signals. WMA of summed ROCs. Zero-line crossover.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Coppock Curve is a long-term momentum oscillator that applies a Weighted Moving Average to the sum of two Rate of Change calculations at different lookback periods. Originally designed for monthly charts to identify major market bottoms, it produces a single oscillating line where zero-line crossovers from below signal long-term buying opportunities. The dual-ROC architecture captures both intermediate and longer-term momentum dynamics in a single smoothed output.
|
||||
@@ -109,4 +107,4 @@ Both ROC and WMA are non-recursive and fully vectorizable. AVX2 dot-product acce
|
||||
|
||||
- Coppock, E.S.C. (1962). "A Guide to the Use of Coppock Curve." *Barron's*
|
||||
- Kirkpatrick, C. & Dahlquist, J. (2010). *Technical Analysis*, Chapter 15: Momentum
|
||||
- PineScript reference: [`coppock.pine`](coppock.pine)
|
||||
- PineScript reference: [`coppock.pine`](coppock.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [crsi.pine](crsi.pine) |
|
||||
|
||||
- Connors RSI is a composite momentum oscillator that combines three independent measurements of price behavior into a single bounded (0-100) output:...
|
||||
- Parameterized by `rsiperiod` (default 3), `streakperiod` (default 2), `rankperiod` (default 100).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [RSI](../../momentum/rsi/Rsi.md), [StochRSI](../stochrsi/Stochrsi.md) | **Complementary:** Volume | **Trading note:** Connors RSI; combines RSI, streak RSI, and percentile rank. Short-term mean-reversion signal.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Connors RSI is a composite momentum oscillator that combines three independent measurements of price behavior into a single bounded (0-100) output: a short-term RSI of price, an RSI of the consecutive up/down streak length, and a percentile rank of the current rate of change within its recent history. The equal-weighted average of these three components produces a mean-reverting oscillator where extreme readings (above 90 or below 10) identify statistically overbought or oversold conditions with higher reliability than single-component RSI alone.
|
||||
@@ -114,4 +112,4 @@ PercentRank scan is the only sub-step with meaningful SIMD acceleration potentia
|
||||
|
||||
- Connors, L. & Alvarez, C. (2012). *An Introduction to ConnorsRSI*. TradingMarkets
|
||||
- Connors, L. (2009). *Short-Term Trading Strategies That Work*. TradingMarkets
|
||||
- PineScript reference: [`crsi.pine`](crsi.pine)
|
||||
- PineScript reference: [`crsi.pine`](crsi.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [cti.pine](cti.pine) |
|
||||
|
||||
- The Correlation Trend Indicator computes the Pearson correlation coefficient between the price series and a linear time index over a rolling window...
|
||||
- Parameterized by `period` (default 20).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [LinReg](../../statistics/linreg/LinReg.md), [CFO](../cfo/Cfo.md) | **Complementary:** ADX | **Trading note:** Correlation Trend Indicator; Pearson correlation of price vs time. +1 = perfect uptrend, −1 = downtrend.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Correlation Trend Indicator computes the Pearson correlation coefficient between the price series and a linear time index over a rolling window, producing a bounded oscillator in the range $[-1, +1]$. Values near $+1$ indicate a strong linear uptrend, values near $-1$ indicate a strong linear downtrend, and values near zero indicate no linear trend relationship. The implementation achieves O(1) complexity per bar through incremental running sums that avoid recomputing the full correlation on each update.
|
||||
@@ -110,4 +108,4 @@ Fully vectorizable in batch mode. Prefix-sum trick converts O(N²) naive to O(N)
|
||||
|
||||
- Ehlers, J.F. (2001). *Rocket Science for Traders*. Wiley
|
||||
- Pearson, K. (1895). "Notes on Regression and Inheritance in the Case of Two Parents." *Proceedings of the Royal Society of London*
|
||||
- PineScript reference: [`cti.pine`](cti.pine)
|
||||
- PineScript reference: [`cti.pine`](cti.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [deco.pine](deco.pine) |
|
||||
|
||||
- The Decycler Oscillator (DECO) is a DSP-based oscillator developed by John F.
|
||||
- Parameterized by `shortperiod` (default 30), `longperiod` (default 60).
|
||||
- Output range: $0$ to $1$.
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [DPO](../dpo/Dpo.md), [Reflex](../reflex/Reflex.md) | **Complementary:** Cycle analysis | **Trading note:** Ehlers' Decycler Oscillator; removes trend to isolate cycle component for timing.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
## Overview
|
||||
@@ -135,4 +133,4 @@ Fully vectorizable in batch. Regression and correlation both benefit from AVX2 V
|
||||
## References
|
||||
|
||||
1. Ehlers, J. F. (2015). "Decyclers." *Technical Analysis of Stocks & Commodities*, September 2015.
|
||||
2. Ehlers, J. F. (2013). *Cycle Analytics for Traders*. Wiley. Chapter 4.
|
||||
2. Ehlers, J. F. (2013). *Cycle Analytics for Traders*. Wiley. Chapter 4.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [dem.pine](dem.pine) |
|
||||
|
||||
- DEM (DeMarker Oscillator) is a bounded [0, 1] momentum oscillator that measures sequential demand pressure by comparing each bar's high and low aga...
|
||||
- Parameterized by `period` (default 14).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period + 1` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [MACD](../../momentum/macd/Macd.md), [AO](../ao/Ao.md) | **Complementary:** Volume | **Trading note:** DeMarker; compares current high/low to previous. Overbought >0.7, oversold <0.3.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
DEM (DeMarker Oscillator) is a bounded [0, 1] momentum oscillator that measures sequential demand pressure by comparing each bar's high and low against the previous bar's high and low. It isolates bullish demand momentum in the numerator and bearish supply pressure in the denominator, then normalizes their ratio with SMA smoothing over a configurable period. Values near 0.7 signal overbought exhaustion; values near 0.3 signal oversold exhaustion. Neither external library in common use (TA-Lib, Skender, Tulip, Ooples) implements DeMarker, so self-consistency tests against batch/streaming/span modes serve as the primary validation.
|
||||
@@ -206,4 +204,4 @@ Validation relies on self-consistency checks:
|
||||
- DeMark, Tom (1994). *The New Science of Technical Analysis*. John Wiley & Sons. ISBN 0-471-03548-3.
|
||||
- DeMark, Tom (1997). *New Market Timing Techniques*. John Wiley & Sons. ISBN 0-471-14970-5.
|
||||
- Colby, Robert W. (2003). *The Encyclopedia of Technical Market Indicators* (2nd ed.). McGraw-Hill. Entry: "DeMark Indicators."
|
||||
- Pring, Martin J. (2002). *Technical Analysis Explained* (4th ed.). McGraw-Hill. Chapter on oscillator construction methodology.
|
||||
- Pring, Martin J. (2002). *Technical Analysis Explained* (4th ed.). McGraw-Hill. Chapter on oscillator construction methodology.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [dosc.pine](dosc.pine) |
|
||||
|
||||
- The Derivative Oscillator applies a four-stage signal processing pipeline to extract momentum inflection points: RSI via Wilder's smoothing, double...
|
||||
- Parameterized by `rsiperiod` (default 14), `ema1period` (default 5), `ema2period` (default 3), `sigperiod` (default 9).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `rsiPeriod + sigPeriod` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [MACD](../../momentum/macd/Macd.md), [PPO](../../momentum/ppo/Ppo.md) | **Complementary:** Volume | **Trading note:** Derivative Oscillator; RSI smoothed with EMA, then differenced. Catches RSI turning points early.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Derivative Oscillator applies a four-stage signal processing pipeline to extract momentum inflection points: RSI via Wilder's smoothing, double EMA smoothing of the RSI, an SMA signal line of the double-smoothed result, and finally the difference between the smoothed RSI and its signal. The histogram output crosses zero at momentum turning points, offering earlier signals than raw RSI by isolating the rate of change of the smoothed momentum rather than the momentum level itself.
|
||||
@@ -108,4 +106,4 @@ Fully SIMD-vectorizable. AVX2 achieves near-4× throughput.
|
||||
|
||||
- Brown, C. (1994). *Technical Analysis for the Trading Professional*. McGraw-Hill
|
||||
- Brown, C. (1999). *Technical Analysis for the Trading Professional*, 2nd ed. McGraw-Hill
|
||||
- PineScript reference: [`dosc.pine`](dosc.pine)
|
||||
- PineScript reference: [`dosc.pine`](dosc.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [dymoi.pine](dymoi.pine) |
|
||||
|
||||
- DYMOI is a volatility-adaptive RSI: when recent price swings are large relative to longer-term swings, the RSI period shortens and the indicator be...
|
||||
- Parameterized by `baseperiod` (default 14), `shortperiod` (default 5), `longperiod` (default 10), `minperiod` (default 3), `maxperiod` (default 30).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [RSI](../../momentum/rsi/Rsi.md), [Stoch](../stoch/Stoch.md) | **Complementary:** ATR | **Trading note:** Dynamic Momentum Index; RSI with variable lookback based on volatility. Faster in calm, slower in volatile markets.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
DYMOI is a volatility-adaptive RSI: when recent price swings are large relative to longer-term swings, the RSI period shortens and the indicator becomes more responsive; when price action tightens, the period extends and the output smooths. The result is an oscillator that self-adjusts its sensitivity to the market's current state, avoiding both the lag of long fixed-period RSIs in trending regimes and the noise of short-period RSIs in ranging ones.
|
||||
@@ -217,4 +215,4 @@ No external C# library (Skender, TA-Lib, Tulip, Ooples) implements DYMOI. Valida
|
||||
|
||||
- Chande, T. & Kroll, S. (1994). *The New Technical Trader*. John Wiley & Sons. Ch. 3: Dynamic Momentum Index.
|
||||
- Wilder, J.W. (1978). *New Concepts in Technical Trading Systems*. Trend Research. (RSI original source)
|
||||
- Connors, L. & Alvarez, C. (2012). *An Introduction to ConnorsRSI*. TradingMarkets. (CRSI comparison reference)
|
||||
- Connors, L. & Alvarez, C. (2012). *An Introduction to ConnorsRSI*. TradingMarkets. (CRSI comparison reference)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [gator.pine](gator.pine) |
|
||||
|
||||
- The Williams Gator Oscillator is a dual-histogram visualization of the Alligator indicator's convergence and divergence.
|
||||
- Parameterized by `jawperiod` (default 13), `jawshift` (default 8), `teethperiod` (default 8), `teethshift` (default 5), `lipsperiod` (default 5), `lipsshift` (default 3).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(jawPeriod + jawShift, Math.Max(teethPeriod + teethShift, lipsPeriod + lipsShift))` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [Alligator](../../dynamics/alligator/Alligator.md), [AO](../ao/Ao.md) | **Complementary:** Fractal indicator | **Trading note:** Bill Williams' Gator Oscillator; visualizes Alligator's jaw/teeth/lips convergence as histogram.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Williams Gator Oscillator is a dual-histogram visualization of the Alligator indicator's convergence and divergence. It strips the Alligator's three SMMA lines down to two absolute differences: upper (Jaw minus Teeth) and lower (negative of Teeth minus Lips). The result is a zero-centered oscillator where expanding bars signal trend acceleration and contracting bars signal trend exhaustion. Because it operates on pre-computed SMMA values, the Gator adds zero computational overhead beyond two subtractions, two absolute values, and one sign flip per bar.
|
||||
@@ -217,4 +215,4 @@ Key validation points:
|
||||
- Williams, Bill. *Trading Chaos: Maximize Profits with Proven Technical Techniques.* John Wiley & Sons, 1995.
|
||||
- Williams, Bill. *New Trading Dimensions: How to Profit from Chaos in Stocks, Bonds, and Commodities.* John Wiley & Sons, 1998.
|
||||
- MetaQuotes Software. "Gator Oscillator." *MQL5 Reference.* [mql5.com/en/docs/indicators/igator](https://www.mql5.com/en/docs/indicators/igator)
|
||||
- PineScript reference: `gator.pine` in indicator directory.
|
||||
- PineScript reference: `gator.pine` in indicator directory.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [imi.pine](imi.pine) |
|
||||
|
||||
- The Intraday Momentum Index measures buying and selling pressure using the open-to-close relationship within each bar, rather than the close-to-clo...
|
||||
- Parameterized by `period` (default 14).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [RSI](../../momentum/rsi/Rsi.md), [MFI](../../volume/mfi/Mfi.md) | **Complementary:** Volume | **Trading note:** Intraday Momentum Index; RSI variant using open-close relationship. Measures intrabar conviction.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Intraday Momentum Index measures buying and selling pressure using the open-to-close relationship within each bar, rather than the close-to-close changes used by RSI. Each bar is classified as a gain (close > open) or loss (close < open), with the magnitude being the absolute open-close difference. Rolling sums of gains and losses over the lookback period produce an RSI-like ratio scaled to 0-100. This bridges Japanese candlestick analysis with Western oscillator theory: bullish candles contribute to the gain sum, bearish candles contribute to the loss sum. Unlike RSI, IMI does not require a previous close and uses simple rolling sums rather than exponential smoothing, making it more responsive but noisier. Output is bounded 0-100 with conventional overbought (>70) and oversold (<30) zones.
|
||||
@@ -136,4 +134,4 @@ The conditional accumulation (masked add for up bodies) is SIMD-friendly with AV
|
||||
## Resources
|
||||
|
||||
- Chande, T.S. & Kroll, S. — *The New Technical Trader* (John Wiley & Sons, 1994)
|
||||
- PineScript reference: `imi.pine` in indicator directory
|
||||
- PineScript reference: `imi.pine` in indicator directory
|
||||
@@ -15,9 +15,6 @@
|
||||
+ sigPeriod - 2` bars |
|
||||
|
||||
- The Know Sure Thing is a multi-timeframe momentum oscillator that computes four Rate of Change values at progressively longer lookback periods, smo...
|
||||
- Parameterized by `r1` (default 10), `r2` (default 15), `r3` (default 20), `r4` (default 30), `s1` (default 10), `s2` (default 10), `s3` (default 10), `s4` (default 15), `sigPeriod` (default 9).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(Math.Max(r1, r2), Math.Max(r3, r4))
|
||||
+ Math.Max(Math.Max(s1, s2), Math.Max(s3, s4))
|
||||
+ sigPeriod - 2` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
@@ -116,4 +113,4 @@ Fully vectorizable in batch mode — no recursive dependencies. AVX2 achieves ~4
|
||||
|
||||
- Pring, M.J. (1992). "The KST System." *Technical Analysis of Stocks & Commodities*
|
||||
- Pring, M.J. (2002). *Technical Analysis Explained*, 4th ed. McGraw-Hill
|
||||
- PineScript reference: [`kst.pine`](kst.pine)
|
||||
- PineScript reference: [`kst.pine`](kst.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [lrsi.pine](lrsi.pine) |
|
||||
|
||||
- Laguerre RSI is an adaptive oscillator invented by John Ehlers that replaces standard RSI's Wilder-smoothed gain/loss averages with a 4-stage casca...
|
||||
- Parameterized by `gamma` (default 0.5).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `4` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [RSI](../../momentum/rsi/Rsi.md), [Fisher](../fisher/Fisher.md) | **Complementary:** Volume | **Trading note:** Laguerre RSI by Ehlers; applies Laguerre filter to RSI calculation. Faster response, fewer whipsaws.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Laguerre RSI is an adaptive oscillator invented by John Ehlers that replaces standard RSI's Wilder-smoothed gain/loss averages with a 4-stage cascaded Laguerre filter. A single γ (gamma) parameter controls the entire responsiveness-smoothness trade-off. Output is dimensionless, always in [0, 1]. No period selection required.
|
||||
@@ -168,4 +166,4 @@ No external C# library implements Laguerre RSI. Validation protocol:
|
||||
|
||||
- Ehlers, J.F. (2004). *Cybernetic Analysis for Stocks and Futures*. Wiley. Chapter 14.
|
||||
- Ehlers, J.F. (2001). *Rocket Science for Traders*. Wiley. Chapter 9 (Laguerre filter foundations).
|
||||
- Vaidyanathan, P.P. (1993). *Multirate Systems and Filter Banks*. Prentice Hall. (All-pass lattice structures.)
|
||||
- Vaidyanathan, P.P. (1993). *Multirate Systems and Filter Banks*. Prentice Hall. (All-pass lattice structures.)
|
||||
@@ -14,8 +14,6 @@
|
||||
|
||||
- The Market Facilitation Index answers a single question with arithmetic directness: how much price moved per unit of volume traded?
|
||||
- No configurable parameters; computation is stateless per bar.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `> 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Market Facilitation Index answers a single question with arithmetic directness: how much price moved per unit of volume traded? One division. No lookback period. No smoothing. No parameter to debate. What you get is raw market efficiency — the price range a market delivers for each unit of liquidity consumed.
|
||||
@@ -159,4 +157,4 @@ No external library (TA-Lib, Skender.Stock.Indicators, Tulip, OoplesFinance) imp
|
||||
- Williams, Bill (1995). *Trading Chaos: Applying Expert Techniques to Maximize Your Profits.* Wiley.
|
||||
- Williams, Bill and Justine Gregory-Williams (2004). *Trading Chaos: Maximize Profits with Proven Technical Techniques* (2nd ed.). Wiley.
|
||||
- Kyle, Albert S. (1985). "Continuous Auctions and Insider Trading." *Econometrica*, 53(6), 1315–1335.
|
||||
- Amihud, Yakov (2002). "Illiquidity and stock returns: cross-section and time-series effects." *Journal of Financial Markets*, 5(1), 31–56.
|
||||
- Amihud, Yakov (2002). "Illiquidity and stock returns: cross-section and time-series effects." *Journal of Financial Markets*, 5(1), 31–56.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [mstoch.pine](mstoch.pine) |
|
||||
|
||||
- The MESA Stochastic applies John Ehlers' Roofing Filter as a preprocessing stage before computing a stochastic oscillator, then smooths the stochas...
|
||||
- Parameterized by `stochlength` (default 20), `hplength` (default 48), `sslength` (default 10).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [Stoch](../stoch/Stoch.md), [KDJ](../kdj/Kdj.md) | **Complementary:** MACD | **Trading note:** Modified Stochastic; enhanced stochastic oscillator with additional smoothing or lookback variation.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The MESA Stochastic applies John Ehlers' Roofing Filter as a preprocessing stage before computing a stochastic oscillator, then smooths the stochastic output with a Super Smoother. The Roofing Filter removes both low-frequency trend components (via highpass) and high-frequency noise (via Super Smoother), isolating the dominant cycle. The stochastic calculation on this filtered data produces a clean 0-to-1 oscillator that responds to cycle turning points rather than trend or noise, with substantially reduced whipsaw compared to conventional stochastic indicators.
|
||||
@@ -113,4 +111,4 @@ EMA smoothing blocks full vectorization; window extrema and division are SIMD-fr
|
||||
|
||||
- Ehlers, J.F. (2013). *Cycle Analytics for Traders*. Wiley, Chapter 6
|
||||
- Ehlers, J.F. (2004). *Cybernetic Analysis for Stocks and Futures*. Wiley
|
||||
- PineScript reference: [`mstoch.pine`](mstoch.pine)
|
||||
- PineScript reference: [`mstoch.pine`](mstoch.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [qqe.pine](qqe.pine) |
|
||||
|
||||
- Quantitative Qualitative Estimation applies a multi-stage smoothing pipeline to RSI and then constructs dynamic volatility-based trailing bands aro...
|
||||
- Parameterized by `rsiPeriod` (default 14), `smoothFactor` (default 5), `qqeFactor` (default 4.236).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `rsiPeriod + smoothFactor + darPeriod * 2` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [RSI](../../momentum/rsi/Rsi.md), [StochRSI](../stochrsi/Stochrsi.md) | **Complementary:** ATR | **Trading note:** Quantitative Qualitative Estimation; smoothed RSI with dynamic trailing levels. Reduces false signals.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Quantitative Qualitative Estimation applies a multi-stage smoothing pipeline to RSI and then constructs dynamic volatility-based trailing bands around the smoothed result. The output is a dual-line system: the QQE line (smoothed RSI) and a trailing level that follows price directionally, similar to Parabolic SAR logic. Crossovers between the QQE line and its trailing level signal momentum shifts, while crossovers of the QQE line above and below 50 indicate trend direction. The trailing level adapts to volatility through a double-EMA of RSI absolute changes, making band width contract in quiet markets and expand during volatile conditions.
|
||||
@@ -120,4 +118,4 @@ Recursive EMA chains and ratchet state block vectorization. Band arithmetic is v
|
||||
|
||||
- Wilder, J.W. (1978). *New Concepts in Technical Trading Systems*. Trend Research (RSI foundation)
|
||||
- MetaTrader community documentation on QQE implementation
|
||||
- PineScript reference: [`qqe.pine`](qqe.pine)
|
||||
- PineScript reference: [`qqe.pine`](qqe.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [reflex.pine](reflex.pine) |
|
||||
|
||||
- REFLEX is a zero-lag oscillator that measures the reversal tendency of price by comparing a Super-Smoother-filtered price against a linear extrapol...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [Trendflex](../trendflex/Trendflex.md), [Deco](../deco/Deco.md) | **Complementary:** Cycle indicators | **Trading note:** Ehlers' Reflex indicator; cycle-mode oscillator using Super Smoother. Leading turns at zero crossings.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
REFLEX is a zero-lag oscillator that measures the reversal tendency of price by comparing a Super-Smoother-filtered price against a linear extrapolation from $N$ bars ago. The filter computes the slope of the filtered series over the lookback window, projects a straight line, and sums the deviations of the actual filtered values from this projected line. The sum is normalized by an exponential RMS estimate to produce values in roughly $\pm \sigma$ scale. Values above 0 indicate uptrend, below 0 indicate downtrend; crossovers signal potential reversals.
|
||||
@@ -152,4 +150,4 @@ IIR dependencies block bar-parallel SIMD; RMS computation in batch is vectorizab
|
||||
## Resources
|
||||
|
||||
- Ehlers, J.F. (2020). "Reflex: A New Zero-Lag Indicator." *Technical Analysis of Stocks & Commodities*, February 2020.
|
||||
- Ehlers, J.F. (2013). *Cycle Analytics for Traders*. Wiley. Chapter 3: Super Smoothers.
|
||||
- Ehlers, J.F. (2013). *Cycle Analytics for Traders*. Wiley. Chapter 3: Super Smoothers.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [reverseema.pine](reverseema.pine) |
|
||||
|
||||
- The Reverse EMA applies an 8-stage cascaded Z-transform inversion to a compensated EMA, progressively extracting and subtracting the accumulated la...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [EMA](../../trends_IIR/ema/ema.md), [Zlema](../../trends_IIR/zlema/zlema.md) | **Complementary:** StdDev | **Trading note:** Reverse-engineers price from EMA; finds the price that would produce a given EMA value. Useful for target levels.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
## Introduction
|
||||
@@ -186,4 +184,4 @@ Self-consistency validation: Streaming, Batch (TSeries), and Span Batch modes pr
|
||||
|
||||
- Ehlers, J. F. (2017). "Reverse EMA." Technical analysis signal processing concepts.
|
||||
- Ehlers, J. F. (2004). *Cybernetic Analysis for Stocks and Futures*. Wiley.
|
||||
- Ehlers, J. F. (2001). *Rocket Science for Traders*. Wiley.
|
||||
- Ehlers, J. F. (2001). *Rocket Science for Traders*. Wiley.
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [rvgi.pine](rvgi.pine) |
|
||||
|
||||
- The Relative Vigor Index measures the conviction of a price move by comparing closing strength (close minus open) to the total intrabar range (high...
|
||||
- Parameterized by `period` (default 10).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [AO](../ao/Ao.md), [Fisher](../fisher/Fisher.md) | **Complementary:** Volume | **Trading note:** Relative Vigor Index; compares close−open to high−low. Rising = bullish vigor. Signal-line crossovers.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Relative Vigor Index measures the conviction of a price move by comparing closing strength (close minus open) to the total intrabar range (high minus low), smoothed through a symmetrically weighted moving average and then averaged over a lookback period. The premise is that in bullish markets, closes tend to occur near highs and opens near lows, producing positive RVGI values, while bearish markets show the opposite pattern. A 4-bar SWMA signal line provides crossover triggers. The indicator oscillates around zero with no fixed bounds.
|
||||
@@ -111,4 +109,4 @@ Fully vectorizable — no recursive dependencies. AVX2 achieves ~4× throughput.
|
||||
|
||||
- Ehlers, J.F. (2002). *Rocket Science for Traders*. Wiley, Chapter 12
|
||||
- Ehlers, J.F. (2001). "The Relative Vigor Index." *Technical Analysis of Stocks & Commodities*
|
||||
- PineScript reference: [`rvgi.pine`](rvgi.pine)
|
||||
- PineScript reference: [`rvgi.pine`](rvgi.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [squeeze.pine](squeeze.pine) |
|
||||
|
||||
- Squeeze Momentum combines Bollinger Band and Keltner Channel width analysis to detect low-volatility compression ("squeeze") states, while simultan...
|
||||
- Parameterized by `period` (default 20), `bbmult` (default 2.0), `kcmult` (default 1.5).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [TTM_Squeeze](../../dynamics/ttm_squeeze/TtmSqueeze.md), [BBB](../bbb/Bbb.md) | **Complementary:** Momentum histogram | **Trading note:** Squeeze indicator; detects low-volatility compression. Bollinger inside Keltner = squeeze on.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Squeeze Momentum combines Bollinger Band and Keltner Channel width analysis to detect low-volatility compression ("squeeze") states, while simultaneously measuring directional momentum via linear regression of a detrended price series. The dual output consists of a momentum histogram and a binary squeeze state indicator. When Bollinger Bands contract inside the Keltner Channel, the market is in a squeeze (coiling volatility); when the squeeze releases, the momentum histogram direction signals the likely breakout direction. The implementation combines five distinct computational stages, each using O(1) streaming techniques.
|
||||
@@ -119,4 +117,4 @@ Mixed: the two IIR passes are sequential; everything else is vectorizable.
|
||||
|
||||
- Carter, J. (2005). *Mastering the Trade*. McGraw-Hill, Chapter 11
|
||||
- Bollinger, J. (2001). *Bollinger on Bollinger Bands*. McGraw-Hill
|
||||
- PineScript reference: [`squeeze.pine`](squeeze.pine)
|
||||
- PineScript reference: [`squeeze.pine`](squeeze.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [stc.pine](stc.pine) |
|
||||
|
||||
- The Schaff Trend Cycle is a cyclometric oscillator that applies double-Stochastic normalization to MACD, extracting the cyclical phase hidden withi...
|
||||
- Parameterized by `kperiod` (default 10), `dperiod` (default 3), `fastlength` (default 23), `slowlength` (default 50), `smoothing` (default stcsmoothing.ema).
|
||||
- Output range: $0$ to $100$.
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [MACD](../../momentum/macd/Macd.md), [Stoch](../stoch/Stoch.md) | **Complementary:** ADX | **Trading note:** Schaff Trend Cycle; double Stochastic of MACD. Faster trend detection. 25/75 signal levels.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Schaff Trend Cycle is a cyclometric oscillator that applies double-Stochastic normalization to MACD, extracting the cyclical phase hidden within the trend itself. The recursive normalization produces a bounded 0–100 output that reaches extremes earlier than raw MACD while suppressing Stochastic jitter. Developed for currency markets, STC's tendency to flatline at 0 or 100 during strong trends signals continuation rather than reversal — a feature that distinguishes it from conventional momentum oscillators. Output converges toward a square wave in steady-state trending conditions.
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
|
||||
- TD Sequential is Tom DeMark's exhaustion counting system that identifies potential trend reversals through two phases: a 9-count Setup phase that d...
|
||||
- No configurable parameters; computation is stateless per bar.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `comparePeriod + 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
TD Sequential is Tom DeMark's exhaustion counting system that identifies potential trend reversals through two phases: a 9-count Setup phase that detects overextended trends, and a 13-count Countdown phase that pinpoints probable reversal timing. Unlike oscillators that measure momentum magnitude, TD Sequential counts consecutive qualifying bars, producing integer outputs (Setup: $\pm 1$ to $\pm 9$; Countdown: $\pm 1$ to $\pm 13$) that represent the progression toward exhaustion. A completed 9-count Setup followed by a completed 13-count Countdown signals high-probability trend exhaustion. All state is maintained in O(1) scalar variables with no buffers required.
|
||||
@@ -111,4 +109,4 @@ The counter state is inherently sequential. The individual comparisons are vecto
|
||||
- DeMark, T.R. (1994). *The New Science of Technical Analysis*. Wiley
|
||||
- DeMark, T.R. (1997). *New Market Timing Techniques*. Wiley
|
||||
- Bloomberg Terminal: DeMark Indicators (DMRK) implementation reference
|
||||
- PineScript reference: [`td_seq.pine`](td_seq.pine)
|
||||
- PineScript reference: [`td_seq.pine`](td_seq.pine)
|
||||
@@ -13,9 +13,7 @@
|
||||
| **PineScript** | [trendflex.pine](trendflex.pine) |
|
||||
|
||||
- The Trendflex indicator combines a 2-pole Butterworth low-pass pre-filter (Super Smoother) with an O(1) cumulative slope measurement and exponentia...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- **Similar:** [Reflex](../reflex/Reflex.md), [Deco](../deco/Deco.md) | **Complementary:** ADX | **Trading note:** Ehlers' Trendflex; trend-mode companion to Reflex. Positive = uptrend, negative = downtrend.
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
## Introduction
|
||||
@@ -151,4 +149,4 @@ Self-consistency validation: Streaming, Batch (TSeries), and Span Batch modes pr
|
||||
|
||||
- Ehlers, J. F. (2013). "Trendflex and Reflex." *Cycle Analytics for Traders*. Wiley.
|
||||
- Ehlers, J. F. (2004). *Cybernetic Analysis for Stocks and Futures*. Wiley.
|
||||
- Ehlers, J. F. (2001). *Rocket Science for Traders*. Wiley.
|
||||
- Ehlers, J. F. (2001). *Rocket Science for Traders*. Wiley.
|
||||
Reference in New Issue
Block a user