This Pine Script (written in version 5) is designed to calculate the IBD Relative Strength for both daily and weekly timeframes, comparing the current chart's security to the NIFTY SMLCAP 250 index. Here's a breakdown of the code:
1. Indicator Initialization: pinescript indicator(shorttitle = "IBD Relative Strength - Daily & Weekly", title="IBD Relative Strength (Daily & Weekly)", overlay=true) This line sets up the indicator with both a short and full title. The overlay=true means the plot will be drawn on top of the price chart.
2. Fetching Data: pinescript niftySmlcap250_daily = request.security("NSE:NIFTYSMLCAP250", "D", close) niftySmlcap250_weekly = request.security("NSE:NIFTYSMLCAP250", "W", close) This fetches the daily ("D") and weekly ("W") close prices for the NIFTY SMLCAP 250 index.
3. Relative Strength Calculation: pinescript rs_daily = close / niftySmlcap250_daily * 100 rs_weekly = close / niftySmlcap250_weekly * 100 Relative strength is calculated as the ratio of the security's current close price to the close price of the NIFTY SMLCAP 250, multiplied by 100 for both daily and weekly timeframes.
4. Timeframe-Based Selection: pinescript var float rs_combined = na if timeframe.isdaily rs_combined := rs_daily if timeframe.isweekly rs_combined := rs_weekly Here, the script checks whether the chart is in daily or weekly mode and selects the corresponding relative strength value.
5. Scaling with Multiplier: pinescript var float scaled_rs_combined = na if (na(rs_combined[60]) == false) mult_combined = close[60] / rs_combined[60] scaled_rs_combined := rs_combined * mult_combined * 0.85 This section ensures there are at least 60 bars of data and scales the relative strength by using a multiplier derived from the 60th previous bar's close price.
6. Plotting: pinescript plot(scaled_rs_combined, color=color.white, title="Relative Strength (Daily & Weekly)", linewidth=1, transp=0) Finally, the scaled relative strength is plotted on the chart in white.
Improvements: Dynamic Timeframe Handling: You might want to extend this for other timeframes, e.g., monthly. Customization: You can add user input parameters to adjust the timeframe, scale factor, or period dynamically. Color Enhancements: You can add color variation to indicate strength/weakness more clearly.