How To Set Backtest Date RangeExample how to select and set date range window to be backtested. Normally when you change chart period it changes the number of days being backtested which means as you increas the chart period (for example from 5min to 15min) you also increase the number of days traded, so you can not compare apples to apples for which period would yield best returns for your strategy. Now you can. Incorporate this code replacing buy and sell with your strategy, then simply input the From and To dates in Format -> Inputs, and then change the chart period to view updated results.
NOTE: There is a limit in backtesting to 2000 orders, so please be aware of this when setting your date ranges. If you set your range too high, you may be exceeding this limit on some periods and not on others, so this would yield incorrect comparison of returns per period. If you see in your backtesting results that you are nearing this limit for one of your periods you are testing, then reduce the date range to a smaller number of days.
Enjoy!
(Thanks to @Gesundheit "Adeel" for pointing me in the right direction on this!)
Cerca negli script per "range"
Adaptive Range Scalper - KetBotAIThe Adaptive Scalper is designed to dynamically adjust entry, take-profit (TP), and stop-loss (SL) levels based on the latest market price. It combines multiple tools to provide traders with actionable insights, suitable for a range of trading styles and timeframes.
How the Indicator Works
Dynamic Levels:
- Yellow Dotted Line: Represents the entry level, following the latest price dynamically.
- Green Line: The Take Profit (TP) level, calculated as a multiple of the current price, adapts in real-time.
- Red Line: The Stop Loss (SL) level, placed below the price and also dynamically adjusts.
Bollinger Bands:
Provides context for market volatility and potential overbought/oversold zones.
Narrowing bands signal consolidation, while expanding bands indicate increased volatility.
Buy and Sell Signals:
Buy Signal: Triggered when the price crosses above the lower Bollinger Band.
Sell Signal: Triggered when the price crosses below the upper Bollinger Band.
These signals help traders time entries and exits based on momentum shifts.
Risk/Reward Analysis:
Visual shading shows the favorable risk/reward zone between the stop loss and take profit levels.
Timeframe Suggestions
Short-Term Traders (Scalping):
Use on 5-minute to 15-minute charts.
Focus on high-volatility periods for quick entries and exits.
Intraday Traders:
Ideal for 30-minute to 1-hour charts.
Provides more stable signals and less noise.
Swing Traders:
Best suited for 4-hour or daily charts.
Captures broader trends with fewer signals, allowing for larger moves.
Tool Combination
Volume Profile:
Combine with volume-based tools to confirm key support/resistance zones around TP and SL levels.
Trend Indicators:
Use with Moving Averages (e.g., 20-period or 50-period) to identify the broader trend direction.
Example: Only take buy signals in an uptrend and sell signals in a downtrend.
Momentum Oscillators:
Pair with tools like RSI or MACD to avoid entering overbought/oversold conditions.
Support/Resistance Lines:
Manually mark significant levels to confirm alignment with the indicator’s TP and SL zones.
Useful Advice for Traders
Risk Management:
- Always assess the risk/reward ratio; aim for at least 1:2 (risking 1 to gain 2).
- Adjust the multiplier to match your trading style (e.g., higher multiplier for swing trades, lower for scalping).
Avoid Overtrading:
Use the indicator in conjunction with clear rules to avoid false signals during low-volatility periods.
Monitor market volatility:
Pay attention to narrowing Bollinger Bands, which signal consolidations. Avoid trading until a breakout occurs.
Test on Demo Accounts:
Practice using the indicator on a demo account to understand its behavior across different assets and timeframes.
Focus on High-Liquidity Markets:
For the best results, trade highly liquid instruments like major currency pairs, gold, or stock indices.
Summary
The Adaptive Range Indicator dynamically adjusts to market conditions, offering clear entry and exit levels. By combining it with Bollinger Bands and other tools, traders can better navigate market trends and avoid noise. It’s versatile across multiple timeframes and assets, making it a valuable addition to any trader’s toolkit.
Katalyst's Opening Range BreakoutKatalyst's Opening Range Breakout + No Trade Zone
📜 Overview:
This indicator allows traders to visualize the high and low of the opening range for a user-selected timeframe (e.g., 30s, 1m, 5m, 15m). It features fully customizable lines, labels, and an optional **No Trade Zone** fill to help you identify breakout levels with ease.
---
🎯 Key Features:
1. **Customizable Opening Range**:
- Select your preferred opening range duration: **30 seconds, 1 minute, 2 minutes, 5 minutes, 10 minutes, or 15 minutes**.
- The indicator calculates and plots the **high** and **low** of the selected opening range.
2. **Dynamic Line Styling**:
- Choose the **line color**, **transparency**, and **style**: **Solid, Dashed, or Dotted**.
- Lines extend to the right of the chart for clarity.
3. **No Trade Zone** *(Optional / Disabled by default)*:
- When enabled, fills the area between the high and low lines with a customizable **color and transparency**.
- Helps visually identify consolidation areas where trading might be avoided.
4. **Labels for Precision**:
- Clearly displays the **Opening Range High** and **Low** values.
- Labels are color-coded and positioned dynamically for easy interpretation.
5. **Clean and Efficient Updates**:
- The indicator deletes old lines, labels, and fills before creating new ones, ensuring a clutter-free chart.
---
⚙️ How to Use:
1. **Select Your Timeframe**:
- From the settings, choose your desired opening range duration: 30s, 1m, 2m, 5m, 10m, or 15m.
2. **Customize the Visuals**:
- Adjust line color, style, and transparency.
- Enable the **No Trade Zone** for a transparent background fill between the high and low lines.
3. **Interpret the Breakout**:
- Watch for price movements above or below the **opening range** to identify potential breakout opportunities.
---
🛠 Settings:
Opening Range Duration: Select the timeframe for the opening range (30s, 1m, 2m, 5m, 10m, 15m).
Line Color: Set the color of the range lines.
Line Transparency: Adjust the transparency of the lines (0 = solid, 100 = invisible).
Line Style: Choose line style: Solid, Dashed, or Dotted.
Label Colors: Customize the label colors for the high and low values.
Enable No Trade Zone: Fill the area between high and low lines with a transparent color.
No Trade Zone Color: Set the fill color for the no trade zone.
No Trade Zone Transparency: Adjust the transparency of the no trade zone fill.
---
📈 Ideal For
Day traders and scalpers looking to trade **breakouts**.
Traders who want to identify areas of consolidation visually.
Anyone who relies on the **opening range** for their trading strategy.
---
🔍 Example Usage:
Set the opening range to **5 minutes** and enable the **No Trade Zone** with a light red fill.
Watch for price to break above or below the high/low lines to signal potential trade opportunities.
---
✨ Why Use This Indicator?
This script simplifies your breakout strategy by providing a clear, visually appealing representation of the opening range. The flexible customization options and the optional **No Trade Zone** make it a powerful tool for identifying high-probability trades.
---
Let me know if you need any additional tweaks or clarifications for this description. It's all set to help traders understand and use your powerful script! 🚀📈
Monday range by MatboomThe "Monday Range" Pine Script indicator calculates and displays the lowest and highest prices during a specified trading session, focusing on Mondays. Users can configure the trading session parameters, such as start and end times and time zone. The indicator visually highlights the session range on the chart by plotting the session low and high prices and applying a background color within the session period. The customizable days of the week checkboxes allow users to choose which days the indicator should consider for analysis.
Session Configuration:
session = input.session("0000-0000", title="Trading Session")
timeZone = input.string("UTC", title="Time Zone")
monSession = input.bool(true, title="Mon ", group="Trading Session", inline="d1")
tueSession = input.bool(true, title="Tue ", group="Trading Session", inline="d1")
Users can configure the trading session start and end times and the time zone.
Checkboxes for Monday (monSession) and Tuesday (tueSession) sessions are provided.
SessionLow and SessionHigh Functions:
SessionLow(sessionTime, sessionTimeZone=syminfo.timezone) => ...
SessionHigh(sessionTime, sessionTimeZone=syminfo.timezone) => ...
Custom functions to calculate the lowest (SessionLow) and highest (SessionHigh) prices during a specified trading session.
InSession Function:
InSession(sessionTimes, sessionTimeZone=syminfo.timezone) => ...
Determines if the current bar is inside the specified trading session.
Days of Week String and Session String:
sessionDays = ""
if monSession
sessionDays += "2"
if tueSession
sessionDays += "3"
tradingSession = session + ":" + sessionDays
Constructs a string representing the selected days of the week for the session.
Fetch Session Low and High:
sessLow = SessionLow(tradingSession, timeZone)
sessHigh = SessionHigh(tradingSession, timeZone)
Calls the custom functions to obtain the session low and high prices.
Plot Session Low and High and Background Color for Session
plot(sessLow, color=color.red, title="Session Low")
plot(sessHigh, color=color.red, title="Session Low")
bgcolor(InSession(tradingSession, timeZone) ? color.new(color.aqua, 90) : na)
Days in rangeThis script is a little widget that I made to do some homework on the VIX.
As you can see in the chart I was analyzing the 2008 market crash and the stats that followed it after until the market started to recover.
You can see that theory in my "Ideas" tab.
This is an interactive set of lines that you can use to count the the bars inside and outside of your chosen range, and the percentage outside that range.
You should initially enter the price range of your product in the menu and set some arbitrary dates that you can easily see on your chart.
Drag and drop the lines around to suit what price and the dates you are analyzing.
The table will display the bar count inside and outside of the range, the total bars, and the percentage outside that range.
I personally used this as a tool to study the overall average of the product, compared with the behavior during major market events.
It is currently my opinion that post 2020 analysis needs to take into account the behavior of any given product prior to 2020 when the
VIX was in its comfort zone. Not to say that a price valuation hasn't been set, but that the movement to that price was outside of "Normal Market Conditions,"
and the time factor to return to that value might be skewed. Other factors would need to be considered at that point pertaining to your specific product or corelating indicator.
I could see this tool being useful to Forex and commodities traders. But that isn't my field so that that for what it is. I do think it would perform best on something that is more
pegged to a price range. I personally would use it on product's, like the VIX, that I use as an indicator product. That is what it was designed for.
But I suppose it could be used for Mean price and time related analysis, maybe with a Vwap, SMA or other breakout style indicators.
Volume analysis might be pretty sporty. Possibly time patterns... the possibilities could be endless. Or... limited.
I am publishing this for my trade group so that it can be tinkered with to find other helpful ways to use it.
If anyone finds something interesting with other indicators, please drop a comment below and I could consider creating a script to integrate with this tool.
Body / Range %Body / Range is a volatility indicator that shows how many percentages the body candle occupies the range.
The ratio tells us about the health and confidence of the current candlestick.
Since overall candle Range is always bigger than the body range, Body/Range indicator will always fluctuate inside a range of 0 and 100%.
I didn't use True Range because it considers gaps and the ratio won't be considering individual candles. Therefore, I used high - low and identified it as Range.
In this function, the wicks play obviously role in determining the ratio too without its variable separately in the formula. I wouldn't use wicks here because Range = body + total wicks anyway. It already covers the variable. If I made the ratio with Body / Total Wicks, we wouldn't have stable 0 - 100% range of the indicator by the way. So it's fully justified dividing Body by Range to get some summarized Candle Metrics.
Logically we assume that if wicks are relatively bigger than body then the ratio will be relatively smaller and vice versa.
Change TF of the indicator is possible. For example, 3 months per bar would look like this:
Michigandolf's 30min Opening Range (w/Extensions)See previous version for explanation of the 30min Opening Range:
This new version is for users that prefer to see the Opening Range Extensions.
The extensions are based on the distance from the Opening Range High to the Mid Point (or Low to the Mid Point).
Previous Days RangesPrevious Days Ranges
Simply plots out market ranges of previous days price action, of which are the following:
Previous Day High
Previous Day Low
Previous Day Extended High
Previous Day Extended Low
Supports adjustments of timeframes, for different time zones, and style.
ATR Timeframe RangeThis indicator shows the ATR range on the daily or any other timeframe on your current chart. All settings are fully customize-able.
5 Sessions RangeThis script averages the range of the previous 5 sessions and displays it on the chart
The sessions are adjustable
True Rolling Pivot Range IndicatorHere is the actual 3 day rolling pivot range indicator as detailed in Mark Fisher's book The Logical Trader.
CD_Average Daily Range Zones- highs and lows of the dayUses daily average ranges of 5 and 10 (most used) as buy (support) and highs (resistance) areas - half ranges used in calculations for a more accurate "forecast" of the H and L . Uses open but not close, so it does not repaint - experimental
Shadow Range IndexShadow Range Index (SRI) introduces a new concept to calculate momentum, shadow range.
What is range?
Traditionally, True Range (TR) is the current high minus the current low of each bar in the timeframe. This is often used successfully on its own in indicators, or as a moving average in ATR (Average True Range).
To calculate range, SRI uses an innovative calculation of current bar range that also considers the previous bar. It calculates the difference between its maximum upward and maximum downward values over the number of bars the user chooses (by adjusting ‘Range lookback’).
What is shadow range?
True Range (TR) uses elements in its calculation (the highs and lows of the bar) that are also visible on the chart bars. Shadow range does not, though.
SRI calculates shadow range in a similar formula to range, except that this time it works out the difference between the minimum upward and minimum downward movement. This movement is by its nature less than the maximums, hence a shadow of it. Although more subtle, shadow range is significant, because it is quantifiable, and goes in one direction or another.
Finally, SRI smoothes shadow range and plots it as a histogram, and also smoothes and plots range as a signal line. Useful up and down triangles show trend changes, which optionally colour the chart bars.
Here’s an example of a long trade setup:
In summary, Shadow Range Index identifies and traces maximum and minimum bar range movement both up and down, and plots them as centred oscillators. The dynamics between the two can provide insights into the chart's performance and future direction.
Credit to these authors, whose MA or filters form part of this script:
@balipour - Super Smoother MA
@cheatcountry - Hann window smoothing
@AlgoAlpha - Gaussian filter
Pre Market \ Opening Range High LowGreen vertical lines are showing pre market open and then the opening range as the first hour of market NYSE market open
Pre market high and low are blue lines | intraday opening range high low are in white
Trades are taken in the current direction above | below range breaks with the direction of price action using the moving averages
Price breaking through moving averages and a range is the optimal trade to enter - exit at next range for target - stop loss below the lower | higher moving average depending on short or long
A break above or below the intraday high or low and pre market high or low can give massive profits trailing your stop loss as price runs
Using MA 5 and 12 to filter out entries and exits above or below the ranges short or long is also another strategy to implement
BEST TIME FRAME TO USE IS 5 MINUTE
VIX RangeThis indicator shows the daily expected trading range of the instrument.
An upper and lower line denotes the range. It is calulated based on the volatility index selected (NSE:India VIX is used by default). Also it shows developing upper and lower line for the next trading day.
Non-directional option strategies (like straddle, strangle) can be performed based on the expected trading range.
Session's First Bar RangeFirst Bar is crucial when there is gap up or gap down opening. It is recommended to use 15m Timeframe for better use.
Crossing this range signifies the absorption of existing buyers/sellers in the opening session and sometimes decide the trend onwards.
High Low Open Mid Ranges & Levels (Multi-Timeframe)This indicator automatically plots the chosen timeframe's high, low, mid point and open. These levels on higher timeframes act as support and resistance levels on lower timeframes, helping find entries, stoploss and profit targets.
Most common timeframes to choose are Daily, 1W, 1M, and 3M. Other timeframes that are good include, 2D, 2W and 2M.
For example, you can see in the snapshot below, we are on the 4hr TF showing those levels from the 2W. This historical 2W zone (open and mid) was (and currently still is) resistance. You can see it also provided a good entry to go short.
This is also useful for intraday scalping. Below, we are on the 15min TF with levels set on the 2D timeframe. You can see how the Open and Mid levels acted as resistance, providing good entries on range trades, with take profit set at the previous 2D low.
There is also a table which tells you all the main TFs high, low, open, and mid levels. They are the most important ones to look out for.
This indicator should not be used in isolation; it is best to pair it up with other TA such as orderblocks, S/D zones, S&R or overlay indicators.
Trading Range FinderWhat is it?
This indicator is a visual representation of the ADX indicator that shows where the areas of weak trends are. Anything shaded in a gray background implicates that the chosen market is experiencing a weak trend.
These areas of weak trends are seen typically when ADX drops below 20-25 but this script is customizable to change where you want that threshold.
Why did I make it?
I made this indicator to be used in combination with other trading indicators to eventually be used to identify when a market is range-bound/sideways.
Since momentum-based indicators can be "thrown off" in sideways market conditions, I will be using this visual indicator to identify when it is best to filter out a trade signal in a momentum-based strategy.
BERLIN Range Index | Panel versionThe original problem: The choppiness index is great at finding ranging markets, but it is sometimes very slow, which means most of the time it only catches the end of a trend.
This indicator tries to solve this. It uses the choppiness index and filters it using a factor that is based on the standard deviation of the ATR.
The ATR based filter is calculated by first calculating the running standard deviation of the ATR, and then looking at that in relation to its recent low to find a filtering factor to use on the choppiness index. This makes the choppiness index more reactive to trends, but also slightly more likely to missidentify ranges.
This is the panel version of the indicator. It plots the index and min/max values, as well as background colors to tell you when it thinks the market is ranging or trending.
Yellow = Trending
Transparent gray = Ranging
BERLIN Range Index | Bar color versionThe original problem: The choppiness index is great at finding ranging markets, but it is sometimes very slow, which means most of the time it only catches the end of a trend.
This indicator tries to solve this. It uses the choppiness index and filters it using a factor that is based on the standard deviation of the ATR.
The ATR based filter is calculated by first calculating the running standard deviation of the ATR, and then looking at that in relation to its recent low to find a filtering factor to use on the choppiness index. This makes the choppiness index more reactive to trends, but also slightly more likely to missidentify ranges.
This is the bar color version of the indicator. It changes the color of the bars when it it thinks the market is ranging and when it thinks it is trending.
Yellow = Trending
Transparent gray = Ranging
MG - Range trader - 1.0This one is a bit of an experiment..
The theory is, if you have an asset that you firmly believe will rise in the future for fundamental reasons and are happy to hold until that happens i.e. a be a position trader, you can take advantage of market volatility at the same time in a relatively safe way, so theoretically, you profit when the price goes up or down
E.g. You have $1000, an asset in which you want to become a position trader and you are happy to either make more money or more of the asset as you believe that will make you more money in the future, you could wait until a decent retracement, maybe around a good support level, then buy $500 of the asset and simply sell if it goes up by X, buy if it goes down by X. If you keep doing this, you will end up with either with more of the asset or more money. You have a sure gain either way (if you are happy to have either money or asset)
There are some considerations:
The higher the trade size, the faster profit compounds and the faster you exhaust your available buys and sells
- E.g. If asset is $100, you have $500 and you plan to buy / sell every $10 change, if the asset drops straight to $40, your last buy will be at $50, at which point, the asset is still dropping. But it you only plan to buy / sell $5 every $10 price, you will be able to buy right down to 0.
In times of strong trend, it may be better to avoid this approach altogether as there may not be so much oscillation or at least to use a small if not minimum order size.
Application:
The buy and sell triggers can be connected using autoview to convert this indicator into a range trading bot
HTF Candle Range Box (Fixed to HTF Bars)### **Higher Timeframe Candle Range Box (HTF Box Indicator)**
This indicator visually highlights the price range of the most recently closed higher-timeframe (HTF) candle, directly on a lower-timeframe chart. It dynamically adjusts based on the user-selected HTF setting (e.g., 15-minute, 1-hour) and ensures that the box is displayed only on the bars that correspond to that specific HTF candle’s duration.
For instance, if a trader is on a **1-minute chart** with the **HTF set to 15 minutes**, the indicator will draw a box spanning exactly 15 one-minute candles, corresponding to the previous 15-minute HTF candle. The box updates only when a new HTF candle completes, ensuring that it does not change mid-formation.
---
### **How It Works:**
1. **Retrieves Higher Timeframe Data**
The script uses TradingView’s `request.security` function to pull **high, low, open, and close** values from the **previously completed HTF candle** (using ` ` to avoid repainting). It also fetches the **high and low of the candle before that** (using ` `) for comparison.
2. **Determines Breakout Behavior**
It compares the **last closed HTF candle** to the **one before it** to determine whether:
- It **broke above** the previous high.
- It **broke below** the previous low.
- It **broke both** the high and low.
- It **stayed within the previous candle’s range** (no breakout).
3. **Classifies the Candle & Assigns Color**
- **Green (Bullish)**
- Closes above the previous candle’s high.
- Breaks below the previous candle’s low but closes back inside the previous range **if it opened above** the previous high.
- **Red (Bearish)**
- Closes below the previous candle’s low.
- Breaks above the previous candle’s high but closes back inside the previous range **if it opened below** the previous low.
- **Orange (Neutral/Indecisive)**
- Stays within the previous candle’s range.
- Breaks both the high and low but closes inside the previous range without a clear bias.
4. **Box Placement on the Lower Timeframe**
- The script tracks the **bar index** where each HTF candle starts on the lower timeframe (e.g., every 15 bars on a 1-minute chart if HTF = 15 minutes).
- It **only displays the box on those bars**, ensuring that the range is accurately reflected for that time period.
- The box **resets and updates** only when a new HTF candle completes.
---
### **Key Features & Advantages:**
✅ **Clear Higher Timeframe Context:**
- The indicator provides a structured way to analyze HTF price action while trading in a lower timeframe.
- It helps traders identify **HTF support and resistance zones**, potential **breakouts**, and **failed breakouts**.
✅ **Fixed Box Display (No Mid-Candle Repainting):**
- The box is drawn **only after the HTF candle closes**, avoiding misleading fluctuations.
- Unlike other indicators that update live, this one ensures the trader is looking at **confirmed data** only.
✅ **Flexible Timeframe Selection:**
- The user can set **any HTF resolution** (e.g., 5min, 15min, 1hr, 4hr), making it adaptable for different strategies.
✅ **Dynamic Color Coding for Quick Analysis:**
- The **color of the box reflects the market sentiment**, making it easier to spot trends, reversals, and fake-outs.
✅ **No Clutter – Only Applies to the Relevant Bars:**
- Instead of spanning across the whole chart, the range box is **only visible on the bars belonging to the last HTF period**, keeping the chart clean and focused.
---
### **Example Use Case:**
💡 Imagine a trader is scalping on the **1-minute chart** but wants to factor in **HTF 15-minute structure** to avoid getting caught in bad trades. With this indicator:
- They can see whether the last **15-minute candle** was bullish, bearish, or indecisive.
- If it was **bullish (green)**, they may look for **buying opportunities** at lower timeframes.
- If it was **bearish (red)**, they might anticipate **a potential pullback or continuation down**.
- If the **HTF candle failed to break out**, they know the market is **ranging**, avoiding unnecessary trades.
---
### **Final Thoughts:**
This indicator is a **powerful addition for traders who combine multiple timeframes** in their analysis. It provides a **clean and structured way to track HTF price movements** without cluttering the chart or requiring constant manual switching between timeframes. Whether used for **intraday trading, swing trading, or scalping**, it adds an extra layer of confirmation for trade entries and exits.
🔹 **Best for traders who:**
- Want **HTF structure awareness while trading lower timeframes**.
- Need **confirmation of breakouts, failed breakouts, or indecision zones**.
- Prefer a **non-repainting tool that only updates after confirmed HTF closes**.
Let me know if you want any adjustments or additional features! 🚀