PINE LIBRARY
已更新 DominantCycle

Collection of Dominant Cycle estimators. Length adaptation used in the Adaptive Moving Averages and the Adaptive Oscillators try to follow price movements and accelerate/decelerate accordingly (usually quite rapidly with a huge range). Cycle estimators, on the other hand, try to measure the cycle period of the current market, which does not reflect price movement or the rate of change (the rate of change may also differ depending on the cycle phase, but the cycle period itself usually changes slowly). This collection may become encyclopaedic, so if you have any working cycle estimator, drop me a line in the comments below. Suggestions are welcome. Currently included estimators are based on the work of John F. Ehlers
mamaPeriod(src, dynLow, dynHigh) MESA Adaptation - MAMA Cycle
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
Returns: Calculated period
Based on MESA Adaptive Moving Average by John F. Ehlers
Performs Hilbert Transform Homodyne Discriminator cycle measurement
Unlike MAMA Alpha function (in LengthAdaptation library), this does not compute phase rate of change
Introduced in the September 2001 issue of Stocks and Commodities
Inspired by the everget implementation:
Inspired by the anoojpatel implementation:
paPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Pearson Autocorrelation
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hann Windowing prefilter
Returns: Calculated period
Based on Pearson Autocorrelation Periodogram by John F. Ehlers
Introduced in the September 2016 issue of Stocks and Commodities
Inspired by the blackcat1402 implementation:![[blackcat] L2 Ehlers Adaptive CCI 2013](https://s3.tradingview.com/9/9CbjlKjz_mid.png)
Inspired by the rumpypumpydumpy implementation:
Corrected many errors, and made small speed optimizations, so this could be the best implementation to date (still slow, though, so may revisit in future)
High Pass and Super Smoother prefilters are used in the original implementation
dftPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Discrete Fourier Transform
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hann Windowing prefilter
Returns: Calculated period
Based on Spectrum from Discrete Fourier Transform by John F. Ehlers
Inspired by the blackcat1402 implementation:![[blackcat] L2 Ehlers DFT-Adapted RSI](https://s3.tradingview.com/v/V6wCdSwQ_mid.png)
High Pass, Super Smoother and Hann Windowing prefilters are used in the original implementation
phasePeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Phase Accumulation
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hamm Windowing prefilter
Returns: Calculated period
Based on Dominant Cycle from Phase Accumulation by John F. Ehlers
High Pass and Super Smoother prefilters are used in the original implementation
doAdapt(type, src, len, dynLow, dynHigh, chandeSDLen, chandeSmooth, chandePower, preHP, preSS, preHP) Execute a particular Length Adaptation or Dominant Cycle Estimator from the list
Parameters:
type: Length Adaptation or Dominant Cycle Estimator type to use
src: Series to use
len: Reference lookback length
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
chandeSDLen: Lookback length of Standard deviation for Chande's Dynamic Length
chandeSmooth: Smoothing length of Standard deviation for Chande's Dynamic Length
chandePower: Exponent of the length adaptation for Chande's Dynamic Length (lower is smaller variation)
preHP: Use High Pass prefilter for the Estimators that support it (default)
preSS: Use Super Smoother prefilter for the Estimators that support it (default)
preHP: Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
doEstimate(type, src, dynLow, dynHigh, preHP, preSS, preHP) Execute a particular Dominant Cycle Estimator from the list
Parameters:
type: Dominant Cycle Estimator type to use
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter for the Estimators that support it (default)
preSS: Use Super Smoother prefilter for the Estimators that support it (default)
preHP: Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
mamaPeriod(src, dynLow, dynHigh) MESA Adaptation - MAMA Cycle
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
Returns: Calculated period
Based on MESA Adaptive Moving Average by John F. Ehlers
Performs Hilbert Transform Homodyne Discriminator cycle measurement
Unlike MAMA Alpha function (in LengthAdaptation library), this does not compute phase rate of change
Introduced in the September 2001 issue of Stocks and Commodities
Inspired by the everget implementation:

Inspired by the anoojpatel implementation:

paPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Pearson Autocorrelation
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hann Windowing prefilter
Returns: Calculated period
Based on Pearson Autocorrelation Periodogram by John F. Ehlers
Introduced in the September 2016 issue of Stocks and Commodities
Inspired by the blackcat1402 implementation:
![[blackcat] L2 Ehlers Adaptive CCI 2013](https://s3.tradingview.com/9/9CbjlKjz_mid.png)
Inspired by the rumpypumpydumpy implementation:

Corrected many errors, and made small speed optimizations, so this could be the best implementation to date (still slow, though, so may revisit in future)
High Pass and Super Smoother prefilters are used in the original implementation
dftPeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Discrete Fourier Transform
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hann Windowing prefilter
Returns: Calculated period
Based on Spectrum from Discrete Fourier Transform by John F. Ehlers
Inspired by the blackcat1402 implementation:
![[blackcat] L2 Ehlers DFT-Adapted RSI](https://s3.tradingview.com/v/V6wCdSwQ_mid.png)
High Pass, Super Smoother and Hann Windowing prefilters are used in the original implementation
phasePeriod(src, dynLow, dynHigh, preHP, preSS, preHP) Phase Accumulation
Parameters:
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter (default)
preSS: Use Super Smoother prefilter (default)
preHP: Use Hamm Windowing prefilter
Returns: Calculated period
Based on Dominant Cycle from Phase Accumulation by John F. Ehlers
High Pass and Super Smoother prefilters are used in the original implementation
doAdapt(type, src, len, dynLow, dynHigh, chandeSDLen, chandeSmooth, chandePower, preHP, preSS, preHP) Execute a particular Length Adaptation or Dominant Cycle Estimator from the list
Parameters:
type: Length Adaptation or Dominant Cycle Estimator type to use
src: Series to use
len: Reference lookback length
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
chandeSDLen: Lookback length of Standard deviation for Chande's Dynamic Length
chandeSmooth: Smoothing length of Standard deviation for Chande's Dynamic Length
chandePower: Exponent of the length adaptation for Chande's Dynamic Length (lower is smaller variation)
preHP: Use High Pass prefilter for the Estimators that support it (default)
preSS: Use Super Smoother prefilter for the Estimators that support it (default)
preHP: Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
doEstimate(type, src, dynLow, dynHigh, preHP, preSS, preHP) Execute a particular Dominant Cycle Estimator from the list
Parameters:
type: Dominant Cycle Estimator type to use
src: Series to use
dynLow: Lower bound for the dynamic length
dynHigh: Upper bound for the dynamic length
preHP: Use High Pass prefilter for the Estimators that support it (default)
preSS: Use Super Smoother prefilter for the Estimators that support it (default)
preHP: Use Hann Windowing prefilter for the Estimators that support it
Returns: Calculated period (float, not limited)
發行說明
v2 library updatePine腳本庫
秉持 TradingView 一貫的共享精神,作者將此 Pine 程式碼發佈為開源庫,讓社群中的其他 Pine 程式設計師能夠重複使用。向作者致敬!您可以在私人專案或其他開源發佈中使用此庫,但在公開發佈中重複使用該程式碼需遵守社群規範。
Tips in TradingView Coins are appreciated
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。
Pine腳本庫
秉持 TradingView 一貫的共享精神,作者將此 Pine 程式碼發佈為開源庫,讓社群中的其他 Pine 程式設計師能夠重複使用。向作者致敬!您可以在私人專案或其他開源發佈中使用此庫,但在公開發佈中重複使用該程式碼需遵守社群規範。
Tips in TradingView Coins are appreciated
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。