Dema Percentile Standard DeviationDema Percentile Standard Deviation
The Dema Percentile Standard Deviation indicator is a robust tool designed to identify and follow trends in financial markets.
How it works?
This code is straightforward and simple:
The price is smoothed using a DEMA (Double Exponential Moving Average).
Percentiles are then calculated on that DEMA.
When the closing price is below the lower percentile, it signals a potential short.
When the closing price is above the upper percentile and the Standard Deviation of the lower percentile, it signals a potential long.
Settings
Dema/Percentile/SD/EMA Length's: Defines the period over which calculations are made.
Dema Source: The source of the price data used in calculations.
Percentiles: Selects the type of percentile used in calculations (options include 60/40, 60/45, 55/40, 55/45). In these settings, 60 and 55 determine percentile for long signals, while 45 and 40 determine percentile for short signals.
Features
Fully Customizable
Fully Customizable: Customize colors to display for long/short signals.
Display Options: Choose to show long/short signals as a background color, as a line on price action, or as trend momentum in a separate window.
EMA for Confluence: An EMA can be used for early entries/exits for added signal confirmation, but it may introduce noise—use with caution!
Built-in Alerts.
Indicator on Diffrent Assets
INDEX:BTCUSD 1D Chart (6 high 56 27 60/45 14)
CRYPTO:SOLUSD 1D Chart (24 open 31 20 60/40 14)
CRYPTO:RUNEUSD 1D Chart (10 close 56 14 60/40 14)
Remember no indicator would on all assets with default setting so FAFO with setting to get your desired signal.
Komut dosyalarını "如何用wind搜索股票的发行价和份数" için ara
Relative Measured Volatility (RMV) – Spot Tight Entry ZonesTitle: Relative Measured Volatility (RMV) – Spot Tight Entry Zones
Introduction
The Relative Measured Volatility (RMV) indicator is designed to highlight tight price consolidation zones , making it an ideal tool for traders seeking optimal entry points before potential breakouts. By focusing on tightness rather than general volatility, RMV offers traders a practical way to detect consolidation phases that often precede significant market moves.
How RMV Works
The RMV calculates short-term tightness by averaging three ATR (Average True Range) values over different lookback periods and then normalizing them within a specified lookback window. The result is a percentage-based scale from 0 to 100, indicating how tight the current price range is compared to recent history.
Here’s the breakdown:
Three ATR values are computed using user-defined short lookback periods to represent short-term price movements. An average of the ATRs provides a smoothed measure of current tightness. The RMV normalizes this average against the highest and lowest values over the defined lookback period, scaling it from 0 to 100.
This approach helps traders identify consolidation zones that are more likely to lead to breakouts.
Key Features of RMV
Multi-Period ATR Calculation : Uses three ATR values to effectively capture market tightness over the short term. Normalization : Converts the tightness measure to a 0-100 scale for easy interpretation. Dynamic Histogram and Background Colors : The RMV indicator uses a color-coded system for clarity.
How to Use the RMV Indicator
Identify Tight Consolidation Zones:
a - RMV values between 0-10 indicate very tight price ranges, making this the most optimal zone for potential entries before breakouts.
b - RMV values between 11-20 suggest moderate tightness, still favorable for entries.
Monitor Potential Breakout Areas:
As RMV moves from 21-30 , tightness reduces, signaling expanding volatility that may require wider stops or more flexible entry strategies.
Adjust Trading Strategies:
Use RMV values to identify tight zones for entering trades, especially in trending markets or at key support/resistance levels.
Customize the Indicator:
a - Adjust the short-term ATR lookback periods to control sensitivity.
b - Modify the lookback period to match your trading horizon, whether short-term or long-term.
Color-Coding Guide for RMV
ibb.co
How to Add RMV to Your Chart
Open your chart on TradingView.
Go to the “Indicators” section.
Search for "Relative Measured Volatility (RMV)" in the Community Scripts section.
Click on the indicator to add it to your chart.
Customize the input parameters to fit your trading strategy.
Input Parameters
Lookback Period : Defines the period over which tightness is measured and normalized.
Short-term ATR Lookbacks (1, 2, 3) : Control sensitivity to short-term tightness.
Histogram Threshold : Sets the threshold for differentiating between bright (tight) and dim (less tight) histogram colors.
Conclusion
The Relative Measured Volatility (RMV) is a versatile tool designed to help traders identify tight entry zones by focusing on market consolidation. By highlighting narrow price ranges, the RMV guides traders toward potential breakout setups while providing clear visual cues for better decision-making. Add RMV to your trading toolkit today and enhance your ability to identify optimal entry points!
4AM-5AM BRT HighlighterThe 4AM-5AM BRT Highlighter is a simple yet effective tool designed to visually mark your preferred trading time on the chart. It highlights the period between 4:00 AM and 5:00 AM Brazilian Time (BRT/UTC-3) by default, helping you stay focused and aware of your prime trading window.
Key Features:
Clear Visual Highlight: Colors the background of your chart during the chosen timeframe, making it easy to see when your trading session starts and ends.
Customizable Colors: Easily adjust the highlight color and transparency to suit your visual preferences.
Accurate Time Conversion: Automatically accounts for Brazilian Time (BRT), ensuring the highlight appears correctly no matter your chart’s default timezone.
Whether you're trading currencies, metals, indexes, or cryptocurrencies, this indicator helps you maintain focus during your dedicated trading hour by clearly marking your active period on the chart.
Night Low Liquidity Congestions with 4 Trading SessionsThis indicator is designed to help traders visualize and analyze key market periods of low liquidity during the night and identify high-activity zones in the morning. It also includes customizable time sessions for major global markets, including the European and American sessions, as well as the London Close session.
T he main functionalities include:
- Night Low Liquidity Phase: This highlights periods with typically low market activity during the night (default: 20:01–5:59). It also displays the total range (in pips) during this phase, allowing traders to identify potential price consolidations.
- Morning Hot Zone: This focuses on high-activity periods in the early morning (default: 6:00–7:59), providing visual cues without altering bar colors.
- European Trading Session: Displays the European market’s open hours (default: 8:00–12:00), shaded in blue, to mark increased volatility typically seen during this period.
- American Trading Session: Marks the active hours of the U.S. market (default: 12:01–16:59), where market activity tends to peak.
- London Close Area: Highlights the closing hours of the London market (default: 17:00–20:00), allowing traders to track potential liquidity shifts.
Key Features:
1. Customizable Time Sessions:
- The indicator allows for full customization of the start and end times for each market session, making it adaptable to different instruments and trading style.
- Traders can choose their preferred color and opacity for each time zone to suit their charting preferences.
2. Night Low Liquidity Pip Range Calculation:
- Automatically calculates and displays the pip range for the Night Low Liquidity phase.
- The range is colored red if it exceeds the specified threshold and green if it remains below it.
3. Alarm System:
- Customizable alerts for H1, M15, and M5 timeframes.
- Traders can set alerts to trigger just before a bar closes during specific sessions (European, American, or London Close) and on selected days of the week (Monday–Friday).
- The alarm system allows for full customization of active hours and days, giving traders full control over their notifications.
4. Clear Visual Cues:
- The indicator uses transparent shading to differentiate market sessions, making it easy to spot different phases of the trading day.
- Each session is visually distinct and can be toggled on or off based on trader preferences.
Ideal For:
- Traders who focus on intraday strategies and want to understand how market sessions affect liquidity and volatility.
- Those looking to trade during specific time windows like the Night Low Liquidity or Morning Hot Zones.
- Traders who need to automate their alerts based on specific market hours and close events for major timeframes.
Time Vertical LinesVLines - Time-Based Vertical Lines with Zones
This PineScript indicator creates vertical time lines with customizable zones between them. Perfect for marking trading sessions, key market times, or any time-based analysis.
Key Features:
- 5 configurable time lines
- 3 customizable zones (between lines 1-2, 2-3, and 4-5)
- Each zone features:
- Background shading
- Horizontal lines at high/low points
- Independent color controls
- Adjustable line styles and widths
- Time zone offset adjustment
- Option to show/hide historical lines
Installation Instructions:
1. Open TradingView's Pine Script Editor
2. Create a new script
3. Copy and paste the entire code
4. Add to Chart
Setup Guide:
1. Time Zone Adjustment:
- Find the "Time Zone Offset (Hours)" setting
- Adjust if lines appear at wrong times
- Example: If lines appear 3 hours early, set offset to 3
2. Basic Time Lines (1-3):
- Each line has settings for:
- Hour (0-23)
- Minute (0-59)
- Color
- Show/Hide toggle
3. Session Lines (4-5):
- Special lines typically used for session marking
- Same settings as basic lines
- Default red color to distinguish from other lines
4. Zone Customization:
Three separate zones are available:
- Zone 1-2 (between first and second lines)
- Zone 2-3 (between second and third lines)
- Zone 4-5 (between fourth and fifth lines)
Each zone can be customized with:
- Background color and transparency
- Horizontal line color
- Line style (Solid/Dashed/Dotted)
- Line width
- Individual show/hide toggles for zone and lines
5. Additional Settings:
- "Show Historical Lines" - toggle to show/hide lines on previous days
- Global line style and width settings for vertical lines
Suggested Uses:
1. Mark pre-market, market, and post-market sessions
2. Highlight specific trading windows
3. Track time-based support/resistance levels
4. Monitor price ranges during specific time periods
Tips:
- Start by setting just one zone to get familiar with the controls
- Use different colors for different sessions/time periods
- Adjust transparency to maintain chart visibility
- Use the show/hide toggles to focus on specific times
- The horizontal lines automatically mark the high/low range between time points
Macro Timeframes with Opening PriceDescription: Macro Timeframe Horizontal Line Indicator
This indicator highlights macro periods on the chart by drawing a horizontal line at the opening price of each macro period. The macro timeframe is defined as the last 10 minutes of an hour (from :50 to :00) and the first 10 minutes of the following hour (from :00 to :10).
A horizontal black line is plotted at the opening price of the macro period, starting at :50 and extending through the duration of the macro window. However, you can customize it however you see fit.
The background of the macro period is highlighted with a customizable color to visually distinguish the timeframe.
The horizontal line updates at each macro period, ensuring that the opening price for every macro session is accurately reflected on the chart.
This tool is useful for traders who want to track the behavior of price within key macro intervals and visually assess price movement and volatility during these periods.
Williams %R StrategyThe Williams %R Strategy implemented in Pine Script™ is a trading system based on the Williams %R momentum oscillator. The Williams %R indicator, developed by Larry Williams in 1973, is designed to identify overbought and oversold conditions in a market, helping traders time their entries and exits effectively (Williams, 1979). This particular strategy aims to capitalize on short-term price reversals in the S&P 500 (SPY) by identifying extreme values in the Williams %R indicator and using them as trading signals.
Strategy Rules:
Entry Signal:
A long position is entered when the Williams %R value falls below -90, indicating an oversold condition. This threshold suggests that the market may be near a short-term bottom, and prices are likely to reverse or rebound in the short term (Murphy, 1999).
Exit Signal:
The long position is exited when:
The current close price is higher than the previous day’s high, or
The Williams %R indicator rises above -30, indicating that the market is no longer oversold and may be approaching an overbought condition (Wilder, 1978).
Technical Analysis and Rationale:
The Williams %R is a momentum oscillator that measures the level of the close relative to the high-low range over a specific period, providing insight into whether an asset is trading near its highs or lows. The indicator values range from -100 (most oversold) to 0 (most overbought). When the value falls below -90, it indicates an oversold condition where a reversal is likely (Achelis, 2000). This strategy uses this oversold threshold as a signal to initiate long positions, betting on mean reversion—an established principle in financial markets where prices tend to revert to their historical averages (Jegadeesh & Titman, 1993).
Optimization and Performance:
The strategy allows for an adjustable lookback period (between 2 and 25 days) to determine the range used in the Williams %R calculation. Empirical tests show that shorter lookback periods (e.g., 2 days) yield the most favorable outcomes, with profit factors exceeding 2. This finding aligns with studies suggesting that shorter timeframes can effectively capture short-term momentum reversals (Fama, 1970; Jegadeesh & Titman, 1993).
Scientific Context:
Mean Reversion Theory: The strategy’s core relies on mean reversion, which suggests that prices fluctuate around a mean or average value. Research shows that such strategies, particularly those using oscillators like Williams %R, can exploit these temporary deviations (Poterba & Summers, 1988).
Behavioral Finance: The overbought and oversold conditions identified by Williams %R align with psychological factors influencing trading behavior, such as herding and panic selling, which often create opportunities for price reversals (Shiller, 2003).
Conclusion:
This Williams %R-based strategy utilizes a well-established momentum oscillator to time entries and exits in the S&P 500. By targeting extreme oversold conditions and exiting when these conditions revert or exceed historical ranges, the strategy aims to capture short-term gains. Scientific evidence supports the effectiveness of short-term mean reversion strategies, particularly when using indicators sensitive to momentum shifts.
References:
Achelis, S. B. (2000). Technical Analysis from A to Z. McGraw Hill.
Fama, E. F. (1970). Efficient Capital Markets: A Review of Theory and Empirical Work. The Journal of Finance, 25(2), 383-417.
Jegadeesh, N., & Titman, S. (1993). Returns to Buying Winners and Selling Losers: Implications for Stock Market Efficiency. The Journal of Finance, 48(1), 65-91.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets: A Comprehensive Guide to Trading Methods and Applications. New York Institute of Finance.
Poterba, J. M., & Summers, L. H. (1988). Mean Reversion in Stock Prices: Evidence and Implications. Journal of Financial Economics, 22(1), 27-59.
Shiller, R. J. (2003). From Efficient Markets Theory to Behavioral Finance. Journal of Economic Perspectives, 17(1), 83-104.
Williams, L. (1979). How I Made One Million Dollars… Last Year… Trading Commodities. Windsor Books.
Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
This explanation provides a scientific and evidence-based perspective on the Williams %R trading strategy, aligning it with fundamental principles in technical analysis and behavioral finance.
Cosine-Weighted MA ATR [InvestorUnknown]The Cosine-Weighted Moving Average (CWMA) ATR (Average True Range) indicator is designed to enhance the analysis of price movements in financial markets. By incorporating a cosine-based weighting mechanism , this indicator provides a unique approach to smoothing price data and measuring volatility, making it a valuable tool for traders and investors.
Cosine-Weighted Moving Average (CWMA)
The CWMA is calculated using weights derived from the cosine function, which emphasizes different data points in a distinctive manner. Unlike traditional moving averages that assign equal weight to all data points, the cosine weighting allocates more significance to values at the edges of the data window. This can help capture significant price movements while mitigating the impact of outlier values.
The weights are shifted to ensure they remain non-negative, which helps in maintaining a stable calculation throughout the data series. The normalization of these weights ensures they sum to one, providing a proportional contribution to the average.
// Function to calculate the Cosine-Weighted Moving Average with shifted weights
f_Cosine_Weighted_MA(series float src, simple int length) =>
var float cosine_weights = array.new_float(0)
array.clear(cosine_weights) // Clear the array before recalculating weights
for i = 0 to length - 1
weight = math.cos((math.pi * (i + 1)) / length) + 1 // Shift by adding 1
array.push(cosine_weights, weight)
// Normalize the weights
sum_weights = array.sum(cosine_weights)
for i = 0 to length - 1
norm_weight = array.get(cosine_weights, i) / sum_weights
array.set(cosine_weights, i, norm_weight)
// Calculate Cosine-Weighted Moving Average
cwma = 0.0
if bar_index >= length
for i = 0 to length - 1
cwma := cwma + array.get(cosine_weights, i) * close
cwma
Cosine-Weighted ATR Calculation
The ATR is an essential measure of volatility, reflecting the average range of price movement over a specified period. The Cosine-Weighted ATR uses a similar weighting scheme to that of the CWMA, allowing for a more nuanced understanding of volatility. By emphasizing more recent price movements while retaining sensitivity to broader trends, this ATR variant offers traders enhanced insight into potential price fluctuations.
// Function to calculate the Cosine-Weighted ATR with shifted weights
f_Cosine_Weighted_ATR(simple int length) =>
var float cosine_weights_atr = array.new_float(0)
array.clear(cosine_weights_atr)
for i = 0 to length - 1
weight = math.cos((math.pi * (i + 1)) / length) + 1 // Shift by adding 1
array.push(cosine_weights_atr, weight)
// Normalize the weights
sum_weights_atr = array.sum(cosine_weights_atr)
for i = 0 to length - 1
norm_weight_atr = array.get(cosine_weights_atr, i) / sum_weights_atr
array.set(cosine_weights_atr, i, norm_weight_atr)
// Calculate Cosine-Weighted ATR using true ranges
cwatr = 0.0
tr = ta.tr(true) // True Range
if bar_index >= length
for i = 0 to length - 1
cwatr := cwatr + array.get(cosine_weights_atr, i) * tr
cwatr
Signal Generation
The indicator generates long and short signals based on the relationship between the price (user input) and the calculated upper and lower bands, derived from the CWMA and the Cosine-Weighted ATR. Crossover conditions are used to identify potential entry points, providing a systematic approach to trading decisions.
// - - - - - CALCULATIONS - - - - - //{
bar b = bar.new()
float src = b.calc_src(cwma_src)
float cwma = f_Cosine_Weighted_MA(src, ma_length)
// Use normal ATR or Cosine-Weighted ATR based on input
float atr = atr_type == "Normal ATR" ? ta.atr(atr_len) : f_Cosine_Weighted_ATR(atr_len)
// Calculate upper and lower bands using ATR
float cwma_up = cwma + (atr * atr_mult)
float cwma_dn = cwma - (atr * atr_mult)
float src_l = b.calc_src(src_long)
float src_s = b.calc_src(src_short)
// Signal logic for crossovers and crossunders
var int signal = 0
if ta.crossover(src_l, cwma_up)
signal := 1
if ta.crossunder(src_s, cwma_dn)
signal := -1
//}
Backtest Mode and Equity Calculation
To evaluate its effectiveness, the indicator includes a backtest mode, allowing users to test its performance on historical data:
Backtest Equity: A detailed equity curve is calculated based on the generated signals over a user-defined period (startDate to endDate).
Buy and Hold Comparison: Alongside the strategy’s equity, a Buy-and-Hold equity curve is plotted for performance comparison.
Visualization and Alerts
The indicator features customizable plots, allowing users to visualize the CWMA, ATR bands, and signals effectively. The colors change dynamically based on market conditions, with clear distinctions between long and short signals.
Alerts can be configured to notify users of crossover events, providing timely information for potential trading opportunities.
HTFBands█ OVERVIEW
Contains type and methods for drawing higher-timeframe bands of several types:
Bollinger bands
Parabolic SAR
Supertrend
VWAP
By copy pasting ready made code sections to your script you can add as many multi-timeframe bands as necessary.
█ HOW TO USE
Please see instructions in the code. (Important: first fold all sections of the script: press Cmd + K then Cmd + - (for Windows Ctrl + K then Ctrl + -)
█ FULL LIST OF FUNCTIONS AND PARAMETERS
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float"
`length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
pine_supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float"
`atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when
reversing trend, or to use the close price. Optional. Default is false.
Returns: ( ) A tuple of the superTrend value and trend direction.
method getDefaultBandQ1(bandType)
For a given BandType returns its default Q1
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method getDefaultBandQ2(bandType)
For a given BandType returns its default Q2
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method getDefaultBandQ3(bandType)
For a given BandType returns its default Q3
Namespace types: series BandTypes
Parameters:
bandType (series BandTypes)
method init(this, bandsType, q1, q2, q3, vwapAnchor)
Initiates RsParamsBands for each band (used in htfUpdate() withi req.sec())
Namespace types: RsParamsBands
Parameters:
this (RsParamsBands)
bandsType (series BandTypes)
q1 (float) : (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
q2 (float) : (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
q3 (float) : (float) Depending on type: BB - not used, SAR - AF max, ST - not used
vwapAnchor (series VwapAnchors) : (VwapAnchors) VWAP ahcnor
method init(this, bandsType, tf, showRecentBars, lblsShow, lblsMaxLabels, lblSize, lnMidClr, lnUpClr, lnLoClr, fill, fillClr, lnWidth, lnSmoothen)
Initialises object with params (incl. input). Creates arrays if any.
Namespace types: HtfBands
Parameters:
this (HtfBands)
bandsType (series BandTypes) : (BandTypes) Just used to enable/disable - if BandTypes.none then disable )
tf (string) : (string) Timeframe
showRecentBars (int) : (int) Only show over this number of recent bars
lblsShow (bool) : (bool) Show labels
lblsMaxLabels (int) : (int) Max labels to show
lblSize (string) : (string) Size of the labels
lnMidClr (color) : (color) Middle band color
lnUpClr (color) : (color) Upper band color
lnLoClr (color) : (color) Lower band color
fill (bool)
fillClr (color) : (color) Fill color
lnWidth (int) : (int) Line width
lnSmoothen (bool) : (bool) Smoothen the bands
method htfUpdateTuple(rsPrms, repaint)
(HTF) Calculates Bands within request.security(). Returns tuple . If any or all of the bands are not available returns na as their value.
Namespace types: RsParamsBands
Parameters:
rsPrms (RsParamsBands) : (RsParamsBands) Parameters of the band.
repaint (bool) : (bool) If true does not update on realtime bars.
Returns: A tuple (corresponds to fields in RsReturnBands)
method importRsRetTuple(this, htfBi, mid, up, lo, dir)
Imports a tuple returned from req.sec() into an HtfBands object
Namespace types: HtfBands
Parameters:
this (HtfBands) : (HtfBands) Object to import to
htfBi (int) : (float) Higher timeframe's bar index (Default = na)
mid (float)
up (float) : (float) Value of upper band (Default = na)
lo (float) : (float) Value of lower band (Default = na)
dir (int) : (int) Direction (for bands like Parabolic SAR) (Default = na)
method addUpdDrawings(this, rsPrms)
Draws band's labels
Namespace types: HtfBands
Parameters:
this (HtfBands)
rsPrms (RsParamsBands)
method update(this)
Sets band's values to na on intrabars if `smoothen` is set.
Namespace types: HtfBands
Parameters:
this (HtfBands)
method newRsParamsBands(this)
A wraper for RsParamsBands.new()
Namespace types: LO_A
Parameters:
this (LO_A)
method newHtfBands(this)
A wraper for HtfBands.new()
Namespace types: LO_B
Parameters:
this (LO_B)
RsParamsBands
Used to pass bands' params to req.sec()
Fields:
bandsType (series BandTypes) : (enum BandTypes) Type of the band (BB, SAR etc.)
q1 (series float) : (float) Depending on type: BB - length, SAR - AF start, ST - ATR's prd
q2 (series float) : (float) Depending on type: BB - StdDev mult, SAR - AF step, ST - mult
q3 (series float) : (float) Depending on type: BB - not used, SAR - AF max, ST - not used
vwapAnchor (series VwapAnchors)
RsReturnBands
Used to return bands' data from req.sec(). Params of the bands are in RsParamsBands
Fields:
htfBi (series float) : (float) Higher timeframe's bar index (Default = na)
upBand (series float) : (float) Value of upper band (Default = na)
loBand (series float) : (float) Value of lower band (Default = na)
midBand (series float) : (float) Value of middle band (Default = na)
dir (series int) : (float) Direction (for bands like Parabolic SAR) (Default = na)
BandsDrawing
Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
Fields:
lnMidClr (series color) : (color) Middle band color
lnLoClr (series color) : (color) Lower band color
lnUpClr (series color) : (color) Upper band color
fillUpClr (series color)
fillLoClr (series color)
lnWidth (series int) : (int) Line width
lnSmoothen (series bool) : (bool) Smoothen the bands
showHistory (series bool) : (bool) If true show bands lines, otherwise only current level
showRecentBars (series int) : (int) Only show over this number of recent bars
arLbl (array) : (label Labels
lblsMaxLabels (series int) : (int) Max labels to show
lblsShow (series bool) : (bool) Show labels
lblSize (series string) : (string) Size of the labels
HtfBands
Calcs and draws HTF bands
Fields:
rsRet (RsReturnBands) : (RsReturnBands) Bands' values
rsRetNaObj (RsReturnBands) : (RsReturnBands) Dummy na obj for returning from request.security()
rsPrms (RsParamsBands) : (RsParamsBands) Band parameters (for htfUpdate() called in req.sec() )
drw (BandsDrawing) : (BandsDrawing) Contains plot visualization parameters and stores and keeps track of lines, labels and other visual objects (not plots)
enabled (series bool) : (bool) Toggles bands on/off
tf (series string) : (string) Timeframe
LO_A
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
LO_B
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
HTFMAs█ OVERVIEW
Contains a type HTFMA used to return data on six moving averages from a higher timeframe.
Several types of MA's are supported.
█ HOW TO USE
Please see instructions in the code (in library description). (Important: first fold all sections of the script: press Cmd + K then Cmd + - (for Windows Ctrl + K then Ctrl + -)
█ FULL LIST OF FUNCTIONS AND PARAMETERS
method getMaType(this)
Enumerator function, given a key returns `enum MaTypes` value
Namespace types: series string, simple string, input string, const string
Parameters:
this (string)
method init(this, enableAll, ma1Enabled, ma1MaType, ma1Src, ma1Prd, ma2Enabled, ma2MaType, ma2Src, ma2Prd, ma3Enabled, ma3MaType, ma3Src, ma3Prd, ma4Enabled, ma4MaType, ma4Src, ma4Prd, ma5Enabled, ma5MaType, ma5Src, ma5Prd, ma6Enabled, ma6MaType, ma6Src, ma6Prd)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
enableAll (simple MaEnable)
ma1Enabled (bool)
ma1MaType (series MaTypes)
ma1Src (string)
ma1Prd (int)
ma2Enabled (bool)
ma2MaType (series MaTypes)
ma2Src (string)
ma2Prd (int)
ma3Enabled (bool)
ma3MaType (series MaTypes)
ma3Src (string)
ma3Prd (int)
ma4Enabled (bool)
ma4MaType (series MaTypes)
ma4Src (string)
ma4Prd (int)
ma5Enabled (bool)
ma5MaType (series MaTypes)
ma5Src (string)
ma5Prd (int)
ma6Enabled (bool)
ma6MaType (series MaTypes)
ma6Src (string)
ma6Prd (int)
method init(this, enableAll, tf, rngAtrQ, showRecentBars, lblsOffset, lblsShow, lnOffset, lblSize, lblStyle, smoothen, ma1lnClr, ma1lnWidth, ma1lnStyle, ma2lnClr, ma2lnWidth, ma2lnStyle, ma3lnClr, ma3lnWidth, ma3lnStyle, ma4lnClr, ma4lnWidth, ma4lnStyle, ma5lnClr, ma5lnWidth, ma5lnStyle, ma6lnClr, ma6lnWidth, ma6lnStyle, ma1ShowHistory, ma2ShowHistory, ma3ShowHistory, ma4ShowHistory, ma5ShowHistory, ma6ShowHistory, ma1ShowLabel, ma2ShowLabel, ma3ShowLabel, ma4ShowLabel, ma5ShowLabel, ma6ShowLabel)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
enableAll (series MaEnable)
tf (string)
rngAtrQ (int)
showRecentBars (int)
lblsOffset (int)
lblsShow (bool)
lnOffset (int)
lblSize (string)
lblStyle (string)
smoothen (bool)
ma1lnClr (color)
ma1lnWidth (int)
ma1lnStyle (string)
ma2lnClr (color)
ma2lnWidth (int)
ma2lnStyle (string)
ma3lnClr (color)
ma3lnWidth (int)
ma3lnStyle (string)
ma4lnClr (color)
ma4lnWidth (int)
ma4lnStyle (string)
ma5lnClr (color)
ma5lnWidth (int)
ma5lnStyle (string)
ma6lnClr (color)
ma6lnWidth (int)
ma6lnStyle (string)
ma1ShowHistory (bool)
ma2ShowHistory (bool)
ma3ShowHistory (bool)
ma4ShowHistory (bool)
ma5ShowHistory (bool)
ma6ShowHistory (bool)
ma1ShowLabel (bool)
ma2ShowLabel (bool)
ma3ShowLabel (bool)
ma4ShowLabel (bool)
ma5ShowLabel (bool)
ma6ShowLabel (bool)
method get(this, id)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
id (int)
method set(this, id, prop, val)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
id (int)
prop (string)
val (string)
method set(this, id, prop, val)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
prop (string)
val (string)
method htfUpdateTuple(rsParams, repaint)
Namespace types: RsParamsMAs
Parameters:
rsParams (RsParamsMAs)
repaint (bool)
method clear(this)
Namespace types: MaDrawing
Parameters:
this (MaDrawing)
method importRsRetTuple(this, htfBi, ma1, ma2, ma3, ma4, ma5, ma6)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
htfBi (int)
ma1 (float)
ma2 (float)
ma3 (float)
ma4 (float)
ma5 (float)
ma6 (float)
method getDrw(this, id)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
method setDrwProp(this, id, prop, val)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
id (int)
prop (string)
val (string)
method initDrawings(this, rsPrms, dispBandWidth)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
rsPrms (RsParamsMAs)
dispBandWidth (float)
method updateDrawings(this, rsPrms, dispBandWidth)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
rsPrms (RsParamsMAs)
dispBandWidth (float)
method update(this)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps0 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps1 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps2 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps3 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps4 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps5 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `RsParamsMAs` child `RsMaCalcParams` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (RsParamsMAs) Target object to import prop values to.
oCfg (objProps6 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs)
oCfg (objProps7 type from moebius1977/CSVParser/1)
maCount (int)
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: RsParamsMAs
Parameters:
this (RsParamsMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps8 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps0 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps1 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps2 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps3 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps4 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps5 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Imports HTF MAs settings from objProps (of any level) into `HTFMAs` child `MaDrawing` objects (into the first first `maCount` of them)
Namespace types: HTFMAs
Parameters:
this (HTFMAs) : (HTFMAs) Target object to import prop values to.
oCfg (objProps6 type from moebius1977/CSVParser/1) : (CSVP.objProps) (one of objProps types) an objProps, ... opjProps8 containing properties' values in a child objProps objects
maCount (int) : (int) Number of tgtObj's RsMaCalcParams childs of tgtObj to set (1 to 6, starting from 1)
Returns: this
method importConfig(this, oCfg, maCount)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
oCfg (objProps7 type from moebius1977/CSVParser/1)
maCount (int)
method importConfig(this, oCfg, maCount)
Namespace types: HTFMAs
Parameters:
this (HTFMAs)
oCfg (objProps8 type from moebius1977/CSVParser/1)
maCount (int)
method newRsParamsMAs(this)
Namespace types: LO
Parameters:
this (LO)
method newHTFMAs(this)
Namespace types: LO
Parameters:
this (LO)
RsMaCalcParams
Parameters of one MA (only calculation params needed within req.sec(), visual parameters are within htfMAs type)
Fields:
enabled (series bool)
maType (series MaTypes) : MA type options: SMA / EMA / WMA / ...
src (series string)
prd (series int) : MA period
RsParamsMAs
Collection of parameters of 6 MAs. Used to pass params to req.sec()
Fields:
ma1CalcParams (RsMaCalcParams)
ma2CalcParams (RsMaCalcParams)
ma3CalcParams (RsMaCalcParams)
ma4CalcParams (RsMaCalcParams)
ma5CalcParams (RsMaCalcParams)
ma6CalcParams (RsMaCalcParams)
RsReturnMAs
Used to return data from req.sec().
Fields:
htfBi (series int)
ma1 (series float)
ma2 (series float)
ma3 (series float)
ma4 (series float)
ma5 (series float)
ma6 (series float)
MaDrawing
MA's plot parameters plus drawing objects for MA's current level (line and label).
Fields:
lnClr (series color) : (color) MA plot line color (like in plot())
lnWidth (series int) : (int) MA plot line width (like in plot())
lnStyle (series string) : (string) MA plot line style (like in plot())
showHistory (series bool) : (bool) Whether to plot the MA on historical bars or only show current level to the right of the latest bar.
showLabel (series bool) : (bool) Whether to show the name of the MA to the right of the MA's level
ln (series line) : (line) line to show MA"s current level
lbl (series label) : (label) label showing MA's name
HTFMAs
Contains data and drawing parameters for MA's of one timeframe (MA calculation parameters for MA's of one timeframe are in a separate object RsParamsMAs)
Fields:
rsRet (RsReturnMAs) : (RsReturnMAs) Contains data returned from req.sec(). Is set to na in between HTF bar changes if smoothing is enabled.
rsRetLast (RsReturnMAs) : (RsReturnMAs) Contains a copy of data returned from req.sec() in case rsRet is set to na for smoothing.
rsRetNaObj (RsReturnMAs) : (RsReturnMAs) An empty object as `na` placeholder
ma1Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma2Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma3Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma4Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma5Drawing (MaDrawing) : (MaDrawing) MA drawing properties
ma6Drawing (MaDrawing) : (MaDrawing) MA drawing properties
enabled (series bool) : (bool ) Enables/disables all of the MAs of one timeframe.
tf (series string) : (string) Timeframe
showHistory (series bool) : (bool ) Plot MA line on historical bars
rngAtrQ (series int) : (int ) A multiplier for atr(14). Determines a range within which the MA's will be plotted. MA's too far away will not be plotted.
showRecentBars (series int) : (int ) Only plot MA on these recent bars
smoothen (series bool) : (bool ) Smoothen MA plot. If false the same HTF value is returned on all chart bars within a HTF bar (intrabars), so the plot looks like steps.
lblsOffset (series int) : (int ) Show MA name this number of bars to the right off last bar.
lblsShow (series bool) : (bool ) Show MA name
lnOffset (series int) : (int ) Start line showing current level of the MA this number of bars to the right off the last bar.
lblSize (series string) : (string) Label size
lblStyle (series string) : (string) Label style
lblTxtAlign (series string) : (string) Label text align
bPopupLabel (series bool) : (bool ) Show current MA value as a tooltip to MA's name.
LO
LO Library object, whose only purpose is to serve as a shorthand for library name in script code.
Fields:
dummy (series string)
Breakout and Breakdown Indicator with RetestsThis indicator is designed to help traders identify high-probability breakout and breakdown points based on the first 5 minutes of market activity (9:30 am to 9:35 am). It works effectively on both the 1-minute and 5-minute timeframes, making it ideal for day traders and scalpers.
This indicator is a better indicator of my previous 5-Minute Opening Range Breakout indicator.
Key Features:
Dynamic Support and Resistance Lines: Automatically plots the highest and lowest price levels from 9:30 am to 9:35 am, providing essential support and resistance zones.
Breakout/Breakdown Detection: Identifies and marks successful breakout and breakdown points only after a confirmed retest, ensuring more accurate signals.
Visual Markers: Uses customizable green diamonds for successful breakouts and red diamonds for successful breakdowns, allowing easy identification on the chart.
Customization Options:
Change Colors: You can personalize the color of the breakout and breakdown markers, the label text, and the lines drawn from the 9:30 am to 9:35 am window.
Adapt to Your Chart: Adjust the indicator to match your preferred charting theme, ensuring it blends seamlessly with your trading setup.
How It Works:
Plots Key Levels: Identifies the highest and lowest prices during the first 5 minutes of trading (9:30 am to 9:35 am) and plots them on the chart.
Monitors Retests: Waits for a retest of these levels before confirming a breakout or breakdown.
Labels Breakouts/Breakdowns: After a retest, successful breakouts are marked with green diamonds and "Breakout" text, while breakdowns are marked with red diamonds and "Breakdown" text.
Why Use This Indicator?
Avoid False Signals: The retest requirement helps filter out false breakouts and breakdowns, offering more reliable trading signals.
Works Across Timeframes: Suitable for both 1-minute and 5-minute charts, allowing flexibility for different trading styles.
Some what Customizable: Adjust colors to fit your charting preferences and enhance visual clarity.
Recommended Use: Combine this indicator with other technical analysis tools, such as volume, candlestick patterns, or moving averages, for more informed trading decisions.
bar_index inspectorThis is a tool for developers who are working with index based plots and find themselves adding the bar_index to their indicators on a regular basis during development and debugging.
What it does:
shows the bar_index in the status line and data window.
plots optional labels (bar index + time) into the chart every 10 bars
Custom Buy BID StrategyThis Pine Script strategy is designed to identify and capitalize on upward trends in the market using the Average True Range (ATR) as a core component of the analysis. The script provides the following features:
Customizable ATR Calculation: Users can switch between different methods of ATR calculation (traditional or simple moving average).
Adjustable Parameters: The strategy allows for adjustable ATR periods, ATR multipliers, and custom time windows for executing trades.
Buy Signal Alerts: The strategy generates buy signals when the market shifts from a downtrend to an uptrend, based on ATR and price action.
Profit and Stop-Loss Management: Built-in take profit and stop-loss conditions are calculated as a percentage of the entry price, allowing for automatic position management.
Visual Enhancements: The script highlights the uptrend with green lines and optionally colors bars to help visualize market direction.
Flexible Timeframe: Users can configure a specific date range to activate the strategy, offering more control over when trades are executed.
This strategy is ideal for traders looking to automate their buy entries and manage risk with a straightforward trend-following approach. By utilizing customizable settings, it adapts to various market conditions and timeframes.
Larry Conners Vix Reversal II Strategy (approx.)This Pine Script™ strategy is a modified version of the original Larry Connors VIX Reversal II Strategy, designed for short-term trading in market indices like the S&P 500. The strategy utilizes the Relative Strength Index (RSI) of the VIX (Volatility Index) to identify potential overbought or oversold market conditions. The logic is based on the assumption that extreme levels of market volatility often precede reversals in price.
How the Strategy Works
The strategy calculates the RSI of the VIX using a 25-period lookback window. The RSI is a momentum oscillator that measures the speed and change of price movements. It ranges from 0 to 100 and is often used to identify overbought and oversold conditions in assets.
Overbought Signal: When the RSI of the VIX rises above 61, it signals a potential overbought condition in the market. The strategy looks for a RSI downtick (i.e., when RSI starts to fall after reaching this level) as a trigger to enter a long position.
Oversold Signal: Conversely, when the RSI of the VIX drops below 42, the market is considered oversold. A RSI uptick (i.e., when RSI starts to rise after hitting this level) serves as a signal to enter a short position.
The strategy holds the position for a minimum of 7 days and a maximum of 12 days, after which it exits automatically.
Larry Connors: Background
Larry Connors is a prominent figure in quantitative trading, specializing in short-term market strategies. He is the co-author of several influential books on trading, such as Street Smarts (1995), co-written with Linda Raschke, and How Markets Really Work. Connors' work focuses on developing rules-based systems using volatility indicators like the VIX and oscillators such as RSI to exploit mean-reversion patterns in financial markets.
Risks of the Strategy
While the Larry Connors VIX Reversal II Strategy can capture reversals in volatile market environments, it also carries significant risks:
Over-Optimization: This modified version adjusts RSI levels and holding periods to fit recent market data. If market conditions change, the strategy might no longer be effective, leading to false signals.
Drawdowns in Trending Markets: This is a mean-reversion strategy, designed to profit when markets return to a previous mean. However, in strongly trending markets, especially during extended bull or bear phases, the strategy might generate losses due to early entries or exits.
Volatility Risk: Since this strategy is linked to the VIX, an instrument that reflects market volatility, large spikes in volatility can lead to unexpected, fast-moving market conditions, potentially leading to larger-than-expected losses.
Scientific Literature and Supporting Research
The use of RSI and VIX in trading strategies has been widely discussed in academic research. RSI is one of the most studied momentum oscillators, and numerous studies show that it can capture mean-reversion effects in various markets, including equities and derivatives.
Wong et al. (2003) investigated the effectiveness of technical trading rules such as RSI, finding that it has predictive power in certain market conditions, particularly in mean-reverting markets .
The VIX, often referred to as the “fear index,” reflects market expectations of volatility and has been a focal point in research exploring volatility-based strategies. Whaley (2000) extensively reviewed the predictive power of VIX, noting that extreme VIX readings often correlate with turning points in the stock market .
Modified Version of Original Strategy
This script is a modified version of Larry Connors' original VIX Reversal II strategy. The key differences include:
Adjusted RSI period to 25 (instead of 2 or 4 commonly used in Connors’ other work).
Overbought and oversold levels modified to 61 and 42, respectively.
Specific holding period (7 to 12 days) is predefined to reduce holding risk.
These modifications aim to adapt the strategy to different market environments, potentially enhancing performance under specific volatility conditions. However, as with any system, constant evaluation and testing in live markets are crucial.
References
Wong, W. K., Manzur, M., & Chew, B. K. (2003). How rewarding is technical analysis? Evidence from Singapore stock market. Applied Financial Economics, 13(7), 543-551.
Whaley, R. E. (2000). The investor fear gauge. Journal of Portfolio Management, 26(3), 12-17.
Multi-Length RSI **Multi-Length RSI Indicator**
This script creates a custom Relative Strength Index (RSI) indicator with the ability to plot three different RSI lengths on the same chart, allowing traders to analyze momentum across various timeframes simultaneously. The script also includes features to enhance visual clarity and usability.
**Key Features:**
1. **Customizable RSI Lengths:**
- The script allows you to input and customize three different RSI lengths (7, 14, and 28 by default) via user inputs. This flexibility enables you to track short-term, medium-term, and long-term momentum in the market.
2. **Dynamic Colour Coding:**
- The RSI lines are color-coded based on their current value:
- **Above 70 (Overbought)**: The line turns red.
- **Below 30 (Oversold)**: The line turns green.
- **Between 30 and 70**: The line retains its user-defined colour (blue, yellow, orange by default).
- This dynamic colouring helps to quickly identify overbought and oversold conditions.
3. **Adjustable Line Widths and Colours:**
- Users can customize the colour and thickness of each RSI line, allowing for a personalized visual experience that fits different trading strategies.
4. **Overbought, Oversold, and Midline Levels:**
- The script includes static horizontal lines at the 70 (Overbought) and 30 (Oversold) levels, with a red and green colour, respectively.
- A midline at the 50 level is also included in gray and dashed, helping to visualize the neutral zone.
5. **Dynamic RSI Value Labels:**
- The current values of each RSI line are displayed directly on the chart as labels at the most recent bar, with colours matching their corresponding lines. This feature provides an immediate reference to the exact RSI values without the need to hover or look at the data window.
6. **Alerts for Crosses:**
- The script includes built-in alert conditions for when any of the RSI values cross above the overbought level (70) or below the oversold level (30). These alerts can be configured to notify you in real-time when significant momentum shifts occur.
**How to Use:**
1. **Customization**:
- Input your preferred RSI lengths, colours, and line widths through the script’s settings menu.
2. **Visual Analysis**:
- The indicator plots all three RSI values on a separate pane below the price chart. Use the color-coded lines and levels to quickly identify overbought, oversold, and neutral conditions across multiple timeframes.
3. **Set Alerts**:
- You can configure alerts based on the built-in alert conditions to get notified when the RSI crosses critical levels.
**Ideal For:**
- **Traders looking to analyze momentum across multiple timeframes**: The ability to view short-term, medium-term, and long-term RSIs simultaneously offers a comprehensive view of market strength.
- **Those who prefer visual clarity**: The dynamic colouring, clear labels, and customizable settings make it easy to interpret RSI data at a glance.
- **Traders who rely on alerts**: The built-in alert system allows for proactive trading based on significant RSI level crossings.
---
This script is a powerful tool for any trader looking to leverage RSI analysis across multiple timeframes, offering both customization and clarity in a single indicator.
Decline and Rise Detective [CHE]Decline and Rise Detective
TradingView Indicator (Best Timeframe: 1H or Higher)
1. Introduction
The "Decline and Rise Detective " is a TradingView indicator designed to identify the hours within a trading day that experience the largest price declines and rises. This indicator provides a visual representation of this data, offering traders valuable insights into the most frequent hours for significant price movements. It is most effective when used with a timeframe of 1 hour or greater.
2. Key Features of the Indicator
2.1. Display Options
Display Option: Users can choose between two display options:
Label: Displays the information as a text label directly on the chart.
Table: Displays the information in a table format in the top right corner of the chart.
2.2. Time Zone Settings
Time Zone: The indicator allows the user to manually set the time zone or use the exchange's time zone.
Time Zone Offset: Adjust the time zone via a UTC offset.
2.3. Day Change Detection
The indicator automatically detects the change between trading days to ensure data is correctly assigned.
3. Analysis of Price Declines and Rises
3.1. Calculation of Largest Declines and Rises
The indicator compares the high and low of each hour to determine the largest decline and rise within a trading day.
3.2. Frequency Counting
For each hour of the day, the number of times the largest declines and rises occur is counted to identify the hours with the most significant price movements.
3.3. Data Sorting
The hours are sorted by the number of occurrences of declines and rises to highlight the most frequent hours. This sorting was implemented using the MA Sorter function, inspired by Duyck's Array Sorter. Special thanks to Duyck for providing the Array Sorter on TradingView, which greatly influenced this feature
4. Interpretation and Trading Applications
4.1. Identifying High Volatility Periods
The hours identified by the indicator as having the most frequent and significant price movements are typically periods of high volatility. These periods are crucial for traders who seek to capitalize on market fluctuations.
4.2. Determining Optimal Trade Entries
Long Trades: The hours with the most significant price rises can be used to identify optimal times to enter long positions.
Short Trades: Conversely, the hours with the most significant price declines can indicate good opportunities for short trades.
4.3. Display of Top 5 Hours
The indicator shows the five hours with the most declines and rises.
Depending on the selected display option, this information is shown either as a text label or as a table in the chart.
4.4. Background Color
The background color of the chart changes at day change to clearly mark it.
5. Application of the Indicator
5.1. Trading Use
Traders can use the indicator to identify time windows with high volatility and adjust their trading strategies accordingly. This allows for more informed decisions on when to go long or short, depending on the market conditions during those hours.
5.2. Customization Options
Various input options allow the user to customize the indicator to fit personal needs and trading hours.
6. Summary
The "Decline and Rise Detective " indicator is a powerful tool for analyzing hourly price movements in the markets. By providing detailed information on the most frequent hours for significant price declines and rises, this indicator offers valuable insights into periods of high volatility. Traders can use this data to make more informed decisions on entering long or short trades. It is particularly effective when used with timeframes of 1 hour or greater.
Best regards and happy trading
Chervolino
Machine Learning Support and Resistance [AlgoAlpha]🚀 Elevate Your Trading with Machine Learning Dynamic Support and Resistance!
The Machine Learning Dynamic Support and Resistance by AlgoAlpha leverages advanced machine learning techniques to identify dynamic support and resistance levels on your chart. This tool is designed to help traders spot key price levels where the market might reverse or stall, enhancing your trading strategy with precise, data-driven insights.
Key Features:
🎯 Dynamic Levels: Continuously adjusts support and resistance levels based on real-time price data using a K-means clustering algorithm.
🧠 Machine Learning: Utilizes clustering methods to optimize the identification of significant price zones.
⏳ Configurable Lookback Periods: Customize the training length and confirmation length for better adaptability to different market conditions.
🎨 Visual Clarity: Clearly distinguish bullish and bearish zones with customizable color schemes.
📉 Trailing and Fixed Levels: Option to display both trailing and fixed support/resistance levels for comprehensive analysis.
🚮 Auto-Cleaning: Automatically removes outdated levels after a specified number of bars to keep your chart clean and relevant.
Quick Guide to Using the Machine Learning Dynamic Support and Resistance Indicator
Maximize your trading with this powerful indicator by following these streamlined steps! 🚀✨
🛠 Add the Indicator: Add the indicator to favorites by pressing the star icon. Customize settings like clustering training length, confirmation length, and whether to show trailing or fixed levels to fit your trading style.
📊 Market Analysis: Monitor the dynamic levels to identify potential reversal points. Use these levels to inform entry and exit points, or to set stop losses.
How It Works
This indicator employs a K-means clustering algorithm to dynamically identify key price levels based on the historical price data within a specified lookback window. It starts by initializing three centroids based on the highest, lowest, and an average between the highest and lowest price over the lookback period. The algorithm then iterates through the price data to cluster the prices around these centroids, dynamically adjusting them until they stabilize, representing potential support and resistance levels. These levels are further confirmed based on a separate confirmation length parameter to identify "fixed" levels, which are then drawn as horizontal lines on the chart. The script continuously updates these levels as new data comes in, while also removing older levels to keep the chart clean and relevant, offering traders a clear and adaptive view of market structure.
ChartArt-Bankniftybuying5minName: ChartArt-BankNifty Buying Strategy (5-Minute)
Timeframe: 5-Minute Candles
Asset: BankNifty (Indian Stock Market Index)
Trading Hours: 9:30 AM - 2:45 PM IST (Indian Standard Time)
This strategy is designed for BankNifty intraday traders who want to capitalize on short-term price movements within a defined trading window. It combines technical indicators like Simple Moving Averages (SMA), Relative Strength Index (RSI), and candlestick patterns to identify potential buy signals during intraday downtrends. The strategy employs specific entry, stop-loss, and target conditions to manage trades effectively and minimize risk.
Technical Indicators Used
Simple Moving Averages (SMA):
EMA7: 7-period SMA on closing price.
EMA5: 5-period SMA on closing price.
Purpose: Used to identify the intraday trend by comparing short-term moving averages. The strategy focuses on situations where the market is in a minor downtrend, indicated by EMA5 being below EMA7.
Relative Strength Index (RSI):
RSI14: 14-period RSI, a momentum oscillator that measures the speed and change of price movements.
SMA14: 14-period SMA of the RSI.
Purpose: RSI is used to identify potential reversal points. The strategy looks for situations where the RSI is below its own moving average, suggesting weakening momentum in the downtrend.
Candlestick Patterns:
Relaxed Hammer or Doji (2nd Candle): A pattern where the second candle in a 3-candle sequence shows a potential reversal signal (Hammer or Doji), indicating indecision or a potential turning point.
Bearish 1st Candle: The first candle is bearish, setting up the context for a potential reversal.
Bullish 3rd Candle: The third candle must be bullish with specific characteristics (closing near the high, surpassing the previous high), confirming the reversal.
Strategy Conditions
Time Condition:
The strategy is only active during specific hours (9:30 AM to 2:45 PM IST). This ensures that trades are only taken during the most liquid hours of the trading day, avoiding potential volatility or lack of liquidity towards market close.
Intraday Downtrend Condition:
EMA5 < EMA7: Indicates that the market is in a minor downtrend. The strategy looks for reversal opportunities within this trend.
RSI Condition:
RSI14 <= SMA14: Indicates that the current RSI value is below its 14-period SMA, suggesting potential weakening momentum, which can precede a reversal.
Candlestick Patterns:
1st Candle: Must be bearish, setting up the context for a potential reversal.
2nd Candle: Must either be a Hammer or Doji, indicating a potential reversal pattern.
3rd Candle: Must be bullish, with specific characteristics (closing near the high, breaking the previous high, etc.), confirming the reversal.
RSI Crossover Condition:
A crossover of the RSI over its SMA in the last 5 periods is also checked, adding further confirmation to the reversal signal.
Entry and Exit Rules
Entry Signal:
A buy signal is generated when all the conditions (time, intraday downtrend, bearish 1st candle, hammer/doji 2nd candle, bullish 3rd candle, and RSI condition) are met. The trade is entered at the high of the bullish third candle.
Stop Loss:
The stop loss is calculated based on the difference between the entry price and the low of the second candle. If this difference is greater than 90 points, the stop loss is placed at the midpoint of the second candle's range (average of high and low). Otherwise, it is placed at the low of the second candle.
Target 1:
The first target is set at 1.8 times the difference between the entry price and the stop loss. When this target is hit, half of the position is exited to lock in partial profits.
Target 2:
The second target is set at 3 times the difference between the entry price and the stop loss. The remaining position is exited at this point, or if the price hits the stop loss.
Originality and Usefulness
This strategy is original in its combination of multiple technical indicators and candlestick patterns to identify potential reversals in a specific intraday timeframe. By focusing on minor downtrends and utilizing a 3-candle reversal pattern, the strategy seeks to capture quick price movements with a structured approach to risk management.
Key Benefits:
High Precision: The strategy’s multi-step filtering process (time condition, trend confirmation, candlestick pattern analysis, and momentum evaluation via RSI) increases the likelihood of accurate trade signals.
Risk Management: The use of a dynamic stop-loss based on candle characteristics, combined with partial profit-taking, allows traders to lock in profits while still giving the trade room to develop further.
Structured Approach: The strategy provides a clear, rule-based system for entering and exiting trades, which can help remove emotional decision-making from the trading process.
Charts and Signals
The strategy produces signals in the form of labels on the chart:
Buy Signal: A green label is plotted below the candle that meets all entry conditions, indicating a potential buy opportunity.
Stop Loss (SL): A red dashed line is drawn at the stop-loss level with a label indicating "SL".
Target 1 (1st TG): A blue dashed line is drawn at the first target level with a label indicating "1st TG".
Target 2 (2nd TG): Another blue dashed line is drawn at the second target level with a label indicating "2nd TG".
These visual aids help traders quickly identify entry points, stop loss levels, and target levels on the chart, making the strategy easy to follow and implement.
Backtesting and Optimization
Backtesting: The strategy can be backtested on TradingView using historical data to evaluate its performance. Traders should consider testing across different market conditions to ensure the strategy's robustness.
Optimization: Parameters such as the RSI period, moving averages, and target multipliers can be optimized based on backtesting results to refine the strategy further.
Conclusion
The ChartArt-BankNifty Buying Strategy offers a well-rounded approach to intraday trading, focusing on capturing reversals in minor downtrends. With a strong emphasis on technical analysis, precise entry and exit rules, and robust risk management, this strategy provides a solid framework for traders looking to engage in intraday trading on BankNifty.
9:20 5 Min Candle Levels with AlertsThe 9:20 AM 5-Minute Candle refers to the candlestick that represents the price action of a financial asset between 9:20 AM and 9:25 AM on a trading day. This candle is observed on a 5-minute chart and captures all the market activity during this specific time window.
Description:
Timeframe: 9:20 AM to 9:25 AM (5-minute interval).
Opening Price: The price at 9:20 AM when the 5-minute period begins.
Closing Price: The price at 9:25 AM when the 5-minute period ends.
High: The highest price achieved during these five minutes.
Low: The lowest price reached during these five minutes.
Body: The distance between the opening and closing prices. A longer body indicates stronger buying or selling pressure, while a shorter body reflects more market indecision.
Wick (Shadow): The lines extending above and below the body, representing the range between the high and low prices during this period. Long wicks suggest higher volatility, while shorter wicks indicate more stable price movements.
Significance:
Bullish Candle: If the closing price is higher than the opening price, it suggests positive momentum and buying interest within this 5-minute period.
Bearish Candle: If the closing price is lower than the opening price, it signals negative momentum and selling pressure.
Market Sentiment: The 9:20 AM 5-minute candle can provide insight into the early sentiment of the market, often influencing the trading strategy for the rest of the day.
Volatility Indicator: The length of the wicks can help traders assess the volatility and potential risk during these five minutes.
This candle is particularly important for day traders and scalpers who rely on short-term price movements to make trading decisions.
[KVA] KMACDKMACD Indicator: Advanced Market Analysis Through Central Tendency Metrics
The KMACD (KAMVIA Moving Average Convergence Divergence) indicator is an advanced, multi-dimensional tool designed to provide traders and analysts with a deeper understanding of market dynamics. By integrating the classical MACD framework with statistical measures of central tendency, KMACD offers a sophisticated approach to identifying trends, reversals, and potential trading opportunities.
Key Features of the KMACD Indicator:
1. Enhanced MACD Calculation :
- The KMACD employs dual moving averages (fast and slow) of user-defined types (SMA, EMA, WMA) to calculate the MACD line, which represents the difference between these moving averages. This traditional approach is further enhanced by customizable signal smoothing, allowing users to fine-tune the sensitivity of the indicator.
2. Central Tendency Metrics :
- The indicator integrates additional statistical measures, such as Mean, Median, Mode, Standard Deviation, and Variance, calculated over a rolling window. These metrics provide insights into the central tendencies of the MACD values, helping traders understand the overall trend direction and the dispersion of price movements around the trend.
3. RSI-Like Oscillator :
- A unique RSI-like value derived from the MACD line is included to highlight overbought and oversold conditions. This offers a dual-layered perspective, combining the power of MACD and RSI methodologies, to signal potential market extremes with greater precision.
4. Customizable Visual Elements :
- KMACD allows users to toggle the visibility of the MACD line, Signal line, and Histogram, providing flexibility in how the data is presented. The histogram dynamically changes color—green when above zero, indicating bullish momentum, and red when below zero, indicating bearish momentum.
5. Horizontal Line Customization :
- The indicator includes customizable horizontal lines for the zero level, overbought, and oversold thresholds. These lines serve as visual cues to identify key price levels and market conditions.
6. Adaptive to Various Market Conditions :
- KMACD's comprehensive features make it adaptable to various market conditions, from trending markets to sideways consolidations. Whether you're looking to capture momentum shifts or identify potential reversal points, KMACD provides the analytical power needed to make informed trading decisions.
How to Use KMACD:
- Trend Identification : Use the MACD line in conjunction with central tendency measures (Mean, Median, Mode) to gauge the overall market trend and its strength. A rising MACD line, supported by higher mean and median values, typically indicates an uptrend.
- Momentum Analysis : The histogram and RSI-like value help in identifying the momentum behind price movements. Positive histogram bars suggest increasing bullish momentum, while negative bars suggest increasing bearish momentum.
- Overbought/Oversold Conditions : Monitor the RSI-like oscillator and the overbought/oversold levels to detect when the market may be poised for a reversal.
- Divergence Detection : Look for divergences between the MACD line and price action, supported by the central tendency measures, to spot potential reversal points.
Conclusion
The KMACD indicator is more than just a traditional MACD; it’s a comprehensive tool designed to cater to both novice and experienced traders. By incorporating central tendency metrics and customizable features, KMACD stands out as a versatile and powerful indicator that enhances market analysis and trading strategies. Whether you're navigating volatile markets or steady trends, KMACD offers the precision and depth needed to stay ahead.
Smoothed Heiken Ashi Strategy Long OnlyThis is a trend-following approach that uses a modified version of Heiken Ashi candles with additional smoothing. Here are the key components and features:
1. Heiken Ashi Modification: The strategy starts by calculating Heiken Ashi candles, which are known for better trend visualization. However, it modifies the traditional Heiken Ashi by using Exponential Moving Averages (EMAs) of the open, high, low, and close prices.
2. Double Smoothing: The strategy applies two layers of smoothing. First, it uses EMAs to calculate the Heiken Ashi values. Then, it applies another EMA to the Heiken Ashi open and close prices. This double smoothing aims to reduce noise and provide clearer trend signals.
3. Long-Only Approach: As the name suggests, this strategy only takes long positions. It doesn't short the market during downtrends but instead exits existing long positions when the sell signal is triggered.
4. Entry and Exit Conditions:
- Entry (Buy): When the smoothed Heiken Ashi candle color changes from red to green (indicating a potential start of an uptrend).
- Exit (Sell): When the smoothed Heiken Ashi candle color changes from green to red (indicating a potential end of an uptrend).
5. Position Sizing: The strategy uses a percentage of equity for position sizing, defaulting to 100% of available equity per trade. This should be tailored to each persons unique approach. Responsible trading would use less than 5% for each trade. The starting capital used is a responsible and conservative $1000, reflecting the average trader.
This strategy aims to provide a smooth, trend-following approach that may be particularly useful in markets with clear, sustained trends. However, it may lag in choppy or ranging markets due to its heavy smoothing. As with any strategy, it's important to thoroughly backtest and forward test before using it with real capital, and to consider using it in conjunction with other analysis tools and risk management techniques.
This has been created mainly to provide data to judge what time frame is most profitable for any single asset, as the volatility of each asset is different. This can bee seen using it on AUXUSD, which has a higher profitable result on the daily time frame, whereas other currencies need a higher or lower time frame. The user can toggle between each time frame and watch for the higher profit results within the strategy tester window.
Other smoothed Heiken Ashi indicators also do not provide buy and sell signals, and only show the change in color to dictate a change in trend. By adding buy and sell signals after the close of the candle in which the candle changes color, alerts can be programmed, which helps this be a more hands off protocol to experiment with. Other smoothed Heiken Ashi indicators do not allow for alarms to be set.
This is a unique HODL strategy which helps identify a change in trend, without the noise of day to day volatility. By switching to a line chart, it removes the candles altogether to avoid even more noise. The goal is to HODL a coin while the color is bullish in an uptrend, but once the indicator gives a sell signal, to sell the holdings back to a stable coin and let the chart ride down. Once the chart gives the next buy signal, use that same capital to buy back into the asset. In essence this removes potential losses, and helps buy back in cheaper, gaining more quantitity fo the asset, and therefore reducing your average initial buy in price.
Most HODL strategies ride the price up, miss selling at the top, then riding the price back down in anticipation that it will go back up to sell. This strategy will not hit the absolute tops, but it will greatly reduce potential losses.
Bitcoin Production CostFirst inspired by the amazing @capriole_charles, I decided to create my own version of calculating the Bitcoin production cost and to share it with you guys.
One of the main difference is the electricity cost calculation. I used a country-specific input system that calculates the weighted electricity cost leveraged by the distribution of the Bitcoin network hashrate. I like the fact that it requires little updating although it is less realistic for past calculations (further in the past production costs seems too low).
How to use:
- Add the indicator to your chart.
- Adjust the inputs if needed. Update the percentage of Bitcoin network Hashrate or electricity Cost per countries. Update the mining hardware stats to the most recent hardware. For example I used a Bitcoin Miner S21 Pro stats.
- Check the multiple variables in the data window.
- Turn on/off the halving event in the style tab
ICT Premium/DiscountThis script indicator prints lines for the highest, lowest and middle price in a selected time period (in days).
With that you can easily see wheter the price is currently high, low or balanced compared to the prices in the selected time period.
I also added a gray dotted vertical line to the chart which represents the beginning of your selected time period
You can choose the time period on your own and you can also customize the color and style of the lines.
Your lines may get printed in a separate window. To fix this, click on the indicator and select
Move to -> existing pane above
Your lines also may stay stuck on the same place on the chart and are not fixed to a high/low. To fix this, right-click on the left price scale and select
Merge all scales into one -> on the right