Narrow Range StrategyNarrow Range Strategy :
INTRODUCTION :
This strategy is based on the Narrow Range Day concept, implying that low volatility will generate higher volatility in the days ahead. The strategy sends us buy and sell signals with well-defined profit targets. It's a medium/long-term strategy. There's also a money management method that allows us to reinvest part of the profits or reduce the size of orders in the event of substantial losses.
NARROW RANGE (NR) DAY :
A Narrow Range Day is a day in which price variations are included in those of a specific day some time before. The high and low of this specific day form the "reference range". In general, we compare these variations with those of 4 or 7 days ago. The mathematical formula for finding an NR4 is :
If low > low(4) and high < high(4) :
nr = true
This implies that the current low is greater than the low of 4 days ago, and the current high is smaller than the high of 4 days ago. So today's volatility is lower than that of 4 days ago, and may be a sign of high volatility to come.
PARAMETERS :
Narrow Range Length : Corresponds to the number of candles back to compare current volatility. The default is 4, allowing comparison of current volatility with that of 4 candles ago.
Stop Loss : Percentage of the reference range on which to set an exit order to limit losses. The minimum value is 0.001, while the maximum is 1. The default value is 0.35.
Fixed Ratio : This is the amount of gain or loss at which the order quantity is changed. The default is 400, which means that for each $400 gain or loss, the order size is increased or decreased by an amount chosen by the user.
Increasing Order Amount : This is the amount to be added to or subtracted from orders when the fixed ratio is reached. The default is $200, which means that for every $400 gain, $200 is reinvested in the strategy. On the other hand, for every $400 loss, the order size is reduced by $200.
Initial capital : $1000
Fees : Interactive Broker fees apply to this strategy. They are set at 0.18% of the trade value.
Slippage : 3 ticks or $0.03 per trade. Corresponds to the latency time between the moment the signal is received and the moment the order is executed by the broker.
Important : A bot was used to test NR4 and NR7 with all possible Stop Losses in order to find out which combination generates the highest return on BITSTAMP:ETHUSD while limiting the drawdown. This strategy is the most optimal with an NR4 and a SL of 35% of the reference range size in 5D timeframe.
BUY AND SHORT SIGNALS :
When an NR is spotted, we create two stop orders on the high and low of the reference range. As soon as there's a breakout from this reference range (shown in blue on the chart), we open a position. We're LONG if there's a breakout on the high and SHORT if there's a breakout on the low. Executing a stop order cancels the second stop order.
RISK MANAGEMENT :
This strategy is subject to losses. We manage our risk with Stop Losses. The user is free to enter a SL as a percentage of the reference range. The maximum amount risked per trade therefore depends on the size of the range. The larger the range, the greater the risk. That's why we have set a maximum Stop Loss to 10% to limiting risks per trade.
The special feature of this strategy is that it targets a precise profit objective. This corresponds to the size of the reference range at the top of the high if you're LONG, or at the bottom of the low if you're short. In the same way, the larger the reference range, the greater the potential profits.
The risk reward remains the same for all trades and amounts to : 100/35 = 2.86. If the reference range is too high, we have set a SL to 10% of the trade value to limit losses. In that case, the risk reward is less than 2.86.
MONEY MANAGEMENT :
The fixed ratio method was used to manage our gains and losses. For each gain of an amount equal to the value of the fixed ratio, we increase the order size by a value defined by the user in the "Increasing order amount" parameter. Similarly, each time we lose an amount equal to the value of the fixed ratio, we decrease the order size by the same user-defined value. This strategy increases both performance and drawdown.
NOTE :
Please note that the strategy is backtested from 2017-01-01. As the timeframe is 5D, this strategy is a medium/long-term strategy. That's why only 37 trades were closed. Be careful, as the test sample is small and performance may not necessarily reflect what may happen in the future.
Enjoy the strategy and don't forget to take the trade :)
Search in scripts for "range"
Volatility Range Breakout Strategy [wbburgin]The "Volatility Range Breakout Strategy" uses deviations of high-low volatility to determine bullish and bearish breakouts.
HOW IT WORKS
The volatility function uses the high-low range of a lookback period, divided by the average of that range, to determine the likelihood that price will break in a specific direction.
High and low ranges are determined by the relative volatility compared to the current closing price. The high range, for example, is the (volatility * close) added to the close, the low range is this value subtracted by the close.
A volatility-weighted moving average is taken of these high and low ranges to form high and low bands.
Finally, breakouts are identified once the price closes above or below these bands. An upwards breakout (bullish) occurs when the price breaks above the upper band, while a downwards breakout (bearish) occurs when the price breaks below the lower band. Positions can be closed either by when the price falls out of its current band ("Range Crossover" in settings under 'Exit Type') or when the price falls below or above the volatility MA (default because this allows us to catch trends for longer).
INPUTS/SETTINGS
The AVERAGE LENGTH is the period for the volatility MA and the weighted volatility bands.
The VOLATILITY LENGTH is how far the lookback should be for highs/lows for the volatility calculation.
Enjoy! Let me know if you have any questions.
3C Reversal Filter v1In essence, this strategy is a heavily smoothed range filter.
This strategy includes a backtester and ability to connect it with your 3 commas bot(See adviced settings below)
The calculation steps below gives an example on how signals are made:
1. Calculating the price movement using ATR, % change, standard deviation etc..
2. Obtaining the smoothed price using SMA.
3. Obtaining the absolute value of the bar-to-bar change.
4. Applying EMA, twice, to the values in step 3.
5. Obtaining the slow trailing line by multiplying the result of step 4 by 1.618.
Think of it as a heavily smoothed price range
If the 1.618 value looks familiar, that’s because it’s used in Fibonacci sequences. You can of course experiment with other values. I’ve seen good results with both 2.618 and 4.236
What does the strategy do?
1. Determine Trend Detection
2. Detect Short-Term Momentum
3commas settings:
-For now you can only use simple bots.
-Create LONG and SHORT bots for the coins you like to trade and set up alerts(You can send long and short signal from the same alert)
-Set TP to 50% the strategy will handle buys and exits based on your inputs.
-Set safety orders to 0. I might add DCA to the strategy if testing proves that to be a good solution.
-When you have made the bots input the bot ID and token adress in the settings of the strategy.
-When creating the alert use this webhook :https://3commas.io/trade_signal/trading_view
-In the message field you use {{strategy.order.alert_message}} as the placeholder.
Dual Fibonacci Zone & Ranged Vol DCA Strategy - R3c0nTraderWhat does this do?
This is for educational purposes and allows one to backtest two Fibonacci Zones simultaneously. This also includes an option for Ranged Volume as a parameter.
Pre-requisites:
First off, this is a Long only strategy as I wrote it with DCA in mind. It cannot be used for shorting. Shorting defeats the purpose of a DCA bot which has a goal that is Long a position not Short a position. If you want to short, there are plenty of free scripts out there that do this.
You must have some base knowledge or experience with Fibonacci trading, understanding what is ADX, +DI (and -DI), etc.
You can use this script without a 3Commas account and see how 3Commas DCA Bot would perform. However, I highly recommend inexperienced uses get a free account and going through the tutorials, FAQ's and knowledgebase. This would give you a base understanding of the settings you will see in this strategy and why you will need to know them. Only then should you try testing this strategy with a paper bot.
Background
After I had created and released "Fibonacci Zone DCA Strategy", I began expanding and testing other ideas.
The first idea was to add Ranged Volume to the Fibonacci Zone DCA strategy which I wanted for providing further confirmation before entering a trade. The second idea was to add a second Fibonacci Zone that was just as configurable as the first Fibonacci Zone. I managed to add both and they can be easily enabled or disabled via the strategy settings menu.
Things Got Real Interesting
Things got real interesting when I started testing strategies with two Fibonacci zones. Here's a quick list of what I found I was able to do:
Mix and match exit strategies. I could set the Fib-1 zone strategy to exit with a take profit % and separately set the Fib-2 zone strategy to exit when the price crosses the top-high fib border
Trade the trend. A common phrase amongst traders is "the Trend is your friend" and with the help of an additional Fib Zone, I was able to trade the trend more often by using two different Fib Zone strategies which if configured properly can shorten time to re-deploy capital, increase number of closed trades, and in some cases increase net profit.
Trade both bull market uptrends and bear market downtrends in the same strategy. I found I could configure one Fib Zone strategy to be really good in uptrends and another Fib Zone strategy to be really good in downtrends. In some cases, with both Fib Zone strategies enabled together in a single strategy I got better results than if the strategies were backtested separately.
There are many other trade strategies I am finding with this. One could be to trade a convergence or divergence of the two different Fib Zones. This could possibly be achieved by setting one strategy to have different Fibonacci length.
Credits:
Thank you "EvoCrypto" for granting me permission to use "Ranged Volume" to create this strategy
Thank you "eykpunter" for granting me permission to use "Fibonacci Zones" to create this strategy
Thank you "junyou0424" for granting me permission to use "DCA Bot with SuperTrend Emulator" which I used for adding bot inputs, calculations, and strategy
Open Range Breakout Strategy With Multi TakeProfitHello everyone,
For a while, I’ve been wanting to develop new scripts, but I couldn’t decide what to create. Eventually, I came up with the idea of coding traditional and well-known trading strategies—while adding modern features such as multi–take profit options. For the first strategy in this series, I chose the Open Range Strategy .
For those unfamiliar with it, the Open Range Strategy is a trading approach where you define a specific time period at the beginning of a trading session—such as the first 15 minutes, 30 minutes, or 1 hour—and mark the highest and lowest prices within that range. These levels then act as reference points for potential breakouts: if the price breaks above the range, it may signal a long entry; if it breaks below, it may indicate a short entry. This method is popular among day traders for capturing early momentum in the market.
Since this strategy is generally used as an intraday strategy , I added a Trade Session feature. This allows you to define the exact time window during which trades can be opened. Once the session ends, all positions are automatically closed, ensuring trades remain within your chosen intraday period.
Even though it’s a relatively simple concept, I’ve come across many different variations of it. That’s why I created a highly customizable project. Under the Session Settings, you can select the time window you want to define as your range. Whether it’s the first 15-minute candle or the entire first hour, the choice is entirely yours.
For stop-loss placement, there are two different options:
Middle of the Range – The stop loss is placed at the midpoint between the high and low of the defined range, offering a balanced buffer for both bullish and bearish setups.
Top/Bottom of the Range – The stop loss is placed just beyond the range’s high for short trades or just below the range’s low for long trades, providing a more conservative risk approach.
I’ve always been a big fan of the multi take-profit feature, so I added two different take-profit targets to this project. Take profits are calculated based on a Risk-to-Reward Ratio, which you can adjust in the settings. You can also set different position sizes for each target, allowing you to scale out of trades in a way that suits your strategy.
The result is a flexible, user-friendly strategy script that brings together a classic approach with modern risk management tools—ready to be tailored to your trading style
Gold ORB Strategy (15-min Range, 5-min Entry)The Gold ORB (Opening Range Breakout) Strategy is designed for day traders looking to capitalize on the price action in the early part of the trading day, specifically using a 15-minute range for identifying the opening range and a 5-minute timeframe for breakout entries. The strategy trades the Gold market (XAU/USD) during the New York session.
Opening Range: The strategy defines the Opening Range (ORB) between 9:30 AM EST and 9:45 AM EST using the highest and lowest points during this 15-minute window.
Breakout Entries: The strategy enters trades when the price breaks above the ORB high for a long position or below the ORB low for a short position. It waits for a 5-minute candle close outside the range before entering a trade.
Stop Loss and Take Profit: The stop loss is placed at 50% of the ORB range, and the take profit is set at twice the ORB range (1:2 risk-reward ratio).
Time Window: The strategy only executes trades before 12:00 PM EST, avoiding late-day market fluctuations and consolidations.
AUTOMATIC GRID BOT STRATEGY [ilovealgotrading]
OVERVIEW:
This Grid trading strategy can help you maximize your profit in a ranging sideways market with no clear direction.
INDICATOR:
We can get some money by taking advantage of the movement of the price between the range we have determined.
Short positions are opened while the price is rising, long positions are opened while the price is falling.
Therefore, there is no need to predict the trend direction.
What is different in this indicator:
I want to say thank you to © thequantscience. His GRID SPOT TRADING ALGORITHM - GRID BOT TRADING strategy helped me when I was writing my indicator.
I want to explain what I have improved:
1- Grid strategy is a type of strategy that can be traded in very short time frames and users can trade this strategy algorithmically by connecting this strategy to their own accounts with the help of API systems. For this reason, I have developed a software that can give us signals by dynamically changing the long and short messages when users are trading.
2- We can change the start and end dates of our grid bot as we want. It is necessary to use this setting when setting up automatic bots, so that previously opened transactions are not taken into account.
3 - Lot or quantity size should not be excessively small when users are taking automatic trades because exchanges have limitations, to avoid this problem, I have prevented this error by automatically rounding up to the nearest quantity size inside the software.
4 - Users can avoid excessive losses by using stop loss on this grid bot if they wish.
5 - When our price is over the range high or below the range low, our open positions are closed, if the stop button is active. We can also change which close price time frame we take as a basis from the settings.
6 -Users can set how many dollars they can enter per transaction while performing their transactions automatically.
IMPLEMENTATION DETAILS – SETTINGS:
This script allows the user to choose the highs and lows leves of our range. Our bot trades in the specified range.
1. This strategy allows us to set start and end backtest dates.
2. We can change range high and range low leves of our bot
3. IF people want to trade algorithmically with the help of this bot, there are 6 different input systems that will receive the Json codes as an alarm
4. IF the price closes above the upper line or below the lower line, all transactions will be closed. We can determine in which time frame our transactions will be stopped if the price closes outside these levels.We can adjust how our bot works by activating or turning off the Stop Loss button.
5. In this strategy, you can determine your dollar cost for per position.
6. The user can also divide the interval we have determined into 10 parts or 20 equal parts.
7. The grid is divided and colored at the interval we set. At the same time, if we don't want we can turn off colored channels.
Notes:
If you're going to connect this bot to an automatic Long and Short direction,
Don’t forget! you need to Webhook URL,
Don’t miss paste this code to your message window {{strategy.order.alert_message}}
ALSO:
Set your range below the support zones and above the resistance zones.
Don't be afraid to take a wide range, it doesn't matter if you make a little money, the important thing is that you don't lose money.
If you have any ideas what to add to my work to add more sources or make calculations cooler, suggest in DM .
Strategy - Bobo PAPATRHi I've revamped this bot mentioned in the linked idea to make it work with v4 of pine. In doing so there are some very significant changes to how it works. The main one is that it no longer uses traditional daily pivot calculations to calculate the bands. It creates a more dynamic intraday set of pivot points based on recent price action rather than yesterday's ohlc. As published, the bot is tuned for a 15 min time frame. But it actually works well on lower time frames you just need to adjust the lookback periods in settings a bit to re tune it. It's also tuned to ES really but will need tweaking for a different instrument at the very least.
The basic concept is recent price action is used to calculate a 'middle' around which red and green bands are located. Their position or width is largely determined by recent volatility. The middle line is again calculated from recent price action. The three lines from that form a tradeable range with green at the top and red at the bottom. The strategy is simple enough, it shorts as it sinks from outside red, and longs when rising above green. The basic principle being that once you enter that range you have a high probability of hitting the middle before you hit your stop loss. So the basic principle is you are trying to capture the inherent ranginess of liquid indices like S&P 500. That back and forth movement that happens. The bot is capturing this by fading extremes of a recent range but the problem with that is you'dd get murdered in a strong trend. To mitigate that there is a trend calculation running in the background the will prevent trading against firm trends mostly. So the bot should trade mostly in rangy conditions because that is what it is trying to do.
Bot will close issue close signals automatically upon crossing the middle, it also will close automatically at predefined stops or limits. These values are denominated in market mintick values. For example the CFD SPX500 has a mintick of 0.1. Therefore a stop value of 100 will equate to 10 points on the index. If trading the same market via ES1! the mintick value is different - 0.25. So in this case a value of 40 is required to set the stop at 10 points.
Anyway shout if you have questions. Hope it's useful.
TVC:SPX OANDA:SPX500USD
NQ Opening Range BreakoutOpening Range Breakout script with:
Customizable opening range timeframe selection.
Inputs for Risk to Reward ratio, EMAs, Vwap, and ATR sizing to avoid ranges that are too big or too small.
Features a toggle for reversal trades that when enabled will trade the other direction if the initial ORB gets stopped out.
Default it will use the entire opening range to determine stop loss and take profit and if neither the take profit or stop loss is hit it will end the trade at 16:00. There are toggles to use half the opening range as the stop loss and take profit will then be calculated as risk reward ratio * stop loss or you can select entry candle stop loss and risk reward ratio which places the stop loss at the entry candles opening price. There is also a take profit option that will only exit the trade when price closes below (for longs) or above (for shorts) a customizable ema length.
Note that if you have the opening range, for example, selected as 9:30 - 9:45 and are on a 5 minute chart it will enter on the first 5 min closure outside of that range and if you are on a 15 minute chart it will enter on the first 15 min closure outside of that range and so on.
You can automate the entries and exits by using a webhook service and using the strategy’s alerts.
Average High-Low Range + IBS Reversal Strategy█ STRATEGY DESCRIPTION
The "Average High-Low Range + IBS Reversal Strategy" is a mean-reversion strategy designed to identify potential buying opportunities when the price deviates significantly from its average high-low range and the Internal Bar Strength (IBS) indicates oversold conditions. It enters a long position when specific conditions are met and exits when the price shows strength by exceeding the previous bar's high. This strategy is suitable for use on various timeframes.
█ WHAT IS THE AVERAGE HIGH-LOW RANGE?
The Average High-Low Range is calculated as the Simple Moving Average (SMA) of the difference between the high and low prices over a specified period. It helps identify periods of increased volatility and potential reversal points.
█ WHAT IS INTERNAL BAR STRENGTH (IBS)?
Internal Bar Strength (IBS) is a measure of where the closing price is relative to the high and low of the bar. It is calculated as:
IBS = (Close - Low) / (High - Low)
A low IBS value (e.g., below 0.2) indicates that the close is near the low of the bar, suggesting oversold conditions.
█ SIGNAL GENERATION
1. LONG ENTRY
A Buy Signal is triggered when:
The close price has been below the buy threshold (calculated as `upper - (2.5 * hl_avg)`) for a specified number of consecutive bars (`bars_below_threshold`).
The IBS value is below the specified buy threshold (`ibs_buy_treshold`).
The signal occurs within the specified time window (between `Start Time` and `End Time`).
2. EXIT CONDITION
A Sell Signal is generated when the current closing price exceeds the high of the previous bar (`close > high `). This indicates that the price has shown strength, potentially confirming the reversal and prompting the strategy to exit the position.
█ ADDITIONAL SETTINGS
Length: The lookback period for calculating the average high-low range. Default is 20.
Bars Below Threshold: The number of consecutive bars the price must remain below the buy threshold to trigger a Buy Signal. Default is 2.
IBS Buy Threshold: The IBS value below which a Buy Signal is triggered. Default is 0.2.
Start Time and End Time: The time window during which the strategy is allowed to execute trades.
█ PERFORMANCE OVERVIEW
This strategy is designed for mean-reverting markets and performs best when the price frequently deviates from its average high-low range.
It is sensitive to oversold conditions, as indicated by the IBS, which helps to identify potential reversals.
Backtesting results should be analyzed to optimize the Length, Bars Below Threshold, and IBS Buy Threshold parameters for specific instruments.
FXC NQ Opening Range Breakout Strategy V2.4Mechanical Strategy that trades breakouts on NQ futures on the 15min timeframe during the NYSE session. It's designed to manage Apex and Top Step accounts with the lowest risk possible.
Risk Disclaimer:
Past results as well as strategy tester reports do not indicate future performance. Guarantees do not exist in trading. By using this strategy you risk losing all your money.
Important:
It only trades on Monday, Wednesday and Friday and takes usually only 1 trade per trading day.
It works on the 15min timeframe only.
The settings are optimised already for NQ but feel free to change them.
How it works:
Every selected trading day it measures the range of the first 15min candle after the NYSE open. As soon as price closes above on the 15min timeframe, it will trade the breakout targeting a set risk to reward ratio. SL on the opposite side of the range. It will trail the SL after a set amount of points and uses a buffer of the set amount of points to trail it.
Settings:
Opening Range Time : This is the time of the day in hours and minutes when the strategy starts looking for trades. It's in the EST/ NY Timezone and set to 9:30-09:45 by default
because that's the NYSE open.
Session Time : This is the time of the day in hours and minutes until the strategy trades. It's in the EST/ NY Timezone and set to 09:45-14:45 by default.
because that's what gave the best results in backtesting. Open trades will get closed automatically once the end of the session is reached. No matter if win or loss. This is just to prevent holding positions over night.
Session Border This setting is to select the border color in which the session box will be plotted.
Opening Range Box This setting is to select the fill color of the opening range box.
Opening Range Border This setting is to select the border color of the session box.
Trade Timeframe This setting determines on which timeframe candle has to close outside the opening range box in order to take a trade. It's set to 15min by default because this is what worked by far the best in backtests and live trading.
Stop Loss Buffer in Points: This is simply the buffer in points that is added to the SL for safety reasons. If you have it on 0, the SL will be at the exact price of the opposite side of the range. By default it's set to 0 pips because this is what delivered the best results in backtests.
Profit Target Factor: This is simply the total SL size in points multiplied by x.
Example: If you put 2, you get a 1:2 Risk to Reward Ratio. By Default it's set to 4 because this gave the best results in backtests, because trades always get closed either by trailing SL or because the end of the session is reached.
Use Trailing Stop Loss: This setting is to enable/ disable the trailing stop loss. It's enabled by default because this is a fundamental part of the strategy.
Trailing Stop Buffer: This setting determines after how many points in profit the trailing SL will be activated.
Risk Type: You can chose either between Fixed USD Amount, Risk per Trade in % or Fixed Contract Size. By default it's set to fixed contract size.
Risk Amount (USD or Contracts): This setting is to set how many USD or how many contracts you want to risk per trade. Make sure to check which risk type you have selected before you chose the risk amount.
Use Limit Orders If enabled, the strategy will place a pending order x points from the current price, instead of a market order. Limit orders are enabled by default for a better performance. Important: It doesn't actually place a limit order. The strategy will just wait for a pullback and then enter with a market order. It's more like a hidden limit order.
Limit Order Distance (points): If you have limit orders enabled, this setting determines how many points from the current price the limit order will be placed.
Trading Days: These checkboxes are to select on which week days the strategy has to trade. Thursday is disabled by default because backtests have shown that Thursday is the least profitable day
Backtest Settings:
For the backtest the commissions ere set to 0.35 USD per mini contract which is the highest amount Tradeovate charges. Margin was not accounted for because typically on Apex accounts you can use way more contracts than you need for the extremely low max drawdown. Margin would be important on personal accounts but even there typically it's not an issue at all especially because this strategy runs on the 15min timeframe so it won't use a lot of contracts anyways.
What makes it unique:
This script is unique because it's designed to be used on Apex and Top Step accounts with extremely strict drawdown rules.
The strategy is optimised to be traded with a fixed contract size instead of using % risk. The reason for that is that the drawdown rules of these Futures Prop Accounts are very strict and the fact that the smallest trade-able contract size is 1.
Why the source code is hidden:
The source code is hidden because I invested a lot of time and money into developing this strategy and optimising it with paid 3rd party software. Also since I use it myself on my Apex accounts and prop firms don't allow copy trading I don't want it to be used by too many traders.
Long-Only Opening Range Breakout (ORB) with Pivot PointsIntraday Trading Strategy: Long-Only Opening Range Breakout (ORB) with Pivot Points
Background:
Opening Range Breakout (ORB) is a popular long-only trading strategy that capitalizes on the early morning volatility in financial markets. It's based on the idea that the initial price movements during the first few minutes or hours of the trading day can set the tone for the rest of the session. The strategy involves identifying a price range within which the asset trades during the opening period and then taking long positions when the price breaks out to the upside of this range.
Pivot Points are a widely used technical indicator in trading. They represent potential support and resistance levels based on the previous day's price action. Pivot points are calculated using the previous day's high, low, and close prices and can help traders identify key price levels for making trading decisions.
How to Use the Script:
Initialization: This script is written in Pine Script, a domain-specific language for trading strategies on the TradingView platform. To use this script, you need to have access to TradingView.
Apply the Script: You can do this by adding it to your favorites, then selecting the script in the indicators list under favorites or by searching for it by name under community scripts.
Customize Settings: The script allows you to customize various settings through the TradingView interface. These settings include:
Opening Session: You can set the time frame for the opening session.
Max Trades per Day: Specify the maximum number of long trades allowed per trading day.
Initial Stop Loss Type: Choose between using a percentage-based stop loss or the previous candles low for stop loss calculations.
Stop Loss Percentage: If you select the percentage-based stop loss, specify the percentage of the entry price for the stop loss.
Backtesting Start and End Time: Set the time frame for backtesting the strategy.
Strategy Signals:
The script will display pivot points in blue (R1, R2, R3, R4, R5) and half-pivot points in gray (R0.5, R1.5, R2.5, R3.5, R4.5) on your chart.
The green line represents the opening range.
The script generates long (buy) signals based on specific conditions:
---The open price is below the opening range high (h).
---The current high price is above the opening range high.
---Pivot point R1 is above the opening range high.
---It's a long-only strategy designed to capture upside breakouts.
---It also respects the maximum number of long trades per day.
The script manages long positions, calculates stop losses, and adjusts long positions according to the defined rules.
Trailing Stop Mechanism
The script incorporates a dynamic trailing stop mechanism designed to protect and maximize profits for long positions. Here's how it works:
1. Initialization:
The script allows you to choose between two types of initial stop loss:
---Percentage-based: This option sets the initial stop loss as a percentage of the entry price.
---Previous day's low: This option sets the initial stop loss at the previous day's low.
2. Setting the Initial Stop Loss (`sl_long0`):
The initial stop loss (`sl_long0`) is calculated based on the chosen method:
---If "Percentage" is selected, it calculates the stop loss as a percentage of the entry price.
---If "Previous Low" is selected, it sets the stop loss at the previous day's low.
3. Dynamic Trailing Stop (`trail_long`):
The script then monitors price movements and uses a dynamic trailing stop mechanism (`trail_long`) to adjust the stop loss level for long positions.
If the current high price rises above certain pivot point levels, the trailing stop is adjusted upwards to lock in profits.
The trailing stop levels are calculated based on pivot points (`r1`, `r2`, `r3`, etc.) and half-pivot points (`r0.5`, `r1.5`, `r2.5`, etc.).
The script checks if the high price surpasses these levels and, if so, updates the trailing stop accordingly.
This dynamic trailing stop allows traders to secure profits while giving the position room to potentially capture additional gains.
4. Final Stop Loss (`sl_long`):
The script calculates the final stop loss level (`sl_long`) based on the following logic:
---If no position is open (`pos == 0`), the stop loss is set to zero, indicating there is no active stop loss.
---If a position is open (`pos == 1`), the script calculates the maximum of the initial stop loss (`sl_long0`) and the dynamic trailing stop (`trail_long`).
---This ensures that the stop loss is always set to the more conservative of the two values to protect profits.
5. Plotting the Stop Loss:
The script plots the stop loss level on the chart using the `plot` function.
It will only display the stop loss level if there is an open position (`pos == 1`) and it's not a new trading day (`not newday`).
The stop loss level is shown in red on the chart.
By combining an initial stop loss with a dynamic trailing stop based on pivot points and half-pivot points, the script aims to provide a comprehensive risk management mechanism for long positions. This allows traders to lock in profits as the price moves in their favor while maintaining a safeguard against adverse price movements.
End of Day (EOD) Exit:
The script includes an "End of Day" (EOD) exit mechanism to automatically close any open positions at the end of the trading day. This feature is designed to manage and control positions when the trading day comes to a close. Here's how it works:
1. Initialization:
At the beginning of each trading day, the script identifies a new trading day using the `is_newbar('D')` condition.
When a new trading day begins, the `newday` variable becomes `true`, indicating the start of a new trading session.
2. Plotting the "End of Day" Signal:
The script includes a plot on the chart to visually represent the "End of Day" signal. This is done using the `plot` function.
The plot is labeled "DayEnd" and is displayed as a comment on the chart. It signifies the EOD point.
3. EOD Exit Condition:
When the script detects that a new trading day has started (`newday == true`), it triggers the EOD exit condition.
At this point, the script proceeds to close all open positions that may have been active during the trading day.
4. Closing Open Positions:
The `strategy.close_all` function is used to close all open positions when the EOD exit condition is met.
This function ensures that any remaining long positions are exited, regardless of their current profit or loss.
The function also includes an `alert_message`, which can be customized to send an alert or notification when positions are closed at EOD.
Purpose of EOD Exit
The "End of Day" exit mechanism serves several essential purposes in the trading strategy:
Risk Management: It helps manage risk by ensuring that positions are not left open overnight when markets can experience increased volatility.
Capital Preservation: Closing positions at EOD can help preserve trading capital by avoiding potential adverse overnight price movements.
Rule-Based Exit: The EOD exit is rule-based and automatic, ensuring that it is consistently applied without emotions or manual intervention.
Scalability: It allows the strategy to be applied to various markets and timeframes where EOD exits may be appropriate.
By incorporating an EOD exit mechanism, the script provides a comprehensive approach to managing positions, taking profits, and minimizing risk as each trading day concludes. This can be especially important in volatile markets like cryptocurrencies, where overnight price swings can be significant.
Backtesting: The script includes a backtesting feature that allows you to test the strategy's performance over historical data. Set the start and end times for backtesting to see how the long-only strategy would have performed in the past.
Trade Execution: If you choose to use this script for live trading, make sure you understand the risks involved. It's essential to set up proper risk management, including position sizing and stop loss orders.
Monitoring: Monitor the long-only strategy's performance over time and be prepared to make adjustments as market conditions change.
Disclaimer: Trading carries a risk of capital loss. This script is provided for educational purposes and as a starting point for your own long-only strategy development. Always do your own research and consider seeking advice from a qualified financial professional before making trading decisions.
Pro Trading Art Open Range Breakout StrategyThis strategy is based on Selected Candle High Low Breakout with buffer point.
You can select specific candle from input tab by giving time of that candle.
Default Settings:
Start Hour : Hour of starting candle means from this input you can specify opening candle. Default is 9.
Start Minute: Minute of starting candle. Default is 15. Means Default opening candle is 9:15
Stop Hour : Means After this time no new trade will execute.
End Hour & End Minute & Close All Trade : Means when you specify End Hour and Minute and Close all trade is true then strategy will close all trade on specified time.
Buffer : With the help of this option you can add some point in High and low of Opening Candle
Trade Mode : You can specify Target and Stop Loss in point or Percent
Stop Loss Point or Percent : This will work according to Trade Mode
Target Point Or Percent : This will work according to Trade Mode
EHMA Range StrategyThis script is a modified version of @borserman's script for the Exponential Hull Moving Average
All credit for the EHMA goes to him :)
In addition to the EHMA, this script works with a range around the EHMA (which can be modified), in an attempt to be robust against fake signals. Many times a bar will close below a moving average, only to reverse again the next bar, which eats away at your profits. Especially on shorter timeframes, but also on choppy longer timeframes this can make a strategy unattractive to use.
With the range around the EHMA, the strategy only enters a long/exit-short position if a bar crosses above the upper range. Vice versa, it only enters a short/exit-long position if a bar crosses below the lower range. This avoids positions if bars behave choppy within the EHMA range & only enters a position if the market is confident in it's direction. Having said that, fakeouts are still possible, but a lot less frequent. Having backtested this strategy vs the regular EHMA strategy (and having experimented with various settings), this version seems to be a lot more robust & profitable!
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Maiko Range Scalper (Sideways BB + RSI) – v4 cleanPurpose
It’s a range scalping strategy for crypto. It tries to take small, repeatable trades inside a sideways market: buy near the bottom of the range, sell near the middle/top (and the reverse for shorts).
Core idea (two timeframes)
Define the trading range on a higher timeframe (HTF)
You choose the HTF (e.g., 15m or 1h).
The script finds the highest high and lowest low over a lookback window (e.g., last 96 HTF candles) → these become HTF Resistance and HTF Support.
It also calculates the midline (average of support/resistance).
Trade signals on your lower timeframe (LTF)
You run the strategy on a fast chart (e.g., 1m or 5m).
Entries are only allowed inside the HTF range.
Entry logic (mean reversion)
Indicators on the LTF:
Bollinger Bands (length & std dev configurable).
RSI (length & thresholds configurable).
Optional VWAP proximity filter (price must be within X% of VWAP).
Long setup:
Price touches/under-cuts the lower Bollinger band AND RSI ≤ threshold (default 30) AND price is inside the HTF range (and passes VWAP filter if enabled).
Short setup:
Price touches/exceeds the upper Bollinger band AND RSI ≥ threshold (default 70) AND price is inside the HTF range (and passes VWAP filter if enabled).
Exits and risk
Stop-loss: placed just outside the HTF range with a configurable buffer %:
Long SL = HTF Support × (1 − buffer).
Short SL = HTF Resistance × (1 + buffer).
Take-profit (selectable):
Mid band (the Bollinger basis) → conservative, faster exits.
Opposite band / HTF boundary → more aggressive, higher RR but more give-backs.
Position sizing
A simple cap: maximum position size = percent of account equity (e.g., 20%).
The script calculates quantity from that cap and current price.
Plots you’ll see on the chart
HTF Resistance (red) and HTF Support (green) via plot().
HTF Midline (gray dashed) drawn with a line.new() object (because plot() cannot do dashed).
Bollinger basis/upper/lower on the LTF.
Optional VWAP line (only shown if you enable the filter).
Signal markers (green triangle up for Long setups, red triangle down for Short setups).
Alerts
Two alertconditions:
“Long Setup” – when a long entry condition appears.
“Short Setup” – when a short entry condition appears.
Create alerts from these to get notified in real time.
How to use it (quick start)
Add to a 1m or 5m chart of a liquid coin (BTC, ETH, SOL).
Set HTF timeframe (start with 1h) and lookback (e.g., 96 = ~4 days on 1h).
Keep default Bollinger/RSI first; tune later.
Choose TP mode:
“Mid band” for quick scalps.
“Opposite band/Range” if the range is very clean and you want bigger targets.
Set SL buffer (0.15–0.30% is common; adjust for volatility).
Set Max position % to control size (e.g., 20%).
(Optional) Enable VWAP filter to skip stretched moves.
When it works best
Clearly sideways markets with visible support/resistance on the HTF.
High-liquidity pairs where spreads/fees are small relative to your scalp target.
Limitations & safety notes
True breakouts will invalidate mean-reversion logic—your SL outside the range is there to cut losses fast.
Fees can eat into small scalps—prefer limit orders, rebates, and liquid pairs.
Backtest results vary by exchange data; always forward-test on small size.
If you want, I can:
Add an ATR-based stop/target option.
Provide a study-only version (signals/alerts, no trading engine).
Pre-set risk to your €5,000 plan (e.g., ~0.5% max loss/trade) with calculated qty.
Opening Range Breakout🚀 ORB – Optimized for Peak Performance 🚀
Catch the morning breakout moves with zero guesswork!
This plug-and-play Opening Range Breakout strategy is fully optimized ; no settings to tweak, no parameters to adjust.
✅ Pre-tuned for U.S. market open on 5-minute charts.
✅ Built-in risk management with stop loss, take profit, and one trade per day.
✅ Auto exit before market close to lock in gains and avoid late-day whipsaws.
Perfect for day traders who want to focus on execution, not experimentation.
Just load it, trade it, and let the strategy do the heavy lifting.
⚠ Disclaimer : Educational use only. Always backtest and paper trade before using with real capital.
Key Features
• No Guesswork – Pre-set with the best-performing configuration.
• Opening Range Breakout Logic – Identifies the early range of the market and trades strong breakouts.
• Strict Risk Management – Stop loss and take profit levels are automatically calculated from the range size.
• One Trade Per Day – Prevents overtrading and keeps the focus on quality setups.
• End-of-Day Auto Exit – Closes all open trades at 3:30 PM EST to avoid late-session volatility.
How It Works
1. Opening Range Calculation: At market open (9:30 AM EST), the strategy monitors opening range.
2. Breakout Entry: Monitors the breakouts with moment.
3. Risk & Profit Targets: Stop loss and take profit are calculated automatically based on the range size. Risk-to-reward ratio is set for balanced performance.
4. Trade Control: Only one trade per day (either long or short). All trades are force-closed at 3:30 PM EST.
Dynamic RSI Mean Reversion StrategyDynamic RSI Mean Reversion Strategy
Overview:
This strategy uses an RSI with ATR-Adjusted OB/OS levels in order to enhance the quality of it's mean reversion trades. It also incorporates a form of trend filtering in an effort to minimize downside and maximize upside. The backtest has fewer trades, as it uses substantial filtering to enhance trade quality. As you can see, I didn't cherry pick the results, so the results aren't the most beautiful thing you'll see in your life. I did this to ensure nobody gets misled. If you need a higher frequency of trades, consider removing the trend filter or increasing the length of the EMAs used for trend detection.
Features:
Dynamic OB/OS Levels: Uses ATR to adjust overbought and oversold thresholds dynamically, making the RSI more responsive in varying volatility conditions. This approach enhances signal strength by expanding the RSI range in high volatility and tightening it in low volatility.
Mean Reversion Focus: Designed for mean reversion but incorporates a trend-following filter to reduce countertrend trades. When the RSI is high, it often indicates an uptrend, so a trend filter prevents shorting in these cases and the same goes for downtrends and longing.
Trend Filtering: A moving average cross trend filter checks for the trend direction, with the RSI signal line color-coded to reflect trend shifts. Entries occur when the RSI crosses above or below the dynamic thresholds and is not a countertrend trade.
Stop Losses: Stop losses are set based on ATR distance from the entry price, providing volatility-adjusted protection.
Note:
If you're using this strategy on assets with a higher price, remember to increase the initial capital in the strategy settings. Otherwise, the strategy won't generate any (or many) trades and you'll end up with some inaccurate results.
Recommended Use:
Test it on different assets and timeframes. I’ve found the best results with standard RSI inputs, a relatively slow ATR, and a slower MA cross for trend filtering. Thus, the defaults are set that way. If the trend metrics are too slow, you’ll filter out too many good trades while allowing crummy ones; if too fast, most trades may be filtered out. As always, this has a lot of configurability so experiment to find the balance that works for your trading style.
Negroni Opening Range StrategyStrategy Summary:
This tool can be used to help identify breakouts from a range during a time-zone of your choosing. It plots a pre-market range, an opening range, it also includes moving average levels that can be used as confluence, as well as plotting previous day SESSION highs and lows.
There are several options on how you wish to close out the trades, all described in more detail below.
Back-testing Inputs:
You define your timezone.
You define how many trades to open on any given day.
You decide to go: long only, short only, or long & short (CAREFUL: "Long & Short" can open trades that effectively closes-out existing ones, for better AND worse!)
You define between which times the strategy will open trades.
You define when it closes any open trades (preventing overnight trades, or leaving trades open into US data times!!).
This hopefully helps make back-testing reflect YOUR trading hours.
NOTE: Renko or Heikin-Ashi charts
For ALL strategies, don’t use Renko or Heikin-Ashi charts unless you know EXACTLY the implications.
Specific to my strategy, using a renko chart can make this 85-90% profitable (I wish it was!!) Although they can be useful, renko charts don’t always capture real wicks, so the renko chart may show your trade up-only but your broker (who is not using renko!!) will have likely stopped you out on a wick somewhere along the line.
NOTE: TradingView ‘Deep backtesting’
For ALL strategies, be cynical of all backtesting (e.g. repainting issues etc) as well as ‘Deep backtesting’ results.
Specific to this strategy, the default settings here SHOULD BE OK, but unfortunately at the time of writing, we can’t see on the chart what exactly ‘deep backtesting’ is calculating. In the past I have noted a number of trades that were not closed at the end of the day, despite my ‘end of day’ trade closing being enabled, so there were big winners and losers that would not have materialized otherwise. As I say, this seems ok at these settings but just always be cynical!!
Opening Range Inputs
You define a pre-market range (example: 08:00 - 09:00).
You define an opening range (example: 09:00 - 09:30).
The strategy will give an update at the close of the opening range to let you know if the opening range has broken out the pre-market range (OR Breakout), or if it has remained inside (OR Inside). The label appears at the end of the opening range NOT at the bar that ‘broke-out’.
This is just a visual cue for you, it has no bearing on what the strategy will do.
The strategy default will trade off the pre-market range, but you can untick this if you prefer to trade off the opening range.
Opening Trades:
Strategy goes long when the bar (CLOSE) crosses-over the ‘pre-market’ high (not the ‘opening range’ high); and the time is within your trading session, and you have not maxed out your number of trades for the day!
Strategy goes short when the bar (CLOSE) crosses-under the ‘pre-market’ low (not the ‘opening range low); and the time is within your trading session, and you have not maxed out your number of trades for the day!
Remember, you can untick this if you prefer to trade off the opening range instead.
NOTES:
Using momentum indicators can help (RSI and MACD): especially to trade range plays in failed breakouts, when momentum shifts… but the strategy won’t do this for you!
Using an anchored vwap at the session open can also provide nice confluence, as well as take-profit levels at the upper/lower of 3x standard deviation.
CLOSING TRADES:
You have 6 take-profit (TP) options:
1) Full TP: uses ATR Multiplier - Full TP at the ATR parameters as defined in inputs.
2) Take Partial profits: ATR Multiplier - Takes partial profits based on parameters as defined in inputs (i.e close 40% of original trade at TP1, close another 40% of original trade at TP2, then the remainder at Full TP as set in option 1.).
3) Full TP: Trailing Stop - Applies a Trailing Stop at the number of points, as defined in inputs.
4) Full TP: MA cross - Takes profit when price crosses ‘Trend MA’ as defined in inputs.
5) Scalp: Points - closes at a set number of points, as defined in inputs.
6) Full TP: PMKT Multiplier - places a SL at opposite pre-market Hi/Low (we go long at a break-out of the pre-market high, 50% would place a SL at the pre-market range mid-point; 100% would place a SL at the pre-market low)'. This takes profit at the input set in option 1).
Volty Expan Close Strategy with Backtest Date RangeInput Information
Length Numeric 5 Number of bars used to determine the average true range.
NumATRs Numeric .75 Factor used to calculate a percentage of the average true range, used to
Long and short entry based on a percentage of price movement beyond the average range.
Profitable and simple strategy..
OnePunch Algo Hard BUY/SELL and Date Range - Version 1~~~ How to Detect Sell Signals ~~~
The First Red Outlined Yellow Bar after a purple "close entry order long" signal : then that is a SELL
~~ What is Purple Signal~~~
Purple "Close Entry Order Long" is a warning for a trend reversal. Normally this is given when the upward trend is reversed.
~~~ How to Detect Buy Signals ~~~
Like in the screenshot, the 1st blue "long" signal after 1 or couple of white bars; then it is a BUY.
Note: This is only available for invited members only. This is a new strategy with Dates ranges.
Forex Master v4.0 (EUR/USD Mean-Reversion Algorithm)DESCRIPTION
Forex Master v4.0 is a mean-reversion algorithm currently optimized for trading the EUR/USD pair on the 5M chart interval. All indicator inputs use the period's closing price and all trades are executed at the open of the period following the period where the trade signal was generated.
There are 3 main components that make up Forex Master v4.0:
I. Trend Filter
The algorithm uses a version of the ADX indicator as a trend filter to trade only in certain time periods where price is more likely to be range-bound (i.e., mean-reverting). This indicator is composed of a Fast ADX and a Slow ADX, both using the same look-back period of 50. However, the Fast ADX is smoothed with a 6-period EMA and the Slow ADX is smoothed with a 12-period EMA. When the Fast ADX is above the Slow ADX, the algorithm does not trade because this indicates that price is likelier to trend, which is bad for a mean-reversion system. Conversely, when the Fast ADX is below the Slow ADX, price is likelier to be ranging so this is the only time when the algorithm is allowed to trade.
II. Bollinger Bands
When allowed to trade by the Trend Filter, the algorithm uses the Bollinger Bands indicator to enter long and short positions. The Bolliger Bands indicator has a look-back period of 20 and a standard deviation of 1.5 for both upper and lower bands. When price crosses over the lower band, a Long Signal is generated and a long position is entered. When price crosses under the upper band, a Short Signal is generated and a short position is entered.
III. Money Management
Rule 1 - Each trade will use a limit order for a fixed quantity of 50,000 contracts (0.50 lot). The only exception is Rule
Rule 2 - Order pyramiding is enabled and up to 10 consecutive orders of the same signal can be executed (for example: 14 consecutive Long Signals are generated over 8 hours and the algorithm sends in 10 different buy orders at various prices for a total of 350,000 contracts).
Rule 3 - Every order will include a bracket with both TP and SL set at 50 pips (note: the algorithm only closes the current open position and does not enter the opposite trade once a TP or SL has been hit).
Rule 4 - When a new opposite trade signal is generated, the algorithm sends in a larger order to close the current open position as well as open a new one (for example: 14 consecutive Long Signals are generated over 8 hours and the algorithm sends in 10 different buy orders at various prices for a total of 350,000 contracts. A Short Signal is generated shortly after the 14th Long Signal. The algorithm then sends in a sell order for 400,000 contracts to close the 350,000 contracts long position and open a new short position of 50,000 contracts).
15-Min Opening Range Breakout STEP-BY-STEP RULES
1. Define the Opening Range (OR)
Mark the high and low of the first 15-minute candle of the session.
This creates your Opening Range.
Example: London session opens at 08:00 GMT. Use the 08:00–08:15 candle.
2. Set Entry Triggers
Buy Breakout: Place a Buy Stop order 1 pip above the Opening Range high.
Sell Breakout: Place a Sell Stop order 1 pip below the Opening Range low.
⚠️ Only one side should be triggered. Cancel the opposite order once one is active.
3. Set Stop Loss (SL)
For Buy trades:
SL = Opening Range Low - 2 pips
For Sell trades:
SL = Opening Range High + 2 pips
This ensures you give the price enough space, while keeping risk controlled.
4. Set Take Profit (TP)
Use either of these two approaches:
✅ Fixed Risk-Reward (Preferred)
Target 1: TP = 2R (i.e., 2 × SL distance)
Target 2 (optional): Leave runner for 3R or trail stop behind minor S/R
✅ Fixed Pip Target (alternative)
TP = +50 pips
SL = -20 pips
Matches your preferred risk model of 20 SL / 50 TP
5. Trade Management
If no breakout occurs within 1 hour, cancel the pending orders. No trade that day.
If trade triggers but fails to move, consider time-based exit after 2 hours.
Optional: Move SL to breakeven once price moves 1R in your favor.
Twin Range Filter Algo@Colinmck used two different ranges to generate signals. Read his release notes to find out what the original script does.
I added one condition which seems to increase performance on 15m BTCUSD as well as 1h BTCUSD and that is ATR with 32 periods being smaller than ATR with 64 periods. I used my script Volatility Optimiser to discover this tendency.
Both buying and selling conditions are same as in @Colinmck's script plus one condition of my own. You can disable my condition.
Target and stop-loss are manually set values in ticks.
Time stop-loss is manually set value in a number of candles. After this number of candles, a position always exits (or should 😇). You can disable it by inserting a very long period. I do not recommend it, because a value of indicator should not be measured in luck and if market starts moving in the direction after 40 periods, the predictive capability of an indicator is questionable.
I used 300/150/17 for 15m BTCUSD chart and 900/30/17 for 1h BTCUSD. I didn't try to optimize any other parameters for these periods.
Since this script relies mostly on volatility for its prediction, I wouldn't recommend using it on its own. Individual approach to the market is recommended. Also, it didn't work on EURUSD when using the same default values and different order management (tp, sl, time sl), so it is probably not as versatile.
Let me know what do you think of this strategy. If you have some ideas about how to make it more reliable, share it in the comments, I might put it to the test. Good luck 🍀






















