PINE LIBRARY
Updated DynamicPeriodPublic

Dynamic Period Calculation Library
This library provides tools for adaptive period determination, useful for creating indicators or strategies that automatically adjust to market conditions.
Overview
The Dynamic Period Library calculates adaptive periods based on pivot points, enabling the creation of responsive indicators and strategies that adjust to market volatility.
Key Features
Use Cases
Function: `dynamic_period`
Description
Calculates a dynamic period based on the average distances between pivot highs and lows.
Parameters
Returns
A dynamic period calculated based on pivot distances, constrained by `minPeriod` and `maxPeriod`.
Example
Implementation Notes
This library provides tools for adaptive period determination, useful for creating indicators or strategies that automatically adjust to market conditions.
Overview
The Dynamic Period Library calculates adaptive periods based on pivot points, enabling the creation of responsive indicators and strategies that adjust to market volatility.
Key Features
- Dynamic Periods: Computes periods using distances between pivot highs and lows.
- Customizable Parameters: Users can adjust detection settings and period constraints.
- Robust Handling: Includes fallback mechanisms for cases with insufficient pivot data.
Use Cases
- Adaptive Indicators: Build tools that respond to market volatility by adjusting their periods dynamically.
- Dynamic Strategies: Enhance trading strategies by integrating pivot-based period adjustments.
Function: `dynamic_period`
Description
Calculates a dynamic period based on the average distances between pivot highs and lows.
Parameters
- `left` (default: 5): Number of left-hand bars for pivot detection.
- `right` (default: 5): Number of right-hand bars for pivot detection.
- `numPivots` (default: 5): Minimum pivots required for calculation.
- `minPeriod` (default: 2): Minimum allowed period.
- `maxPeriod` (default: 50): Maximum allowed period.
- `defaultPeriod` (default: 14): Fallback period if no pivots are found.
Returns
A dynamic period calculated based on pivot distances, constrained by `minPeriod` and `maxPeriod`.
Example
Pine Script®
//@version=6
import CrimsonVault/DynamicPeriodPublic/1
left = input.int(5, "Left bars", minval = 1)
right = input.int(5, "Right bars", minval = 1)
numPivots = input.int(5, "Number of Pivots", minval = 2)
period = DynamicPeriodPublic.dynamic_period(left, right, numPivots)
plot(period, title = "Dynamic Period", color = color.blue)
Implementation Notes
- Pivot Detection: Requires sufficient historical data to identify pivots accurately.
- Edge Cases: Ensures a default period is applied when pivots are insufficient.
- Constraints: Limits period values to a user-defined range for stability.
Release Notes
v2Updated:
dynamic_period(left, right, numPivots, minPeriod, maxPeriod, defaultPeriod, high, low)
Parameters:
left (int): Number of left bars for pivot detection
right (int): Number of right bars for pivot detection
numPivots (int): Minimum number of pivots to calculate average distance
minPeriod (int): Minimum allowed period
maxPeriod (int): Maximum allowed period
defaultPeriod (int): Default period if no pivots are found
high (float): Source for low values
low (float): Source for high values
Returns: Calculated dynamic period
Pine library
In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in publications is governed by House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Pine library
In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in publications is governed by House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.