Backtesting on Non-Standard Charts: Caution! - PineCoders FAQMuch confusion exists in the TradingView community about backtesting on non-standard charts. This script tries to shed some light on the subject in the hope that traders make better use of those chart types.
Non-standard charts are:
Heikin Ashi (HA)
Renko
Kagi
Point & Figure
Range
These chart types are called non-standard because they all transform market prices into synthetic views of price action. Some focus on price movement and disregard time. Others like HA use the same division of bars into fixed time intervals but calculate artificial open, high, low and close (OHLC) values.
Non-standard chart types can provide traders with alternative ways of interpreting price action, but they are not designed to test strategies or run automated traded systems where results depend on the ability to enter and exit trades at precise price levels at specific times, whether orders are issued manually or algorithmically. Ironically, the same characteristics that make non-standard chart types interesting from an analytical point of view also make them ill-suited to trade execution. Why? Because of the dislocation that a synthetic view of price action creates between its non-standard chart prices and real market prices at any given point in time. Switching from a non-standard chart price point into the market always entails a translation of time/price dimensions that results in uncertainty—and uncertainty concerning the level or the time at which orders are executed is detrimental to all strategies.
The delta between the chart’s price when an order is issued (which is assumed to be the expected price) and the price at which that order is filled is called slippage . When working from normal chart types, slippage can be caused by one or more of the following conditions:
• Time delay between order submission and execution. During this delay the market may move normally or be subject to large orders from other traders that will cause large moves of the bid/ask levels.
• Lack of bids for a market sell or lack of asks for a market buy at the current price level.
• Spread taken by middlemen in the order execution process.
• Any other event that changes the expected fill price.
When a market order is submitted, matching engines attempt to fill at the best possible price at the exchange. TradingView strategies usually fill market orders at the opening price of the next candle. A non-standard chart type can produce misleading results because the open of the next candle may or may not correspond to the real market price at that time. This creates artificial and often beneficial slippage that would not exist on standard charts.
Consider an HA chart. The open for each candle is the average of the previous HA bar’s open and close prices. The open of the HA candle is a synthetic value, but the real market open at the time the new HA candle begins on the chart is the unrelated, regular open at the chart interval. The HA open will often be lower on long entries and higher on short entries, resulting in unrealistically advantageous fills.
Another example is a Renko chart. A Renko chart is a type of chart that only measures price movement. The purpose of a Renko chart is to cluster price action into regular intervals, which consequently removes the time element. Because Trading View does not provide tick data as a price source, it relies on chart interval close values to construct Renko bricks. As a consequence, a new brick is constructed only when the interval close penetrates one or more brick thresholds. When a new brick starts on the chart, it is because the previous interval’s close was above or below the next brick threshold. The open price of the next brick will likely not represent the current price at the time this new brick begins, so correctly simulating an order is impossible.
Some traders have argued with us that backtesting and trading off HA charts and other non-standard charts is useful, and so we have written this script to show traders what happens when order fills from backtesting on non-standard charts are compared to real-world fills at market prices.
Let’s review how TV backtesting works. TV backtesting uses a broker emulator to execute orders. When an order is executed by the broker emulator on historical bars, the price used for the fill is either the close of the order’s submission bar or, more often, the open of the next. The broker emulator only has access to the chart’s prices, and so it uses those prices to fill orders. When backtesting is run on a non-standard chart type, orders are filled at non-standard prices, and so backtesting results are non-standard—i.e., as unrealistic as the prices appearing on non-standard charts. This is not a bug; where else is the broker emulator going to fetch prices than from the chart?
This script is a strategy that you can run on either standard or non-standard chart types. It is meant to help traders understand the differences between backtests run on both types of charts. For every backtest, a label at the end of the chart shows two global net profit results for the strategy:
• The net profits (in currency) calculated by TV backtesting with orders filled at the chart’s prices.
• The net profits (in currency) calculated from the same orders, but filled at market prices (fetched through security() calls from the underlying real market prices) instead of the chart’s prices.
If you run the script on a non-standard chart, the top result in the label will be the result you would normally get from the TV backtesting results window. The bottom result will show you a more realistic result because it is calculated from real market fills.
If you run the script on a normal chart type (bars, candles, hollow candles, line, area or baseline) you will see the same result for both net profit numbers since both are run on the same real market prices. You will sometimes see slight discrepancies due to occasional differences between chart prices and the corresponding information fetched through security() calls.
Features
• Results shown in the Data Window (third icon from the top right of your chart) are:
— Cumulative results
— For each order execution bar on the chart, the chart and market previous and current fills, and the trade results calculated from both chart and market fills.
• You can choose between 2 different strategies, both elementary.
• You can use HA prices for the calculations determining entry/exit conditions. You can use this to see how a strategy calculated from HA values can run on a normal chart. You will notice that such strategies will not produce the same results as the real market results generated from HA charts. This is due to the different environment backtesting is running on where for example, position sizes for entries on the same bar will be calculated differently because HA and standard chart close prices differ.
• You can choose repainting/non-repainting signals.
• You can show MAs, entry/exit markers and market fill levels.
• You can show candles built from the underlying market prices.
• You can color the background for occurrences where an order is filled at a different real market price than the chart’s price.
Notes
• On some non-standard chart types you will not obtain any results. This is sometimes due to how certain types of non-standard types work, and sometimes because the script will not emit orders if no underlying market information is detected.
• The script illustrates how those who want to use HA values to calculate conditions can do so from a standard chart. They will then be getting orders emitted on HA conditions but filled at more realistic prices because their strategy can run on a standard chart.
• On some non-standard chart types you will see market results surpass chart results. While this may seem interesting, our way of looking at it is that it points to how unreliable non-standard chart backtesting is, and why it should be avoided.
• In order not to extend an already long description, we do not discuss the particulars of executing orders on the realtime bar when using non-standard charts. Unless you understand the minute details of what’s going on in the realtime bar on a particular non-standard chart type, we recommend staying away from this.
• Some traders ask us: Why does TradingView allow backtesting on non-standard chart types if it produces unrealistic results? That’s somewhat like asking a hammer manufacturer why it makes hammers if hammers can hurt you. We believe it’s a trader’s responsibility to understand the tools he is using.
Takeaways
• Non-standard charts are not bad per se, but they can be badly used.
• TV backtesting on non-standard charts is not broken and doesn’t require fixing. Traders asking for a fix are in dire need of learning more about trading. We recommend they stop trading until they understand why.
• Stay away from—even better, report—any vendor presenting you with strategies running on non-standard charts and implying they are showing reliable results.
• If you don’t understand everything we discussed, don’t use non-standard charts at all.
• Study carefully how non-standard charts are built and the inevitable compromises used in calculating them so you can understand their limitations.
Thanks to @allanster and @mortdiggiddy for their help in editing this description.
Look first. Then leap.
在脚本中搜索"TAKE"
Great Expectations [LucF]Great Expectations helps traders answer the question: What is possible? It is a powerful question, yet exploration of the unknown always entails risk. A more complete set of questions better suited to traders could be:
What opportunity exists from any given point on a chart?
What portion of this opportunity can be realistically captured?
What risk will be incurred in trying to do so, and how long will it take?
Great Expectations is the result of an exploration of these questions. It is a trade simulator that generates visual and quantitative information to help strategy modelers visually identify and analyse areas of optimal expectation on charts, whether they are designing automated or discretionary strategies.
WARNING: Great Expectations is NOT an indicator that helps determine the current state of a market. It works by looking at points in the past from which the future is already known. It uses one definition of repainting extensively (i.e. it goes back in the past to print information that could not have been know at the time). Repainting understood that way is in fact almost all the indicator does! —albeit for what I hope is a noble cause. The indicator is of no use whatsoever in analyzing markets in real-time. If you do not understand what it does, please stay away!
This is an indicator—not a strategy that uses TradingView’s backtesting engine. It works by simulating trades, not unlike a backtest, but with the crucial difference that it assumes a trade (either long or short) is entered on all bars in the historic sample. It walks forward from each bar and determines possible outcomes, gathering individual trade statistics that in turn generate precious global statistics from all outcomes tested on the chart.
Great Expectations provides numbers summarizing trade results on all simulations run from the chart. Those numbers cannot be compared to backtest-produced numbers since all non-filtered bars are examined, even if an entry was taken on the bar immediately preceding the current one, which never happens in a backtest. This peculiarity does NOT invalidate Great Expectations calculations; it just entails that results be considered under a different light. Provided they are evaluated within the indicator’s context, they can be useful—sometimes even more than backtesting results, e.g. in evaluating the impact of parameter-fitting or variations in entry, exit or filtering strats.
Traders and strategy modelers are creatures of hope often suffering from blurred vision; my hope is that Great Expectations will help them appraise the validity of their setup and strat intuitions in a realistic fashion, preventing confirmation bias from obstructing perspective—and great expectations from turning into financial great deceptions.
USE CASES
You’ve identified what looks like a promising setup on other indicators. You load Great Expectations on the chart and evaluate if its high-expectation areas match locations where your setup’s conditions occur. Unless today is your lucky day, chances are the indicator will help you realize your setup is not as promising as you had hoped.
You want to get a rough estimate of the optimal trade duration for a chart and you don’t mind using the entry and exit strategies provided with the indicator. You use the trade length readouts of the indicator.
You’re experimenting with a new stop strategy and want to know how long it will keep you in trades, on average. You integrate your stop strategy in the indicator’s code and look at the average trade length it produces and the TST ratio to evaluate its performance.
You have put together your own entry and exit criteria and are looking for a filter that will help you improve backtesting results. You visually ascertain the suitability of your filter by looking at its results on the charts with great Expectations, to see if your filter is choosing its areas correctly.
You have a strategy that shows backtested trades on your chart. Great Expectations can help you evaluate how well your strategy is benefitting from high-opportunity areas while avoiding poor expectation spots.
You want more complete statistics on your set of strategies than what backtesting will provide. You use Great Expectations, knowing that it tests all bars in the sample that correspond to your criteria, as opposed to backtesting results which are limited to a subset of all possible entries.
You want to fool your friends into thinking you’ve designed the holy grail of indicators, something that identifies optimal opportunities on any chart; you show them the P&L cloud.
FEATURES
For one trade
At any given point on the chart, assuming a trade is entered there, Great Expectations shows you information specific to that trade simulation both on the chart and in the Data Window.
The chart can display:
the P & L Cloud which shows whether the trade ended profitably or not, and by how much,
the Opportunity & Risk Cloud which the maximum opportunity and risk the simulation encountered. When superimposed over the P & L cloud, you will see what I call the managed opportunity and risk, i.e the portion of maximum opportunity that was captured and the portion of the maximum risk that was incurred,
the target and if it was reached,
a background that uses a gradient to show different levels of trade length, P&L or how frequently the target was reached during simulation.
The Data Window displays more than 40 values on individual trades and global results. For any given trade you will know:
Entry/Exit levels, including slippage impact,
It’s outcome and duration,
P/L achieved,
The fraction of the maximum opportunity/risk managed by the trade.
For all trades
After going through all the possible trades on the chart, the indicator will provide you with a rare view of all outcomes expressed with the P&L cloud, which allows us to instantly see the most/least profitable areas of a chart using trade data as support, while also showing its relationship with the opportunity/risk encountered during the simulation. The difference between the two clouds is the managed opportunity and risk.
The Data Window will present you with numbers which we will go through later. Some of them are: average stop size, P/L, win rate, % opportunity managed, trade lengths for different types of trade outcomes and the TST (Target:Stop Travel) ratio.
Let’s see Great Expectations in action… and remember to open your Data Window!
INPUTS
Trade direction : You must first choose if you wish to look at long or short trades. Because of the way the indicator works and the amount of visual information on the chart, it is only practical to look at one type of trades at a time. The default is Longs.
Maximum trade Length (MaxL) : This is the maximum walk forward distance the simulator will go in analyzing outcomes from any given point in the past. It also determines the size of the dead zone among the chart’s last bars. A red background line identifies the beginning of the dead zone for which not enough bars have elapsed to analyze outcomes for the maximum trade length defined. If an ATR-based entry stop is used, that length is added to the wait time before beginning simulations, so that the first entry starts with a clean ATR value. On a sample of around 16000 bars, my tests show that the indicator runs into server errors at lengths of around 290, i.e. having completed ~4,6M simulation loop iterations. That is way too high a length anyways; 100 will usually be amply enough to ring out all the possibilities out of a simulation, and on shorter time frames, 30 can be enough. While making it unduly small will prevent simulations of expressing the market’s potential, the less you use, the faster the indicator will run. The default is 40.
Unrealized P&L base at End of Trade (EOT) : When a simulation ends and the trade is still open, we calculate unrealized P&L from an exit order executed from either the last in-trade stop on the previous bar, or the close of the last bar. You can readily see the impact of this selection on the chart, with the P&L cloud. The default is on the close.
Display : The check box besides the title does nothing.
Show target : Shows a green line displaying the trade’s target expressed as a multiple of X, i.e. the amplitude of the entry stop. I call this value “X” and use it as a unit to express profit and loss on a trade (some call it “R”). The line is highlighted for trades where the close reached the target during the trade, whether the trade ended in profit or loss. This is also where you specify the multiple of X you wish to use in calculating targets. The multiple is used even if targets are not displayed.
Show P&L Cloud : The cloud allows traders to see right away the profitable areas of the chart. The only line printed with the cloud is the “end of trade line” (EOT). The EOT line is the only way one can see the level where a trade ended on the chart (in the Data Window you can see it as the “Exit Fill” value). The EOT level for the trade determines if the trade ended in a profit or a loss. Its value represents one of the following:
- fill from order executed at close of bar where stop is breached during trade (which produces “Realized P/L”),
- simulation of a fill pseudo-fill at the user-defined EOT level (last close or stop level) if the trade runs its course through MaxL bars without getting stopped (producing Unrealized P/L).
The EOT line and the cloud fill print in green when the trade’s outcome is profitable and in red when it is not. If the trade was closed after breaching the stop, the line appears brighter.
Show Opportunity&Risk Cloud : Displays the maximum opportunity/risk that was present during the trade, i.e. the maximum and minimum prices reached.
Background Color Scheme : Allows you to choose between 3 different color schemes for the background gradients, to accommodate different types of chart background/candles. Select “None” if you don’t want a background.
Background source : Determines what value will be used to generate the different intensities of the gradient. You can choose trade length (brighter is shorter), Trade P&L (brighter is higher) or the number of times the target was reached during simulation (brighter is higher). The default is Trade Length.
Entry strat : The check box besides the title does nothing. The default strat is All bars, meaning a trade will be simulated from all bars not excluded by the filters where a MaxL bars future exists. For fun, I’ve included a pseudo-random entry strat (an indirect way of changing the seed is to vary the starting date of the simulation).
Show Filter State : Displays areas where the combination of filters you have selected are allowing entries. Filtering occurs as per your selection(s), whether the state is displayed or not. The effect of multiple selections is additive. The filters are:
1. Bar direction: Longs will only be entered if close>open and vice versa.
2. Rising Volume: Applies to both long and shorts.
3. Rising/falling MA of the length you choose over the number of bars you choose.
4. Custom indicator: You can feed your own filtering signal through this from another indicator. It must produce a signal of 1 to allow long entries and 0 to allow shorts.
Show Entry Stops :
1. Multiple of user-defined length ATR.
2. Fixed percentage.
3. Fixed value.
All entry stops are calculated using the entry fill price as a reference. The fill price is calculated from the current bar’s open, to which slippage is added if configured. This simulates the case where the strategy issued the entry signal on the previous bar for it to be executed at the next bar’s open.
The entry stop remains active until the in-trade stop becomes the more aggressive of the two stops. From then on, the entry stop will be ignored, unless a bar close breaches the in-trade stop, in which case the stop will be reset with a new entry stop and the process repeats.
Show In-trade stops : Displays in bright red the selected in-trade stop (be sure to read the note in this section about them).
1. ATR multiple: added/subtracted from the average of the two previous bars minimum/maximum of open/close.
2. A trailing stop with a deviation expressed as a multiple of entry stop (X).
3. A fixed percentage trailing stop.
Trailing stops deviations are measured from the highest/lowest high/low reached during the trade.
Note: There is a twist with the in-trade stops. It’s that for any given bar, its in-trade stop can hold multiple values, as each successive pass of the advancing simulation loops goes over it from a different entry points. What is printed is the stop from the loop that ended on that bar, which may have nothing to do with other instances of the trade’s in-trade stop for the same bar when visited from other starting points in previous simulations. There is just no practical way to print all stop values that were used for any given bar. While the printed entry stops are the actual ones used on each bar, the in-trade stops shown are merely the last instance used among many.
Include Slippage : if checked, slippage will be added/subtracted from order price to yield the fill price. Slippage is in percentage. If you choose to include slippage in the simulations, remember to adjust it by considering the liquidity of the markets and the time frame you’ll be analyzing.
Include Fees : if checked, fees will be subtracted/added to both realized an unrealized trade profits/losses. Fees are in percentage. The default fees work well for crypto markets but will need adjusting for others—especially in Forex. Remember to modify them accordingly as they can have a major impact on results. Both fees and slippage are included to remind us of their importance, even if the global numbers produced by the indicator are not representative of a real trading scenario composed of sequential trades.
Date Range filtering : the usual. Just note that the checkbox has to be selected for date filtering to activate.
DATA WINDOW
Most of the information produced by this indicator is made available in the Data Window, which you bring up by using the icon below the Watchlist and Alerts buttons at the right of the TV UI. Here’s what’s there.
Some of the information presented in the Data Window is standard trade data; other values are not so standard; e. g. the notions of managed opportunity and risk and Target:Stop Travel ratio. The interplay between all the values provided by Great Expectations is inherently complex, even for a static set of entry/filter/exit strats. During the constant updating which the habitual process of progressive refinement in building strategies that is the lot of strategy modelers entails, another level of complexity is no doubt added to the analysis of this indicator’s values. While I don’t want to sound like Wolfram presenting A New Kind of Science , I do believe that if you are a serious strategy modeler and spend the time required to get used to using all the information this indicator makes available, you may find it useful.
Trade Information
Entry Order : This is the open of the bar where simulation starts. We suppose that an entry signal was generated at the previous bar.
Entry Fill (including slip.) : The actual entry price, including slippage. This is the base price from which other values will be calculated.
Exit Order : When a stop is breached, an exit order is executed from the close of the bar that breached the stop. While there is no “In-trade stop” value included in the Data Window (other than the End of trade Stop previously discussed), this “Exit Order” value is how we can know the level where the trade was stopped during the simulation. The “Trade Length” value will then show the bar where the stop was breached.
Exit Fill (including slip.) : When the exit order is simulated, slippage is added to the order level to create the fill.
Chart: Target : This is the target calculated at the beginning of the simulation. This value also appear on the chart in teal. It is controlled by the multiple of X defined under the “Show Target” checkbox in the Inputs.
Chart: Entry Stop : This value also appears on the chart (the red dots under points where a trade was simulated). Its value is controlled by the Entry Strat chosen in the Inputs.
X (% Fill, including Fees) and X (currency) : This is the stop’s amplitude (Entry Fill – Entry Stop) + Fees. It represents the risk incurred upon entry and will be used to express P&L. We will show R expressed in both a percentage of the Entry Fill level (this value), and currency (the next value). This value represents the risk in the risk:reward ratio and is considered to be a unit of 1 so that RR can be expressed as a single value (i.e. “2” actually meaning “1:2”).
Trade Length : If trade was stopped, it’s the number of bars elapsed until then. The trade is then considered “Closed”. If the trade ends without being stopped (there is no profit-taking strat implemented, so the stop is the only exit strat), then the trade is “Open”, the length is MaxL and it will show in orange. Otherwise the value will print in green/red to reflect if the trade is winning/losing.
P&L (X) : The P&L of the trade, expressed as a multiple of X, which takes into account fees paid at entry and exit. Given our default target setting at 2 units of “X”, a trade that closes at its target will have produced a P&L of +2.0, i.e. twice the value of X (not counting fees paid at exit ). A trade that gets stopped late 50% further that the entry stop’s level will produce a P&L of -1.5X.
P&L (currency, including Fees) : same value as above, but expressed in currency.
Target first reached at bar : If price closed above the target during the trade (even if it occurs after the trade was stopped), this will show when. This value will be used in calculating our TST ratio.
Times Stop/Target reached in sim. : Includes all occurrences during the complete simulation loop.
Opportunity (X) : The highest/lowest price reached during a simulation, i.e. the maximum opportunity encountered, whether the trade was previously stopped or not, expressed as a multiple of X.
Risk (X) : The lowest/highest price reached during a simulation, i.e. the maximum risk encountered, whether the trade was previously stopped or not, expressed as a multiple of X.
Risk:Opportunity : The greater this ratio, the greater Opportunity is, compared to Risk.
Managed Opportunity (%) : The portion of Opportunity that was captured by the highest/low stop position, even if it occurred after a previous stop closed the trade.
Managed Risk (%) : The portion of risk that was protected by the lowest/highest stop position, even if it occurred after a previous stop closed the trade. When this value is greater than 100%, it means the trade’s stop is protecting more than the maximum risk, which is frequent. You will, however, never see close to those values for the Managed Opportunity value, since the stop would have to be higher than the Maximum opportunity. It is much easier to alleviate the risk than it is to lock in profits.
Managed Risk:Opportunity : The ratio of the two preceding values.
Managed Opp. vs. Risk : The Managed Opportunity minus the Managed Risk. When it is negative, which is most often is, it means your strat is protecting a greater portion of the risk than it captures opportunity.
Global Numbers
Win Rate(%) : Percentage of winning trades over all entries. Open trades are considered winning if their last stop/close (as per user selection) locks in profits.
Avg X%, Avg X (currency) : Averages of previously described values:.
Avg Profitability/Trade (APPT) : This measures expectation using: Average Profitability Per Trade = (Probability of Win × Average Win) − (Probability of Loss × Average Loss) . It quantifies the average expectation/trade, which RR alone can’t do, as the probabilities of each outcome (win/lose) must also be used to calculate expectancy. The APPT combine the RR with the win rate to yield the true expectancy of a strategy. In my usual way of expressing risk with X, APPT is the equivalent of the average P&L per trade expressed in X. An APPT of -1.5 means that we lose on average 1.5X/trade.
Equity (X), Equity (currency) : The cumulative result of all trade outcomes, expressed as a multiple of X. Multiplied by the Average X in currency, this yields the Equity in currency.
Risk:Opportunity, Managed Risk:Opportunity, Managed Opp. vs. Risk : The global values of the ones previously described.
Avg Trade Length (TL) : One of the most important values derived by going through all the simulations. Again, it is composed of either the length of stopped trades, or MaxL when the trade isn’t stopped (open). This value can help systems modelers shape the characteristics of the components they use to build their strategies.
Avg Closed Win TL and Avg Closed Lose TL : The average lengths of winning/losing trades that were stopped.
Target reached? Avg bars to Stop and Target reached? Avg bars to Target : For the trades where the target was reached at some point in the simulation, the number of bars to the first point where the stop was breached and where the target was reached, respectively. These two values are used to calculate the next value.
TST (Target:Stop Travel Ratio) : This tracks the ratio between the two preceding values (Bars to first stop/Bars to first target), but only for trades where the target was reached somewhere in the loop. A ratio of 2 means targets are reached twice as fast as stops.
The next values of this section are counts or percentages and are self-explanatory.
Chart Plots
Contains chart plots of values already describes.
NOTES
Optimization/Overfitting: There is a fine line between optimizing and overfitting. Tools like this indicator can lead unsuspecting modelers down a path of overfitting that often turns strategies into over-specialized beasts that do not perform elegantly when confronted to the real-world. Proven testing strategies like walk forward analysis will go a long way in helping modelers alleviate this risk.
Input tuning: Because the results generated by the indicator will vary with the parameters used in the active entry, filtering and exit strats, it’s important to realize that although it may be fun at first, just slapping the default settings on a chart and time frame will not yield optimal nor reliable results. While using ATR as often as possible (as I do in this indicator) is a good way to make strat parametrization adaptable, it is not a foolproof solution.
There is no data for the last MaxL bars of the chart, since not enough trade future has elapsed to run a simulation from MaxL bars back.
Modifying the code: I have tried to structure the code modularly, even if that entails a larger code base, so that you can adapt it to your needs. I’ve included a few token components in each of the placeholders designed for entry strategies, filters, entry stops and in-trade stops. This will hopefully make it easier to add your own. In the same spirit, I have also commented liberally.
You will find in the code many instances of standard trade management tasks that can be lifted to code TV strategies where, as I do in mine, you manage everything yourself and don’t rely on built-in Pine strategy functions to act on your trades.
Enjoy!
THANKS
To @scarf who showed me how plotchar() could be used to plot values without ruining scale.
To @glaz for the suggestion to include a Chandelier stop strat; I will.
To @simpelyfe for the idea of using an indicator input for the filters (if some day TV lets us use more than one, it will be useful in other modules of the indicator).
To @RicardoSantos for the random generator used in the random entry strat.
To all scripters publishing open source on TradingView; their code is the best way to learn.
To my trading buddies Irving and Bruno; who showed me way back how pro traders get it done.
ATR+VWAP Alert//These signals mostly consist of crossovers between a 13 VWMA and a 62 VWMA. I've found these two moving averages to be quite special in their ability to
//recognize a quick trend using volume data. The VWAP is used in the alert system as well, to give some perspective on which direction we are looking to take. We
//are also using ATR. We only take trades when the ATR is on the move, meaning we have a chance to catch a volatile move! Finally, we use RSI to help weed out bad
//trades. We only take 'longs' with bullish readings from RSI, and we only take 'shorts' with bearish readings from RSI. These alerts are fantastic for catching quick intraday
//trades in either direction. I recommend using a small 'take profit' target rather than using an exit indicator. These trades can move 20-30 pips and reverse just as quickly. Good luck!
//How To Use:
//When the alert system is added to the chart, you will notice up/down symbols appear at various locations. For bullish alerts, right click an 'Up' symbol and choose 'Add Alert on VWap & ATR..'
//There are two condition options. 'Long/short', and right below that 'Buy-Signal/Sell-Signal'. Choose 'long' and 'Buy-Signal'. At options, choose 'Once Per Bar Close'. Design your alert, and you're good to go.
//For bearish signals, find a 'down' signal on the chart. Right click and follow the same process, except choosing 'short/Sell-Signal' conditions.
Tips:
Use VWAP as a stop-loss. If a candle closes below/above the VWAP in the direction against you.. get out of the trade. The losses will be minimal and few compared to the wins. Use discretion and trade carefully. This works great with crypto. Invent your own exit. If you come up with a clever exit, please share!
You can contact me at my Discord!
discord.gg
TT ToniTrading Adjustable Price Fee Band [%]Simple but perfectly functional indicator with Trading fee bands.
Crypto Trading is with fees and very small trades often don't make sense due to the fees we need to pay. With this band you can visualize your fees before entering a trade and take smarter decisions for tight daytrading and scalping.
You type in the fee for just one trade, the Taker Fee for a Market Order. The bands show the fees in % times 2, so what you will pay for opening and closing the trade in reality. The band therefore shows the real break-even point, with included payed fees.
It additionally helps taking trading decisions or not with very small trades (Scalping).
You can smooth the bands if you want and you can addtionally show the true datapoints if you prefer smoothend bands. I recommend no bigger smoothing than 2, if you don't want to show the datapoints. Additionally you can fill the band, and of course adjust transperency, colour and all the general TradingView stuff.
Fee Overview in the current market for the indicator input field:
BingX with 10% fee reduction code = 0,045 %
BingX: Normal = 0,050 %
Bitget, ByBit, BitUnix, Blofin, Phemex: Normal = 0,060 %
Bitget, ByBit, BitUnix, Blofin, Phemex: with 20% fee reduction code = 0,048 %
Have fun Trading, Happy Profits!
Greetings
ToniTrading
RSI VWAP v1 [JopAlgo]RSI VWAP v1.1 made stronger by volume-aware!
We know there's nothing new and the original RSI already does an excellent job. We're just working on small, practical improvements – here's our take: The same basic idea, clearer display, and a single, specially developed rolling line: a VWAP of the RSI that incorporates volume (participation) into the calculation.
Do you prefer the pure classic?
You can still use Wilder or Cutler engines –
but the star here is the VW-RSI + rolling line.
This RSI also offers the possibility of illustrating a possible
POC (Point of Control - or the HAL or VAL) level.
However, the indicator does NOT plot any of these levels itself.
We have included an illustration in the chart for this!
We hope this version makes your decision-making easier.
What you’ll see
The RSI line with a 50 midline and optional bands: either static 70/30 or adaptive μ±k·σ of the Rolling Line.
One smoothing concept only: the Rolling Line (light blue) = VWAP of RSI.
Shadow shading between RSI and the Rolling Line (green when RSI > line, red when RSI < line).
A lighter tint only on the parts of that shadow that sit above the upper band or below the lower band (quick overbought/oversold context).
Simple divergence lines drawn from RSI pivots (green for regular bullish, red for regular bearish). No labels, no buy/sell text—kept deliberately clean.
What’s new, and why it helps
VW-RSI engine (default):
RSI can be computed from volume-weighted up/down moves, so momentum reflects how much traded when price moved—not just the direction.
Rolling Line (VWAP of RSI) with pure VWAP adaptation:
Low volume: blends toward a faster VWAP so early, thin starts aren’t missed.
Volume spikes: blends toward a slower VWAP so a single heavy bar doesn’t whip the curve.
You can reveal the Base Rolling (pre-adaptation) line to see exactly how much adaptation is happening.
Adaptive bands (optional):
Instead of fixed 70/30, use mean ± k·stdev of the Rolling Line over a lookback. Levels breathe with the market—useful in strong trends where static bounds stay pinned.
Minimal, readable panel:
One smoothing, one story. The shadow tells you who’s in control; the lighter highlight shows stretch beyond your lines.
How to read it (fast)
Bias: RSI above 50 (and a rising Rolling Line) → bullish bias; below 50 → bearish bias.
Trigger: RSI crossing the Rolling Line with the bias (e.g., above 50 and crossing up).
Stretch: Near/above the upper band, avoid chasing; near/below the lower band, avoid panic—prefer a cross back through the line.
Divergence lines: Use as context, not as standalone signals. They often help you wait for the next cross or avoid late entries into exhaustion.
Settings that actually matter
RSI Engine: VW-RSI (default), Wilder, or Cutler.
Rolling Line Length: the VWAP length on RSI (higher = calmer, lower = earlier).
Adaptive behavior (pure VWAP):
Speed-up on Low Volume → blends toward fast VWAP (factor of your length).
Dampen Spikes (volume z-score) → blends toward slow VWAP.
Fast/Slow Factors → how far those fast/slow variants sit from the base length.
Bands: choose Static 70/30 or Adaptive μ±k·σ (set the lookback and k).
Visuals: show/hide Base Rolling (ref), main shadow, and highlight beyond bands.
Signal gating: optional “ignore first bars” per day/session if you dislike open noise.
Starter presets
Scalp (1–5m): RSI 9–12, Rolling 12–18, FastFactor ~0.5, SlowFactor ~2.0, Adaptive on.
Intraday (15m–1H): RSI 10–14, Rolling 18–26, Bands k = 1.0–1.4.
Swing (4H–1D): RSI 14–20, Rolling 26–40, Bands k = 1.2–1.8, Adaptive on.
Where it shines (and limits)
Best: liquid markets where volume structure matters (majors, indices, large caps).
Works elsewhere: even with imperfect volume, the shadow + bands remain useful.
Limits: very thin/illiquid assets reduce the benefit of volume-weighting—lengthen settings if needed.
Attribution & License
Based on the concept and baseline implementation of the “Relative Strength Index” by TradingView (Pine v6 built-in).
Released as Open-source (MPL-2.0). Please keep the license header and attribution intact.
Disclaimer
For educational purposes only; not financial advice. Markets carry risk. Test first, use clear levels, and manage risk. This project is independent and not affiliated with or endorsed by TradingView.
1m Scalping ATR (with SL & Zones)A universal ATR indicator that anchors volatility to your stop-loss.
Read any market (FX, JPY pairs, Gold/Silver, indices, crypto) consistently—regardless of pip/point conventions and timeframe.
Why this indicator?
Classic ATR is absolute (pips/points) and feels different across markets/TFs. ATR Takeoff normalizes ATR to your stop-loss in pips and highlights clear zones for “quiet / ideal / too volatile,” so you instantly know if a 10-pip SL fits current conditions.
Key features
Auto pip detection (FX, JPY, XAU/XAG, indices, BTC/ETH).
Selectable ATR source: chart timeframe or fixed ATR TF (e.g., “15”, “30”, “60”).
Display modes:
Percent of SL – ATR relative to SL in %, great for M1 (typical 10–30%).
Multiple of SL – ATR as a multiple of SL (e.g., 0.6× / 1.0× / 1.2×).
Panel zones:
Green = “Ready for takeoff” (≤ Low), Yellow = reference (Mid), Red = too volatile (≥ High).
Status badge (top-right): Quiet / ATR ok / Wild, current ATR/SL value, ATR TF used.
Direction-agnostic: Works the same for longs and shorts.
Inputs (at a glance)
Length / Smoothing (RMA/SMA/EMA/WMA): ATR base settings.
Your Stop-Loss (Pips): Reference SL (e.g., 10).
ATR Timeframe (empty = chart): Use chart TF or a fixed TF.
Display Mode: “Percent of SL” or “Multiple of SL.”
Low/Mid/High (Percent Mode): Zone thresholds in % of SL.
Low/Mid/High (Multiple Mode): Zone thresholds in ×SL.
Recommended defaults
Length 14, Smoothing RMA, SL 10 pips
Display Mode: Percent of SL
Low/Mid/High (%): 15 / 20 / 25
ATR Timeframe: empty (= chart) for reactive, or “30” for smoother M30 context with M1 entries.
How to use
Set SL (pips). 2) Choose display mode. 3) Optionally pick ATR TF.
Interpretation:
≤ Low (green): setups allowed.
≈ Mid (yellow): neutral reference.
≥ High (red): too volatile → adjust SL/size or wait.
Note: Auto-pip relies on common ticker naming; verify on exotic symbols.
Disclaimer: For research/education. Not financial advice.
Weekend Hunter Ultimate v6.2 Weekend Hunter Ultimate v6.2 - Automated Crypto Weekend Trading System
OVERVIEW:
Specialized trading strategy designed for cryptocurrency weekend markets (Saturday-Sunday) when institutional traders are typically offline and market dynamics differ significantly from weekdays. Optimized for 15-minute timeframe execution with multi-timeframe confluence analysis.
KEY FEATURES:
- Weekend-Only Trading: Automatically activates during configurable weekend hours
- Dynamic Leverage: 5-20x leverage adjusted based on market safety and signal confidence
- Multi-Timeframe Analysis: Combines 4H trend, 1H momentum, and 15M execution
- 10 Pre-configured Crypto Pairs: BTC, ETH, LINK, XRP, DOGE, SOL, AVAX, PEPE, TON, POL
- Position & Risk Management: Max 4 concurrent positions, -30% account protection
- Smart Trailing Stops: Protects profits when approaching targets
RISK MANAGEMENT:
- Maximum daily loss: 5% (configurable)
- Maximum weekend loss: 15% (configurable)
- Per-position risk: Capped at 120-156 USDT
- Emergency stops for flash crashes (8% moves)
- Consecutive loss protection (4 losses = pause)
TECHNICAL INDICATORS:
- CVD (Cumulative Volume Delta) divergence detection
- ATR-based dynamic stop loss and take profit
- RSI, MACD, Bollinger Bands confluence
- Volume surge confirmation (1.5x average)
- Weekend liquidity adjustments
INTEGRATION:
- Designed for Bybit Futures (0.075% taker fee)
- WunderTrading webhook compatibility via JSON alerts
- Minimum position size: 120 USDT (Bybit requirement)
- Initial capital: $500 recommended
TARGET METRICS:
- Win rate target: 65%
- Average win: 5.5%
- Average loss: 1.8%
- Risk-reward ratio: ~3:1
IMPORTANT DISCLAIMERS:
- Past performance does not guarantee future results
- Leveraged trading carries substantial risk of loss
- Weekend crypto markets have 13% of normal liquidity
- Not suitable for traders who cannot afford to lose their entire investment
- Requires continuous monitoring and adjustment
USAGE:
1. Apply to 15-minute charts only
2. Configure weekend hours for your timezone
3. Set up webhook alerts for automation
4. Monitor performance table in top-right corner
5. Adjust parameters based on your risk tolerance
This is an experimental strategy for educational purposes. Always test with small amounts first and never invest more than you can afford to lose completely.
Trend Score with Dynamic Stop Loss HTF
How the Trend Score System Works
This indicator uses a Trend Score (TS) to measure price momentum over time. It tracks whether price is breaking higher or lower, then sums these moves into a cumulative score to define trend direction.
⸻
1. Trend Score (+1 / -1 Mechanism)
On each new bar:
• +1 point: if the current bar breaks the previous bar’s high.
• −1 point: if the current bar breaks the previous bar’s low.
• If both happen in the same bar, they cancel each other out.
• If neither happens, the score does not change.
This creates a simple running measure of bullish vs bearish pressure.
⸻
2. Cumulative Trend Score
The Trend Score is cumulative, meaning each new +1 or -1 is added to the total score, building a continuous count.
• Rising scores = buyers are consistently pushing price to higher highs.
• Falling scores = sellers are consistently pushing price to lower lows.
This smooths out noise and helps identify persistent momentum rather than single-bar spikes.
⸻
3. Trend Flip Trigger (default = 3)
A trend flip occurs when the cumulative Trend Score changes by 3 points (default setting) in the opposite direction of the current trend.
• Bullish Flip:
• Cumulative TS rises 3 points from its most recent low pivot.
• Marks a potential start of a new uptrend.
• A bullish stop-loss (SL) is set at the most recent swing low.
• Bearish Flip:
• Cumulative TS falls 3 points from its most recent high pivot.
• Marks a potential start of a new downtrend.
• A bearish SL is set at the most recent swing high.
Example:
• TS is at -2, then climbs to +1.
• That’s a +3 change, triggering a bullish flip.
⸻
4. Visual Summary
• Green background: Active bullish trend.
• Red background: Active bearish trend.
• ▲ Triangle Up: A bullish flip occurred this bar.
• Stop Loss Line: Shows the structural low used for risk management.
⸻
Why This Matters
The Trend Score measures trend pressure simply and objectively:
• +1 / -1 mechanics track real price behavior (breakouts of highs and lows).
• Cumulative changes of 3 points act like a momentum filter, ignoring small reversals.
• This helps you see true regime shifts on higher timeframes, which is especially useful for swing trades and investing decisions.
⸻
Key Takeaways
• Only flips after meaningful swings: prevents overreacting to single-bar noise.
• SL shows invalidation point: helps you know where a trend thesis fails.
• Works best on Daily or Weekly charts: for smoother, more reliable signals. Using Trend Score for Long-Term Investing
This indicator is designed to support decision-making for higher timeframe investing, such as swing trades, multi-month positions, or even multi-year holds.
It helps you:
• Identify major bullish regimes.
• Decide when to add to winning positions (DCA up).
• Know when to pause buying or consider trimming during weak periods.
• Stay disciplined while holding long-term winners.
Important Note:
These are suggestions for context. Always combine them with your own analysis, portfolio allocation rules, and risk tolerance.
⸻
1. Start With the Higher Timeframe
• Use Weekly charts for a broad investing view.
• Use Daily charts only for fine-tuning entry points or deciding when to add.
• A Bullish Flip on Weekly suggests the market may be entering a major uptrend.
• If Weekly is bullish and Daily also turns bullish, it’s extra confirmation of strength.
⸻
2. Building a Position with DCA
Goal: Grow your position gradually during strong bullish regimes while staying aware of risk.
A. Initial Buy
• Start with a small initial allocation when a Bullish Flip appears on Weekly or Daily.
• This is just a starter position to get exposure while the new trend develops.
B. Adding Through Strength (DCA Up)
• Consider adding during pullbacks, as long as price stays above the active SL line.
• Each add should be smaller or equal to your first buy.
• Spread out adds over time or price levels, instead of going all-in at once.
C. Pause Buying When:
• Price approaches or touches the SL level (trend invalidation).
• A Bearish Flip appears on Weekly or Daily — this signals potential weakness.
• Your total position size reaches your maximum allocation limit for that asset.
⸻
3. Holding Winners
When a position grows in profit:
• Stay in the trend as long as the Weekly regime remains bullish.
• The indicator’s green background acts as a reminder to hold, not panic sell.
• Use the SL bubble to monitor where the trend could potentially break.
• Avoid selling just because of small pullbacks — focus on big-picture trend health.
⸻
4. Taking Partial Profits
While this tool is designed to help hold long-term winners, there may be times to lighten risk:
• After large, rapid moves far above the SL, consider trimming a small portion of your position.
• When MFE (Maximum Favorable Excursion) in the table reaches unusually high levels, it may signal overextension.
• If the Weekly chart turns Neutral or Bearish, you can gradually reduce exposure while waiting for the next Bullish Flip.
⸻
5. Using the Stop Loss Line for Awareness
The Dynamic SL line represents a structural level that, if broken, may suggest the bullish trend is weakening.
How to think about it:
• Above SL: Market remains structurally healthy — continue holding or adding gradually.
• Close to SL: Pause adds. Be cautious and consider tightening your risk.
• Below SL: Treat this as a potential signal to reassess your position, especially if the break is confirmed on Weekly.
The SL is not a hard stop — it’s a visual guide to help you manage expectations.
⸻
6. Example Use Case
Imagine you are investing in a growth stock:
• Weekly Bullish Flip: You open a small starter position.
• Price pulls back slightly but stays above SL: You add a second, smaller tranche.
• Trend continues up for months: You hold and stop adding once your desired allocation is reached.
• Price doubles: You trim 10–20% to lock some profits, but continue holding the majority.
• Price later dips below SL: You slow down, reassess, and decide whether to reduce exposure.
This keeps you:
• Participating in major uptrends.
• Avoiding overcommitment during weak phases.
• Making adjustments gradually, not emotionally.
⸻
7. Suggested Workflow
1. Check Weekly chart → is it Bullish?
2. If yes, review Daily chart to fine-tune entry or adds.
3. Build exposure gradually while Weekly remains bullish.
4. Watch SL bubbles as awareness points for risk management.
5. Use partial trims during big rallies, but avoid exiting entirely too soon.
6. Reassess if Weekly turns Neutral or Bearish.
⸻
Key Takeaways
• Use this as a compass, not a command system.
• Weekly flips = big picture direction.
• Daily flips = timing and precision.
• Add gradually (DCA) while above SL, pause near SL, reassess below SL.
• Hold winners as long as Weekly remains bullish.
Trend Score with Dynamic Stop Loss RTH
📘 Trend Score with Dynamic Stop Loss (RTH) — Guide
🔎 Overview
This indicator tracks intraday momentum during Regular Trading Hours and flags trend flips using a cumulative TrendScore. It also draws dynamic stop-loss levels and shows a live stats table for quick decision-making and journaling.
⸻
⚙️ Core Concepts
1) TrendScore (per bar)
• +1 if the current bar makes a higher high than the previous bar (counted once per bar).
• –1 if the current bar makes a lower low than the previous bar (counted once per bar).
• If a bar takes both the prior high and low, the net contribution can cancel out within that bar.
2) Cumulative TrendScore (running total)
• The per-bar TrendScore accumulates across the session to form the cumulative TrendScore (TS).
• TS resets to 0 at session open and is cleared at session close.
• Rising TS = persistent upside pressure; falling TS = persistent downside pressure.
⸻
🔄 Flip Rules (3-point reversal of the cumulative TrendScore)
A flip occurs when the cumulative TrendScore reverses by 3 points in the opposite direction of the current trend.
• Bullish Flip
• Trigger: After a decline, the cumulative TrendScore rises by +3 from its down-leg.
• Interpretation: Bulls have taken control.
• Stop-loss: the lowest price of the prior (down) leg.
• Bearish Flip
• Trigger: After a rise, the cumulative TrendScore falls by –3 from its up-leg.
• Interpretation: Bears have taken control.
• Stop-loss: the highest price of the prior (up) leg.
Flip bars are marked with ▲ (lime) for bullish and ▼ (red) for bearish.
Note: If you prefer a different reversal distance, adjust the flip distance setting in the script’s inputs (default is 3).
⸻
📏 Stop-Loss Lines
• A dotted line is drawn at the prior leg’s extreme:
Green (below price) after a bullish flip.
Red (above price) after a bearish flip.
• Options:
Remove on touch for a clean chart.
Freeze on touch to keep a visual record for journaling.
• All stop lines are cleared at session end.
⸻
🧮 Stats Table (what you see)
• Trend: Bull / Bear / Neutral
• Bars in Trend: Count since the flip bar
• Since Flip: Current close minus flip bar close
• Since SL: Current close minus active stop level
• MFE-Maximum Favorable Excursion: Highest favorable move since flip
• MAE-Maximum Adverse Excursion: Largest adverse move since flip
Table colors reflect the current trend (green for bull, red for bear).
⸻
📊 Trading Playbook
Entries
• Aggressive: Enter immediately on a flip marker.
• Conservative: Wait for a small pullback that doesn’t violate the stop.
Stops
• Place the stop at the script’s flip stop-loss line (the prior leg extreme).
Exits
Choose one style and stick with it:
• Stop-only: Exit when the stop is hit.
• Time-based: Flatten at session close.
• Targets: Scale/close at 1R, 2R.
• Trailing: Trail behind minor swings once MFE > 1R.
Ultimately Exit choice is your own edge, so you must decide for yourself.
💡 Best Practices
• Skip the first few bars after the open (gap noise).
• Use regular candles (Heikin-Ashi will distort highs/lows).
• If you want fewer flips, increase the flip distance (e.g., 4 or 5). For more
responsiveness, use 2. Otherwise, increase your time frame to 5m, 10m, 15m.
• Keep SL lines frozen (not auto-removed) if you’re journaling.
Position Size CalculatorPosition Size Calculator
This open-source Pine Script® indicator helps traders manage risk by calculating position size, margin, and risk/reward based on account size, leverage, entry, stop-loss, and take-profit. It features a customizable table and optional chart lines/labels for clear trade planning across stocks, forex, crypto, and futures.
What It Does
- Position Size: Computes units to trade based on risk percentage and stop-loss distance, capped by leverage.
- Margin: Calculates initial margin in base currency and USD, with account size percentage.
- Risk/Reward: Shows risk-reward ratio, percentage price movements, and USD gains/losses.
- Visualization: Displays results in a table and optional chart lines/labels with customizable styles.
How It Works
- Precision: Adjusts price formatting using syminfo.mintick for accuracy across assets.
- Calculations: Position size = accountSize * (riskPercent / 100) / |entry - stoploss|, capped by accountSize * leverage / entry. Margin = positionSize / leverage. Risk-reward = |takeprofit - entry| / |stoploss - entry|.
- Display: Table shows metrics; optional lines/labels plot entry, stop-loss, and take-profit with percentage and USD details.
How to Use
- Set Inputs:
1- Account Size (USD): Your capital (e.g., 1000).
2- % Risk per Trade: Risk tolerance (e.g., 1%).
3- Leverage: Broker leverage (e.g., 1x, 10x).
4- Entry, Stop Loss, Take Profit: Trade prices.
5- Show Lines and Labels: Enable chart overlays.
- Customize: Adjust table position, colors, and line styles (Solid, Dashed, Dotted).
- View Results: Table shows position size, margin, and risk/reward. Chart lines/labels (if enabled) display prices, percentages, and USD outcomes.
- Apply: Use metrics for trade execution; modify code for custom features.
Notes
- Ensure valid inputs (entry ≠ stop-loss, both positive) to avoid “N/A”.
- Open-source: Inspect or extend the code for your needs.
- Contact the author via TradingView for feedback.
RTH Levels: VWAP + PDH/PDL + ONH/ONL + IBAlgo Index — Levels Pro (ONH/ONL • PDH/PDL • VWAP±Bands • IB • Gaps)
Purpose. A session-aware, non-repainting levels tool for intraday decision-making. Designed for futures and indices, with clean visuals, alerts, and a one-click Minimal Mode for screenshot-ready charts.
What it plots
• PDH/PDL (RTH-only) – Prior Regular Trading Hours high/low, computed intraday and frozen at the RTH close (no 24h mix-ups, no repainting).
• ONH/ONL – Prior Overnight high/low, held throughout RTH.
• RTH VWAP with ±σ bands – Volume-weighted variance, reset each RTH.
• Initial Balance (IB) – First N minutes of RTH, plus 1.5× / 2.0× extensions after IB completes.
• Today’s RTH Open & Prior RTH Close – With gap detection and “gap filled” alert.
• Killzone shading – NY Open (09:30–10:30 ET) and Lunch (11:15–13:30 ET).
• Values panel (top-right) – Each level with live distance in points & ticks.
• Right-edge level tags – With anti-overlap (stagger + vertical jitter).
• Price-scale tags – Native trackprice markers that always “stick” to the axis.
⸻
New in v6.4
• Minimal Mode: one click for a clean look (thinner lines, VWAP bands/IB extensions hidden, on-chart right-edge labels off; price-scale tags remain).
• Theme presets: Dark Hi-Contrast / Light Minimal / Futures Classic / Muted Dark.
• Anti-overlap controls: horizontal staggering, vertical jitter, and baseline offset to keep tags readable even when levels cluster.
⸻
Quick start (2 minutes)
1. Add to chart → keep defaults.
2. Sessions (ET):
• RTH Session default: 09:30–16:00 (US equities cash hours).
• Overnight Session default: 18:00–09:29.
Adjust for your market if you use different “day” hours (e.g., many use 08:20–13:30 ET for COMEX Gold).
3. Theme & Minimal Mode: pick a Theme Preset; enable Minimal Mode for screenshots.
4. Visibility: toggle PD/ON/VWAP/IB/References/Panel to taste.
5. Right-edge labels: turn Show Right-Edge Labels on. If they crowd, tune:
• Anti-overlap: min separation (ticks)
• Horizontal offset per tag (bars)
• Vertical jitter per step (ticks)
• Right-edge baseline offset (bars)
6. Alerts: open Add alert → Condition: and pick the events you want.
⸻
How levels are computed (no repainting)
• PDH/PDL: Intraday H/L are accumulated only while in RTH and saved at RTH close for “yesterday’s” values.
• ONH/ONL: Accumulated across the defined Overnight window and then held during RTH.
• RTH VWAP & ±σ: Volume-weighted mean and standard deviation, reset at the RTH open.
• IB: First N minutes of RTH (default 60). Extensions (1.5×/2.0×) appear after IB completes.
• Gaps: Today’s RTH open vs prior RTH close; “Gap Filled” triggers when price trades back to prior close.
⸻
Practical playbooks (how to trade around the levels)
1) PDH/PDL interactions
• Rejection: Price taps PDH/PDL then closes back inside → mean-reversion toward VWAP/IB.
• Acceptance: Close/hold beyond PDH/PDL with momentum → continuation to next HTF/IB target.
• Alert: PD Touch/Break.
2) ONH/ONL “taken”
• Often one ON extreme is taken during RTH. ONH Taken / ONL Taken → check if it’s a clean break or sweep & reclaim.
• Sweep + reclaim near VWAP can fuel rotations through the ON range.
3) VWAP ±σ framework
• Balanced: First tag of ±1σ often reverts toward VWAP.
• Trend: Persistent trade beyond ±1σ + IB break → target ±2σ/±3σ.
• Alerts: VWAP Cross and VWAP Reject (cross then immediate fail back).
4) IB breaks
• After IB completes, a clean IB break commonly targets 1.5× and sometimes 2.0×.
• Quick return inside IB = possible fade back to the opposite IB edge/VWAP.
• Alerts: IB Break Up / Down.
5) Gaps
• Gap-and-go: Opening drive away from prior close + VWAP support → trend until IB completion.
• Gap-fill: Weak open and VWAP overhead/underfoot → trade toward prior close; manage on Gap Filled alert.
Pro tip: Stack confluences (e.g., ONL sweep + VWAP reclaim + IB hold) and respect your execution rules (e.g., require a 5-minute close in direction, or your order-flow confirmation).
⸻
Inputs you’ll actually touch
• Sessions (ET): Session Timezone, RTH Session, Overnight Session.
• Visibility: toggles for PD/ON/VWAP/IB/Ref/Panel.
• VWAP bands: set σ multipliers (±1/±2/±3).
• IB: duration (minutes) and extension multipliers (1.5× / 2.0×).
• Style & Theme: Theme Preset, Main Line Width, Trackprice, Minimal Mode, and anti-overlap controls.
⸻
Alerts included
• PD Touch/Break — High ≥ PDH or Low ≤ PDL
• ONH Taken / ONL Taken — First in-RTH take of ONH/ONL
• VWAP Cross — Close crosses VWAP
• VWAP Reject — Cross then immediate fail back
• IB Break Up / Down — Break of IB High/Low after IB completes
• Gap Filled — Price trades back to prior RTH close
Setup: Add alert → Condition: Algo Index — Levels Pro → choose event → message → Notify on app/email.
⸻
Panel guide
The top-right panel shows each level plus live distance from last price:
LevelValue (Δpoints | Δticks)
Coloring: green if level is below current price, red if above.
⸻
Styling & screenshot tips
• Use Theme Preset that matches your chart.
• For dark charts, “Dark Hi-Contrast” with Main Line Width = 3 works well.
• Enable Trackprice for crisp axis tags that always stick to the right edge.
• Turn on Minimal Mode for cleaner screenshots (no VWAP bands or IB extensions, on-chart tags off; price-scale tags remain).
• If tags crowd, increase min separation (ticks) to 30–60 and horizontal offset to 3–5; add vertical jitter (4–12 ticks) and/or push tags farther right with baseline offset (bars).
⸻
Behavior & limitations
• Levels are computed incrementally; tables refresh on the last bar for efficiency.
• Right-edge labels are placed at bar_index + offset and do not track extra right-margin scrolling (TradingView limitation). The price-scale tags (from trackprice) do track the axis.
• “RTH” is what you define in inputs. If your market uses different day hours, change the session strings so PDH/PDL reflect your definition of “yesterday’s session.”
⸻
FAQ
Q: My PDH/PDL don’t match the daily chart.
A: By design this uses RTH-only highs/lows, not 24h daily bars. Adjust sessions if you want a different definition.
Q: Right-edge tags overlap or don’t sit at the far right.
A: Increase min separation / horizontal offset / vertical jitter and/or push tags farther with baseline offset. If you want markers that always hug the axis, rely on Trackprice.
Q: Can I change killzones?
A: Yes—edit the session strings in settings or request a version with user inputs for custom windows.
⸻
Disclaimer
Educational use only. This is not financial advice. Always apply your own risk management and confirmation rules.
⸻
Enjoy it? Please ⭐ the script and share screenshots using Minimal Mode + a Theme Preset that fits your style.
SMC_CommonLibrary "SMC_Common"
Common types and utilities for Smart Money Concepts indicators
get_future_time(bars_ahead)
Parameters:
bars_ahead (int)
get_time_at_offset(offset)
Parameters:
offset (int)
get_mid_time(time1, time2)
Parameters:
time1 (int)
time2 (int)
timeframe_to_string(tf)
Parameters:
tf (string)
is_psychological_level(price)
Parameters:
price (float)
detect_swing_high(src_high, lookback)
Parameters:
src_high (float)
lookback (int)
detect_swing_low(src_low, lookback)
Parameters:
src_low (float)
lookback (int)
detect_fvg(h, l, min_size)
Parameters:
h (float)
l (float)
min_size (float)
analyze_volume(vol, volume_ma)
Parameters:
vol (float)
volume_ma (float)
create_label(x, y, label_text, bg_color, label_size, use_time)
Parameters:
x (int)
y (float)
label_text (string)
bg_color (color)
label_size (string)
use_time (bool)
SwingPoint
Fields:
price (series float)
bar_index (series int)
bar_time (series int)
swing_type (series string)
strength (series int)
is_major (series bool)
timeframe (series string)
LiquidityLevel
Fields:
price (series float)
bar_index (series int)
bar_time (series int)
liq_type (series string)
touch_count (series int)
is_swept (series bool)
quality_score (series float)
level_type (series string)
OrderBlock
Fields:
start_bar (series int)
end_bar (series int)
start_time (series int)
end_time (series int)
top (series float)
bottom (series float)
ob_type (series string)
has_liquidity_sweep (series bool)
has_fvg (series bool)
is_mitigated (series bool)
is_breaker (series bool)
timeframe (series string)
mitigation_level (series float)
StructureBreak
Fields:
level (series float)
break_bar (series int)
break_time (series int)
break_type (series string)
direction (series string)
is_confirmed (series bool)
source_swing_bar (series int)
source_time (series int)
SignalData
Fields:
signal_type (series string)
entry_price (series float)
stop_loss (series float)
take_profit (series float)
risk_reward_ratio (series float)
confluence_count (series int)
confidence_score (series float)
strength (series string)
Current Hourly Open Liquidity with Sweep DetectionStatistics indicate that if the current hourly candle reaches the high or low of the previous hourly candle, there is a strong likelihood that the price will return to the current hour's open, depending on how quickly the previous hour's high or low was swept. If the sweep occurs within the first 20 minutes, there is a 75% chance the current hour's open will be reached; if it takes between 21 and 40 minutes, the probability decreases to 50%; and if it takes longer than 41 minutes, the chance drops to 25%.
These statistics can help identify manipulation on the hourly timeframe and guide trade decisions accordingly. For instance, if the previous hourly high is taken within the first 20 minutes but the current hour's open is not reached, it may be wise to avoid long positions until it happens or consider short positions in the direction of the open liquidity, using your existing entry rules and risk management.
The indicator highlights the current hour's open with a line and label to visually represent that liquidity pool, adjusting the line's color based on whether and when the previous hour's high or low was tapped. Once the open is reached, the indicator can, depending on settings, remove the line and label from the chart (this is enabled by default) since the liquidity pool is no longer relevant, preventing chart clutter.
All colors, line widths, label text sizes, and colors can be customized.
KST Strategy [Skyrexio]Overview
KST Strategy leverages Know Sure Thing (KST) indicator in conjunction with the Williams Alligator and Moving average to obtain the high probability setups. KST is used for for having the high probability to enter in the direction of a current trend when momentum is rising, Alligator is used as a short term trend filter, while Moving average approximates the long term trend and allows trades only in its direction. Also strategy has the additional optional filter on Choppiness Index which does not allow trades if market is choppy, above the user-specified threshold. Strategy has the user specified take profit and stop-loss numbers, but multiplied by Average True Range (ATR) value on the moment when trade is open. The strategy opens only long trades.
Unique Features
ATR based stop-loss and take profit. Instead of fixed take profit and stop-loss percentage strategy utilizes user chosen numbers multiplied by ATR for its calculation.
Configurable Trading Periods. Users can tailor the strategy to specific market windows, adapting to different market conditions.
Optional Choppiness Index filter. Strategy allows to choose if it will use the filter trades with Choppiness Index and set up its threshold.
Methodology
The strategy opens long trade when the following price met the conditions:
Close price is above the Alligator's jaw line
Close price is above the filtering Moving average
KST line of Know Sure Thing indicator shall cross over its signal line (details in justification of methodology)
If the Choppiness Index filter is enabled its value shall be less than user defined threshold
When the long trade is executed algorithm defines the stop-loss level as the low minus user defined number, multiplied by ATR at the trade open candle. Also it defines take profit with close price plus user defined number, multiplied by ATR at the trade open candle. While trade is in progress, if high price on any candle above the calculated take profit level or low price is below the calculated stop loss level, trade is closed.
Strategy settings
In the inputs window user can setup the following strategy settings:
ATR Stop Loss (by default = 1.5, number of ATRs to calculate stop-loss level)
ATR Take Profit (by default = 3.5, number of ATRs to calculate take profit level)
Filter MA Type (by default = Least Squares MA, type of moving average which is used for filter MA)
Filter MA Length (by default = 200, length for filter MA calculation)
Enable Choppiness Index Filter (by default = true, setting to choose the optional filtering using Choppiness index)
Choppiness Index Threshold (by default = 50, Choppiness Index threshold, its value shall be below it to allow trades execution)
Choppiness Index Length (by default = 14, length used in Choppiness index calculation)
KST ROC Length #1 (by default = 10, value used in KST indicator calculation, more information in Justification of Methodology)
KST ROC Length #2 (by default = 15, value used in KST indicator calculation, more information in Justification of Methodology)
KST ROC Length #3 (by default = 20, value used in KST indicator calculation, more information in Justification of Methodology)
KST ROC Length #4 (by default = 30, value used in KST indicator calculation, more information in Justification of Methodology)
KST SMA Length #1 (by default = 10, value used in KST indicator calculation, more information in Justification of Methodology)
KST SMA Length #2 (by default = 10, value used in KST indicator calculation, more information in Justification of Methodology)
KST SMA Length #3 (by default = 10, value used in KST indicator calculation, more information in Justification of Methodology)
KST SMA Length #4 (by default = 15, value used in KST indicator calculation, more information in Justification of Methodology)
KST Signal Line Length (by default = 10, value used in KST indicator calculation, more information in Justification of Methodology)
User can choose the optimal parameters during backtesting on certain price chart.
Justification of Methodology
Before understanding why this particular combination of indicator has been chosen let's briefly explain what is KST, Williams Alligator, Moving Average, ATR and Choppiness Index.
The KST (Know Sure Thing) is a momentum oscillator developed by Martin Pring. It combines multiple Rate of Change (ROC) values, smoothed over different timeframes, to identify trend direction and momentum strength. First of all, what is ROC? ROC (Rate of Change) is a momentum indicator that measures the percentage change in price between the current price and the price a set number of periods ago.
ROC = 100 * (Current Price - Price N Periods Ago) / Price N Periods Ago
In our case N is the KST ROC Length inputs from settings, here we will calculate 4 different ROCs to obtain KST value:
KST = ROC1_smooth × 1 + ROC2_smooth × 2 + ROC3_smooth × 3 + ROC4_smooth × 4
ROC1 = ROC(close, KST ROC Length #1), smoothed by KST SMA Length #1,
ROC2 = ROC(close, KST ROC Length #2), smoothed by KST SMA Length #2,
ROC3 = ROC(close, KST ROC Length #3), smoothed by KST SMA Length #3,
ROC4 = ROC(close, KST ROC Length #4), smoothed by KST SMA Length #4
Also for this indicator the signal line is calculated:
Signal = SMA(KST, KST Signal Line Length)
When the KST line rises, it indicates increasing momentum and suggests that an upward trend may be developing. Conversely, when the KST line declines, it reflects weakening momentum and a potential downward trend. A crossover of the KST line above its signal line is considered a buy signal, while a crossover below the signal line is viewed as a sell signal. If the KST stays above zero, it indicates overall bullish momentum; if it remains below zero, it points to bearish momentum. The KST indicator smooths momentum across multiple timeframes, helping to reduce noise and provide clearer signals for medium- to long-term trends.
Next, let’s discuss the short-term trend filter, which combines the Williams Alligator and Williams Fractals. Williams Alligator
Developed by Bill Williams, the Alligator is a technical indicator that identifies trends and potential market reversals. It consists of three smoothed moving averages:
Jaw (Blue Line): The slowest of the three, based on a 13-period smoothed moving average shifted 8 bars ahead.
Teeth (Red Line): The medium-speed line, derived from an 8-period smoothed moving average shifted 5 bars forward.
Lips (Green Line): The fastest line, calculated using a 5-period smoothed moving average shifted 3 bars forward.
When the lines diverge and align in order, the "Alligator" is "awake," signaling a strong trend. When the lines overlap or intertwine, the "Alligator" is "asleep," indicating a range-bound or sideways market. This indicator helps traders determine when to enter or avoid trades.
The next indicator is Moving Average. It has a lot of different types which can be chosen to filter trades and the Least Squares MA is used by default settings. Let's briefly explain what is it.
The Least Squares Moving Average (LSMA) — also known as Linear Regression Moving Average — is a trend-following indicator that uses the least squares method to fit a straight line to the price data over a given period, then plots the value of that line at the most recent point. It draws the best-fitting straight line through the past N prices (using linear regression), and then takes the endpoint of that line as the value of the moving average for that bar. The LSMA aims to reduce lag and highlight the current trend more accurately than traditional moving averages like SMA or EMA.
Key Features:
It reacts faster to price changes than most moving averages.
It is smoother and less noisy than short-term EMAs.
It can be used to identify trend direction, momentum, and potential reversal points.
ATR (Average True Range) is a volatility indicator that measures how much an asset typically moves during a given period. It was introduced by J. Welles Wilder and is widely used to assess market volatility, not direction.
To calculate it first of all we need to get True Range (TR), this is the greatest value among:
High - Low
abs(High - Previous Close)
abs(Low - Previous Close)
ATR = MA(TR, n) , where n is number of periods for moving average, in our case equals 14.
ATR shows how much an asset moves on average per candle/bar. A higher ATR means more volatility; a lower ATR means a calmer market.
The Choppiness Index is a technical indicator that quantifies whether the market is trending or choppy (sideways). It doesn't indicate trend direction — only the strength or weakness of a trend. Higher Choppiness Index usually approximates the sideways market, while its low value tells us that there is a high probability of a trend.
Choppiness Index = 100 × log10(ΣATR(n) / (MaxHigh(n) - MinLow(n))) / log10(n)
where:
ΣATR(n) = sum of the Average True Range over n periods
MaxHigh(n) = highest high over n periods
MinLow(n) = lowest low over n periods
log10 = base-10 logarithm
Now let's understand how these indicators work in conjunction and why they were chosen for this strategy. KST indicator approximates current momentum, when it is rising and KST line crosses over the signal line there is high probability that short term trend is reversing to the upside and strategy allows to take part in this potential move. Alligator's jaw (blue) line is used as an approximation of a short term trend, taking trades only above it we want to avoid trading against trend to increase probability that long trade is going to be winning.
Almost the same for Moving Average, but it approximates the long term trend, this is just the additional filter. If we trade in the direction of the long term trend we increase probability that higher risk to reward trade will hit the take profit. Choppiness index is the optional filter, but if it turned on it is used for approximating if now market is in sideways or in trend. On the range bounded market the potential moves are restricted. We want to decrease probability opening trades in such condition avoiding trades if this index is above threshold value.
When trade is open script sets the stop loss and take profit targets. ATR approximates the current volatility, so we can make a decision when to exit a trade based on current market condition, it can increase the probability that strategy will avoid the excessive stop loss hits, but anyway user can setup how many ATRs to use as a stop loss and take profit target. As was said in the Methodology stop loss level is obtained by subtracting number of ATRs from trade opening candle low, while take profit by adding to this candle's close.
Backtest Results
Operating window: Date range of backtests is 2023.01.01 - 2025.05.01. It is chosen to let the strategy to close all opened positions.
Commission and Slippage: Includes a standard Binance commission of 0.1% and accounts for possible slippage over 5 ticks.
Initial capital: 10000 USDT
Percent of capital used in every trade: 60%
Maximum Single Position Loss: -5.53%
Maximum Single Profit: +8.35%
Net Profit: +5175.20 USDT (+51.75%)
Total Trades: 120 (56.67% win rate)
Profit Factor: 1.747
Maximum Accumulated Loss: 1039.89 USDT (-9.1%)
Average Profit per Trade: 43.13 USDT (+0.6%)
Average Trade Duration: 27 hours
These results are obtained with realistic parameters representing trading conditions observed at major exchanges such as Binance and with realistic trading portfolio usage parameters.
How to Use
Add the script to favorites for easy access.
Apply to the desired timeframe and chart (optimal performance observed on 1h BTC/USDT).
Configure settings using the dropdown choice list in the built-in menu.
Set up alerts to automate strategy positions through web hook with the text: {{strategy.order.alert_message}}
Disclaimer:
Educational and informational tool reflecting Skyrexio commitment to informed trading. Past performance does not guarantee future results. Test strategies in a simulated environment before live implementation.
Reverse Keltner Channel StrategyReverse Keltner Channel Strategy
Overview
The Reverse Keltner Channel Strategy is a mean-reversion trading system that capitalizes on price movements between Keltner Channels. Unlike traditional Keltner Channel strategies that trade breakouts, this system takes the contrarian approach by entering positions when price returns to the channel after overextending.
Strategy Logic
Long Entry Conditions:
Price crosses above the lower Keltner Channel from below
This signals a potential reversal after an oversold condition
Position is entered at market price upon signal confirmation
Long Exit Conditions:
Take Profit: Price reaches the upper Keltner Channel
Stop Loss: Placed at half the channel width below entry price
Short Entry Conditions:
Price crosses below the upper Keltner Channel from above
This signals a potential reversal after an overbought condition
Position is entered at market price upon signal confirmation
Short Exit Conditions:
Take Profit: Price reaches the lower Keltner Channel
Stop Loss: Placed at half the channel width above entry price
Key Features
Mean Reversion Approach: Takes advantage of price tendency to return to mean after extreme moves
Adaptive Stop Loss: Stop loss dynamically adjusts based on market volatility via ATR
Visual Signals: Entry points clearly marked with directional triangles
Fully Customizable: All parameters can be adjusted to fit various market conditions
Customizable Parameters
Keltner EMA Length: Controls the responsiveness of the channel (default: 20)
ATR Multiplier: Determines channel width/sensitivity (default: 2.0)
ATR Length: Affects volatility calculation period (default: 10)
Stop Loss Factor: Adjusts risk management aggressiveness (default: 0.5)
Best Used On
This strategy performs well on:
Currency pairs with defined ranging behavior
Commodities that show cyclical price movements
Higher timeframes (4H, Daily) for more reliable signals
Markets with moderate volatility
Risk Management
The built-in stop loss mechanism automatically adjusts to market conditions by calculating position risk relative to the current channel width. This approach ensures that risk remains proportional to potential reward across varying market conditions.
Notes for Optimization
Consider adjusting the EMA length and ATR multiplier based on the specific asset and timeframe:
Lower values increase sensitivity and generate more signals
Higher values produce fewer but potentially more reliable signals
As with any trading strategy, thorough backtesting is recommended before live implementation.
Past performance is not indicative of future results. Always practice sound risk management.
ADR% Extension Levels from SMA 50I created this indicator inspired by RealSimpleAriel (a swing trader I recommend following on X) who does not buy stocks extended beyond 4 ADR% from the 50 SMA and uses extensions from the 50 SMA at 7-8-9-10-11-12-13 ADR% to take profits with a 20% position trimming.
RealSimpleAriel's strategy (as I understood it):
-> Focuses on leading stocks from leading groups and industries, i.e., those that have grown the most in the last 1-3-6 months (see on Finviz groups and then select sector-industry).
-> Targets stocks with the best technical setup for a breakout, above the 200 SMA in a bear market and above both the 50 SMA and 200 SMA in a bull market, selecting those with growing Earnings and Sales.
-> Buys stocks on breakout with a stop loss set at the day's low of the breakout and ensures they are not extended beyond 4 ADR% from the 50 SMA.
-> 3-5 day momentum burst: After a breakout, takes profits by selling 1/2 or 1/3 of the position after a 3-5 day upward move.
-> 20% trimming on extension from the 50 SMA: At 7 ADR% (ADR% calculated over 20 days) extension from the 50 SMA, takes profits by selling 20% of the remaining position. Continues to trim 20% of the remaining position based on the stock price extension from the 50 SMA, calculated using the 20-period ADR%, thus trimming 20% at 8-9-10-11 ADR% extension from the 50 SMA. Upon reaching 12-13 ADR% extension from the 50 SMA, considers the stock overextended, closes the remaining position, and evaluates a short.
-> Trailing stop with ascending SMA: Uses a chosen SMA (10, 20, or 50) as the definitive stop loss for the position, depending on the stock's movement speed (preferring larger SMAs for slower-moving stocks or for long-term theses). If the stock's closing price falls below the chosen SMA, the entire position is closed.
In summary:
-->Buy a breakout using the day's low of the breakout as the stop loss (this stop loss is the most critical).
--> Do not buy stocks extended beyond 4 ADR% from the 50 SMA.
--> Sell 1/2 or 1/3 of the position after 3-5 days of upward movement.
--> Trim 20% of the position at each 7-8-9-10-11-12-13 ADR% extension from the 50 SMA.
--> Close the entire position if the breakout fails and the day's low of the breakout is reached.
--> Close the entire position if the price, during the rise, falls below a chosen SMA (10, 20, or 50, depending on your preference).
--> Definitively close the position if it reaches 12-13 ADR% extension from the 50 SMA.
I used Grok from X to create this indicator. I am not a programmer, but based on the ADR% I use, it works.
Below is Grok from X's description of the indicator:
Script Description
The script is a custom indicator for TradingView that displays extension levels based on ADR% relative to the 50-period Simple Moving Average (SMA). Below is a detailed description of its features, structure, and behavior:
1. Purpose of the Indicator
Name: "ADR% Extension Levels from SMA 50".
Objective: Draw horizontal blue lines above and below the 50-period SMA, corresponding to specific ADR% multiples (4, 7, 8, 9, 10, 11, 12, 13). These levels represent potential price extension zones based on the average daily percentage volatility.
Overlay: The indicator is overlaid on the price chart (overlay=true), so the lines and SMA appear directly on the price graph.
2. Configurable Inputs
The indicator allows users to customize parameters through TradingView settings:
SMA Length (smaLength):
Default: 50 periods.
Description: Specifies the number of periods for calculating the Simple Moving Average (SMA). The 50-period SMA serves as the reference point for extension levels.
Constraint: Minimum 1 period.
ADR% Length (adrLength):
Default: 20 periods.
Description: Specifies the number of days to calculate the moving average of the daily high/low ratio, used to determine ADR%.
Constraint: Minimum 1 period.
Scale Factor (scaleFactor):
Default: 1.0.
Description: An optional multiplier to adjust the distance of extension levels from the SMA. Useful if levels are too close or too far due to an overly small or large ADR%.
Constraint: Minimum 0.1, increments of 0.1.
Tooltip: "Adjust if levels are too close or far from SMA".
3. Main Calculations
50-period SMA:
Calculated with ta.sma(close, smaLength) using the closing price (close).
Serves as the central line around which extension levels are drawn.
ADR% (Average Daily Range Percentage):
Formula: 100 * (ta.sma(dhigh / dlow, adrLength) - 1).
Details:
dhigh and dlow are the daily high and low prices, obtained via request.security(syminfo.tickerid, "D", high/low) to ensure data is daily-based, regardless of the chart's timeframe.
The dhigh / dlow ratio represents the daily percentage change.
The simple moving average (ta.sma) of this ratio over 20 days (adrLength) is subtracted by 1 and multiplied by 100 to obtain ADR% as a percentage.
The result is multiplied by scaleFactor for manual adjustments.
Extension Levels:
Defined as ADR% multiples: 4, 7, 8, 9, 10, 11, 12, 13.
Stored in an array (levels) for easy iteration.
For each level, prices above and below the SMA are calculated as:
Above: sma50 * (1 + (level * adrPercent / 100))
Below: sma50 * (1 - (level * adrPercent / 100))
These represent price levels corresponding to a percentage change from the SMA equal to level * ADR%.
4. Visualization
Horizontal Blue Lines:
For each level (4, 7, 8, 9, 10, 11, 12, 13 ADR%), two lines are drawn:
One above the SMA (e.g., +4 ADR%).
One below the SMA (e.g., -4 ADR%).
Color: Blue (color.blue).
Style: Solid (style=line.style_solid).
Management:
Each level has dedicated variables for upper and lower lines (e.g., upperLine1, lowerLine1 for 4 ADR%).
Previous lines are deleted with line.delete before drawing new ones to avoid overlaps.
Lines are updated at each bar with line.new(bar_index , level, bar_index, level), covering the range from the previous bar to the current one.
Labels:
Displayed only on the last bar (barstate.islast) to avoid clutter.
For each level, two labels:
Above: E.g., "4 ADR%", positioned above the upper line (style=label.style_label_down).
Below: E.g., "-4 ADR%", positioned below the lower line (style=label.style_label_up).
Color: Blue background, white text.
50-period SMA:
Drawn as a gray line (color.gray) for visual reference.
Diagnostics:
ADR% Plot: ADR% is plotted in the status line (orange, histogram style) to verify the value.
ADR% Label: A label on the last bar near the SMA shows the exact ADR% value (e.g., "ADR%: 2.34%"), with a gray background and white text.
5. Behavior
Dynamic Updating:
Lines update with each new bar to reflect new SMA 50 and ADR% values.
Since ADR% uses daily data ("D"), it remains constant within the same day but changes day-to-day.
Visibility Across All Bars:
Lines are drawn on every bar, not just the last one, ensuring visibility on historical data as well.
Adaptability:
The scaleFactor allows level adjustments if ADR% is too small (e.g., for low-volatility symbols) or too large (e.g., for cryptocurrencies).
Compatibility:
Works on any timeframe since ADR% is calculated from daily data.
Suitable for symbols with varying volatility (e.g., stocks, forex, cryptocurrencies).
6. Intended Use
Technical Analysis: Extension levels represent significant price zones based on average daily volatility. They can be used to:
Identify potential price targets (e.g., take profit at +7 ADR%).
Assess support/resistance zones (e.g., -4 ADR% as support).
Measure price extension relative to the 50 SMA.
Trading: Useful for strategies based on breakouts or mean reversion, where ADR% levels indicate reversal or continuation points.
Debugging: Labels and ADR% plot help verify that values align with the symbol’s volatility.
7. Limitations
Dependence on Daily Data: ADR% is based on daily dhigh/dlow, so it may not reflect intraday volatility on short timeframes (e.g., 1 minute).
Extreme ADR% Values: For low-volatility symbols (e.g., bonds) or high-volatility symbols (e.g., meme stocks), ADR% may require adjustments via scaleFactor.
Graphical Load: Drawing 16 lines (8 upper, 8 lower) on every bar may slow the chart for very long historical periods, though line management is optimized.
ADR% Formula: The formula 100 * (sma(dhigh/dlow, Length) - 1) may produce different values compared to other ADR% definitions (e.g., (high - low) / close * 100), so users should be aware of the context.
8. Visual Example
On a chart of a stock like TSLA (daily timeframe):
The 50 SMA is a gray line tracking the average trend.
Assuming an ADR% of 3%:
At +4 ADR% (12%), a blue line appears at sma50 * 1.12.
At -4 ADR% (-12%), a blue line appears at sma50 * 0.88.
Other lines appear at ±7, ±8, ±9, ±10, ±11, ±12, ±13 ADR%.
On the last bar, labels show "4 ADR%", "-4 ADR%", etc., and a gray label shows "ADR%: 3.00%".
ADR% is visible in the status line as an orange histogram.
9. Code: Technical Structure
Language: Pine Script @version=5.
Inputs: Three configurable parameters (smaLength, adrLength, scaleFactor).
Calculations:
SMA: ta.sma(close, smaLength).
ADR%: 100 * (ta.sma(dhigh / dlow, adrLength) - 1) * scaleFactor.
Levels: sma50 * (1 ± (level * adrPercent / 100)).
Graphics:
Lines: Created with line.new, deleted with line.delete to avoid overlaps.
Labels: Created with label.new only on the last bar.
Plots: plot(sma50) for the SMA, plot(adrPercent) for debugging.
Optimization: Uses dedicated variables for each line (e.g., upperLine1, lowerLine1) for clear management and to respect TradingView’s graphical object limits.
10. Possible Improvements
Option to show lines only on the last bar: Would reduce visual clutter.
Customizable line styles: Allow users to choose color or style (e.g., dashed).
Alert for anomalous ADR%: A message if ADR% is too small or large.
Dynamic levels: Allow users to specify ADR% multiples via input.
Optimization for short timeframes: Adapt ADR% for intraday timeframes.
Conclusion
The script creates a visual indicator that helps traders identify price extension levels based on daily volatility (ADR%) relative to the 50 SMA. It is robust, configurable, and includes debugging tools (ADR% plot and labels) to verify values. The ADR% formula based on dhigh/dlow
Liquidity Zones Alerts"Liquidity Zones Alerts" is a powerful smart-money-based indicator designed to detect key liquidity grabs and provide high-probability reversal signals using a combination of market structure, volume, volatility, and candlestick confirmation.
🧠 How It Works
The core logic of this indicator is built around the Smart Money Concepts:
🔺 Liquidity Sweeps: Detects when price takes out previous daily or weekly highs/lows, suggesting stop hunts or engineered liquidity moves by institutional players.
📈 Volume Filter: Ensures signals only appear during above-average volume, filtering out noise and low-interest moves.
⚡ Volatility Filter: Flags high-range candles relative to the average, catching flash crashes/spikes that often precede strong reversals.
🔄 Engulfing Candle Confirmation: Confirms entry with a bullish or bearish engulfing pattern after liquidity is taken — increasing signal reliability.
🧭 Premium/Discount Zone Logic: Trades are filtered to ensure longs are only taken in discount zones, and shorts in premium zones, using a 20-period market range for context.
📌 Features
✅ Daily & Weekly liquidity zones toggle
✅ Visual signals with clean 🔻(short) & 🔺(long) arrows
✅ Auto-detection of flash crashes
✅ Alerts on both long and short setups
✅ Optional previous high/low level plotting for context
✅ Background highlighting of valid signal candles
✅ Multi-timeframe friendly and compatible with any asset
🛠️ Use Case
Whether you're a scalper or a swing trader, this tool helps you spot institutional entry zones before the move happens. It works especially well when combined with your existing bias or supply/demand zones.
💬 “Price doesn't move randomly — it hunts liquidity. This indicator shows you where and when it happens.”
ETH/USDT EMA Crossover Strategy - OptimizedStrategy Name: EMA Crossover Strategy for ETH/USDT
Description:
This trading strategy is designed for the ETH/USDT pair and is based on exponential moving average (EMA) crossovers combined with momentum and volatility indicators. The strategy uses multiple filters to identify high-probability signals in both bullish and bearish trends, making it suitable for traders looking to trade in trending markets.
Strategy Components
EMAs (Exponential Moving Averages):
EMA 200: Used to identify the primary trend. If the price is above the EMA 200, it is considered a bullish trend; if below, a bearish trend.
EMA 50: Acts as an additional filter to confirm the trend.
EMA 20 and EMA 50 Short: These short-term EMAs generate entry signals through crossovers. A bullish crossover (EMA 20 crosses above EMA 50 Short) is a buy signal, while a bearish crossover (EMA 20 crosses below EMA 50 Short) is a sell signal.
RSI (Relative Strength Index):
The RSI is used to avoid overbought or oversold conditions. Long trades are only taken when the RSI is above 30, and short trades when the RSI is below 70.
ATR (Average True Range):
The ATR is used as a volatility filter. Trades are only taken when there is sufficient volatility, helping to avoid false signals in quiet markets.
Volume:
A volume filter is used to confirm sufficient market participation in the price movement. Trades are only taken when volume is above average.
Strategy Logic
Long Trades:
The price must be above the EMA 200 (bullish trend).
The EMA 20 must cross above the EMA 50 Short.
The RSI must be above 30.
The ATR must indicate sufficient volatility.
Volume must be above average.
Short Trades:
The price must be below the EMA 200 (bearish trend).
The EMA 20 must cross below the EMA 50 Short.
The RSI must be below 70.
The ATR must indicate sufficient volatility.
Volume must be above average.
How to Use the Strategy
Setup:
Add the script to your ETH/USDT chart on TradingView.
Adjust the parameters according to your preferences (e.g., EMA periods, RSI, ATR, etc.).
Signals:
Buy and sell signals will be displayed directly on the chart.
Long trades are indicated with an upward arrow, and short trades with a downward arrow.
Risk Management:
Use stop-loss and take-profit orders in all trades.
Consider a risk-reward ratio of at least 1:2.
Backtesting:
Test the strategy on historical data to evaluate its performance before using it live.
Advantages of the Strategy
Trend-focused: The strategy is designed to trade in trending markets, increasing the probability of success.
Multiple filters: The use of RSI, ATR, and volume reduces false signals.
Adaptability: It can be adjusted for different timeframes, although it is recommended to test it on 5-minute and 15-minute charts for ETH/USDT.
Warnings
Sideways markets: The strategy may generate false signals in markets without a clear trend. It is recommended to avoid trading in such conditions.
Optimization: Make sure to optimize the parameters according to the market and timeframe you are using.
Risk management: Never trade without stop-loss and take-profit orders.
Author
Jose J. Sanchez Cuevas
Version
v1.0
ICT Bread and Butter Sell-SetupICT Bread and Butter Sell-Setup – TradingView Strategy
Overview:
The ICT Bread and Butter Sell-Setup is an intraday trading strategy designed to capitalize on bearish market conditions. It follows institutional order flow and exploits liquidity patterns within key trading sessions—London, New York, and Asia—to identify high-probability short entries.
Key Components of the Strategy:
🔹 London Open Setup (2:00 AM – 8:20 AM NY Time)
The London session typically sets the initial directional move of the day.
A short-term high often forms before a downward push, establishing the daily high.
🔹 New York Open Kill Zone (8:20 AM – 10:00 AM NY Time)
The New York Judas Swing (a temporary rally above London’s high) creates an opportunity for short entries.
Traders fade this move, anticipating a sell-off targeting liquidity below previous lows.
🔹 London Close Buy Setup (10:30 AM – 1:00 PM NY Time)
If price reaches a higher timeframe discount array, a retracement higher is expected.
A bullish order block or failure swing signals a possible reversal.
The risk is set just below the day’s low, targeting a 20-30% retracement of the daily range.
🔹 Asia Open Sell Setup (7:00 PM – 2:00 AM NY Time)
If institutional order flow remains bearish, a short entry is taken around the 0-GMT Open.
Expect a 15-20 pip decline as the Asian range forms.
Strategy Rules:
📉 Short Entry Conditions:
✅ New York Judas Swing occurs (price moves above London’s high before reversing).
✅ Short entry is triggered when price closes below the open.
✅ Stop-loss is set 10 pips above the session high.
✅ Take-profit targets liquidity zones on higher timeframes.
📈 Long Entry (London Close Reversal):
✅ Price reaches a higher timeframe discount array between 10:30 AM – 1:00 PM NY Time.
✅ A bullish order block confirms the reversal.
✅ Stop-loss is set 10 pips below the day’s low.
✅ Take-profit targets 20-30% of the daily range retracement.
📉 Asia Open Sell Entry:
✅ Price trades slightly above the 0-GMT Open.
✅ Short entry is taken at resistance, targeting a quick 15-20 pip move.
Why Use This Strategy?
🚀 Institutional Order Flow Tracking – Aligns with smart money concepts.
📊 Precise Session Timing – Uses market structure across London, New York, and Asia.
🎯 High-Probability Entries – Focuses on liquidity grabs and engineered stop hunts.
📉 Optimized Risk Management – Defined stop-loss and take-profit levels.
This strategy is ideal for traders looking to trade with institutions, fade liquidity grabs, and capture high-probability short setups during the trading day. 📉🔥
[TehThomas] - ICT Liquidity sweepsThe ICT Liquidity Sweeps Indicator is designed to track liquidity zones in the market areas where stop-losses and pending orders are typically clustered. This indicator marks buyside liquidity (resistance) and sellside liquidity (support), helping traders identify areas where price is likely to manipulate liquidity before making a significant move.
This tool is based on Inner Circle Trader (ICT) Smart Money Concepts, which emphasize how institutional traders, or “Smart Money,” manipulate liquidity to fuel price movements. By identifying these zones, traders can anticipate liquidity sweeps and position themselves accordingly.
⚙️ How It Works
1️⃣ Detects Key Liquidity Zones
The script automatically identifies significant swing highs and swing lows in price action using a pivot-based method.
A swing high (buyside liquidity) is a peak where price struggles to break higher, forming a resistance level.
A swing low (sellside liquidity) is a valley where price struggles to go lower, creating a support level.
These liquidity points are prime targets for liquidity sweeps before a true trend direction is confirmed.
2️⃣ Draws Liquidity Lines
Once a swing high or low is identified, a horizontal line is drawn at that level.
The lines extend to the right, serving as future liquidity targets until they are broken.
The indicator allows customization in terms of color, line width, and maximum number of liquidity lines displayed at once.
3️⃣ Handles Liquidity Sweeps
When price breaks a liquidity level, the indicator reacts based on the chosen action setting:
Dotted/Dashed: The line remains visible but changes style to indicate a sweep.
Delete: The line is completely removed once price has interacted with it.
This feature ensures that traders can easily spot where liquidity has been taken and determine whether a reversal or continuation is likely.
4️⃣ Prevents Chart Clutter
To maintain a clean chart, the script limits the number of liquidity lines displayed at any given time.
When new liquidity zones are formed, the oldest lines are automatically removed, keeping the focus on the most relevant liquidity zones.
🎯 How to Use the ICT Liquidity Sweeps Indicator
🔍 Identifying Liquidity Grabs
This indicator helps you identify areas where Smart Money is targeting liquidity before making a move.
Buyside Liquidity (BSL) Sweeps:
Occur when price spikes above a resistance level before reversing downward.
Indicate that Smart Money has hunted stop-losses and buy stops before driving price lower.
Sellside Liquidity (SSL) Sweeps:
Occur when price drops below a support level before reversing upward.
Indicate that Smart Money has collected liquidity from stop-losses and sell stops before pushing price higher.
📈 Combining with Market Structure Shifts (MSS)
One of the best ways to use this indicator is in conjunction with our Market Structure Shifts Indicator.
Liquidity sweeps + MSS Confirmation give strong high-probability trade setups:
Wait for a liquidity sweep (price takes out a liquidity level).
Look for an MSS in the opposite direction (e.g., price sweeps a high, then breaks a recent low).
Enter the trade in the new direction with stop-loss above/below the liquidity sweep.
📊 Entry & Exit Strategies
Long Trade Example:
Price sweeps a key sellside liquidity level (SSL) → creates a false breakdown.
MSS confirms a reversal (price breaks structure upwards).
Enter long position after confirmation.
Stop-loss below the liquidity grab to minimize risk.
Short Trade Example:
Price sweeps a key buyside liquidity level (BSL) → takes liquidity above resistance.
MSS confirms a bearish move (price breaks a key support level).
Enter short position after confirmation.
Stop-loss above the liquidity grab.
🚀 Why This Indicator is a Game-Changer
✅ Helps Identify Smart Money Manipulation – Understand where institutions are likely to grab liquidity before the real move happens.
✅ Enhances Market Structure Analysis – When paired with MSS, liquidity sweeps become powerful signals for trend reversals.
✅ Filters Out False Breakouts – Many traders get caught in liquidity grabs. This indicator helps avoid bad entries.
✅ Keeps Your Chart Clean – The auto-limiting feature ensures that only the most relevant liquidity levels remain visible.
✅ Works on Any Timeframe – Whether you’re a scalper, day trader, or swing trader, liquidity concepts apply universally.
📌 Final Thoughts
The ICT Liquidity Sweeps Indicator is a must-have tool for traders who follow Smart Money Concepts. By tracking liquidity levels and highlighting sweeps, it allows traders to enter trades with precision while avoiding false breakouts.
When combined with Market Structure Shifts (MSS), this strategy becomes even more powerful, offering traders an edge in spotting reversals and timing entries effectively.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment—I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading strategies. Let’s grow and trade smarter together! 📈✨
Hanzo_Wave_Price %Hanzo_Wave_Price % is a custom indicator for the TradingView platform that combines RSI (Relative Strength Index) and Stochastic RSI while also displaying the percentage price change over a specified period. This indicator helps traders identify overbought and oversold conditions, analyze price waves, and forecast potential market movements.
How It Works
1. RSI and Stochastic RSI Calculation
RSI is calculated based on the selected price source (default: close) with a user-defined Main Line period.
Stochastic RSI is then applied and smoothed using a moving average.
The Main Line represents the smoothed Stochastic RSI, serving as a wave indicator to help identify potential entry and exit points.
2. Overbought and Oversold Zones
The 70 and 30 levels indicate overbought and oversold zones, displayed as dashed lines on the chart.
Additional 20% and 10% levels provide a visual reference for historical price changes, aiding in future predictions.
3. Percentage Price Change Calculation
The indicator calculates the percentage price change over a Barsback period (default: 30 candles).
Users can choose a multiplier (100 or 1000) for better visualization (1000 scales the values by dividing by 10).
The data is displayed as a colored area:
Red (Short) → Negative price change.
Green (Buy) → Positive price change.
Settings & Parameters
Multiplier 💪 – Selects the scaling factor (100 or 1000) for percentage values.
Main Line ✈️ – Stochastic smoothing period (smoothK).
Don't touch ✋ – Reserved value (do not modify).
RSI 🔴 – RSI calculation period.
Stochastic 🔵 – Stochastic RSI calculation period.
Source ⚠️ – Price source for calculations (default: close).
Price changes % 🔼🔽 – Enables percentage price change display.
Barsback ↩️ – Number of candles used to calculate price change.
Visual Representation
Gray Line (Takeprofit Line 🎯) – Smoothed Stochastic RSI.
Red Dashed Line (70) – Overbought zone.
Blue Dashed Line (30) – Oversold zone.
Percentage Price Change Display:
Green Fill → Price increase.
Red Fill → Price decrease.
Advantages
✅ Combined Analysis – Uses RSI and Stochastic RSI for more accurate market condition identification.
✅ Flexibility – Customizable parameters allow adaptation for different markets and strategies.
✅ Visual Clarity – Clearly defined zones and dynamic percentage change display.
✅ Additional Market Insights – The percentage price change helps assess market volatility.
Disadvantages
⚠ Lagging Signals – Smoothing may cause delayed response.
⚠ False Breakouts – The 70/30 levels may not always work effectively for all assets.
⚠ IMPORTANT!
This indicator is for informational and educational purposes only. Past performance does not guarantee future profits! Use it in combination with other technical analysis tools. 🚀
Example 1: Identifying a Long Position
📌 Scenario:
The asset price has dropped significantly (1-hour timeframe), and the Main Line (gray line) crosses below the 30 level. This signals oversold conditions, which may indicate a potential reversal or upward correction.
✅ How to Use:
1️⃣ Identifying the Entry Zone:
If the Main Line is below 30, consider looking for a long entry point.
2️⃣ Confirming the Signal:
Place a vertical line at the moment when the Main Line crosses the 30 level from below.
3️⃣ Confirmation on a Lower Timeframe:
Switch to a 30-minute timeframe and wait for the Main Line to cross above the 70 level.
Enter a long position at this point.
4️⃣ Analyzing Percentage Price Change:
Check the historical indicator behavior:
If a similar past movement resulted in a ~10% price increase (green fill), this may indicate potential upward momentum.
5️⃣ Setting Take-Profit:
Set a take-profit level at 10%, based on previous price movements.
Also, monitor when the Main Line crosses the 70 level, as this may signal a potential profit-taking point.
📊 Conclusion:
This method helps to precisely determine entry points by confirming signals across multiple timeframes and analyzing the historical volatility of the asset. 🚀
Example 2: Analyzing Percentage Price Change
📌 Scenario:
You have set the Barsback parameter to 30, and the indicator shows +3.5%. This means that over the last 30 candles, the price has increased by 3.5%.
However, such small changes might be visually difficult to notice. To improve visibility, you can enable the multiplier (1000), which will scale the displayed percentage change to 35%. This is purely for visual convenience—the actual price movement remains 3.5%.
✅ How to Use:
1️⃣ Identifying Trend Direction:
If the percentage change is positive (green area) → Uptrend.
If the percentage change is negative (red area) → Downtrend.
2️⃣ Analyzing Movement Strength:
Compare the current percentage change with previous waves to evaluate the strength of the movement.
For example:
If previous waves reached 10% or more, a current wave of 3.5% might indicate a weak trend or a local correction.
3️⃣ Additional Filtering with the Main Line (Gray Line):
Use the Main Line to confirm the trend.
If the percentage change shows an increase, but the Main Line is still below 30, further upward movement can be expected.
If the percentage change indicates a decline, but the Main Line is above 70, there is a higher probability of a downward reversal.
"It's unfortunate that TradingView restricts adding images to indicator descriptions unless you have a paid subscription. This makes it harder to share free tools effectively."
Enhanced Bollinger Bands Strategy with SL/TP// Title: Enhanced Bollinger Bands Strategy with SL/TP
// Description:
// This strategy is based on the classic Bollinger Bands indicator and incorporates Stop Loss (SL) and Take Profit (TP) levels for automated trading. It identifies potential long and short entry points based on price crossing the lower and upper Bollinger Bands, respectively. The strategy allows users to customize several parameters to suit different market conditions and risk tolerances.
// Key Features:
// * **Bollinger Bands:** Uses Simple Moving Average (SMA) as the basis and calculates upper and lower bands based on a user-defined standard deviation multiplier.
// * **Customizable Parameters:** Offers extensive customization, including SMA length, standard deviation multiplier, Stop Loss (SL) in pips, and Take Profit (TP) in pips.
// * **Long/Short Position Control:** Allows users to independently enable or disable long and short positions.
// * **Stop Loss and Take Profit:** Implements Stop Loss and Take Profit levels based on pip values to manage risk and secure profits. Entry prices are set to the band levels on signals.
// * **Visualizations:** Provides options to display Bollinger Bands and entry signals on the chart for easy analysis.
// Strategy Logic:
// 1. **Bollinger Bands Calculation:** The strategy calculates the Bollinger Bands using the specified SMA length and standard deviation multiplier.
// 2. **Entry Conditions:**
// * **Long Entry:** Enters a long position when the closing price crosses above the lower Bollinger Band and the `Enable Long Positions` setting is enabled.
// * **Short Entry:** Enters a short position when the closing price crosses below the upper Bollinger Band and the `Enable Short Positions` setting is enabled.
// 3. **Exit Conditions:**
// * **Stop Loss:** Exits the position if the price reaches the Stop Loss level, calculated based on the input `Stop Loss (Pips)`.
// * **Take Profit:** Exits the position if the price reaches the Take Profit level, calculated based on the input `Take Profit (Pips)`.
// Input Parameters:
// * **SMA Length (length):** The length of the Simple Moving Average used to calculate the Bollinger Bands (default: 20).
// * **Standard Deviation Multiplier (mult):** The multiplier applied to the standard deviation to determine the width of the Bollinger Bands (default: 2.0).
// * **Enable Long Positions (enableLong):** A boolean value to enable or disable long positions (default: true).
// * **Enable Short Positions (enableShort):** A boolean value to enable or disable short positions (default: true).
// * **Pip Value (pipValue):** The value of a pip for the traded instrument. This is crucial for accurate Stop Loss and Take Profit calculations (default: 0.0001 for most currency pairs). **Important: Adjust this value to match the specific instrument you are trading.**
// * **Stop Loss (Pips) (slPips):** The Stop Loss level in pips (default: 10).
// * **Take Profit (Pips) (tpPips):** The Take Profit level in pips (default: 20).
// * **Show Bollinger Bands (showBands):** A boolean value to show or hide the Bollinger Bands on the chart (default: true).
// * **Show Entry Signals (showSignals):** A boolean value to show or hide entry signals on the chart (default: true).
// How to Use:
// 1. Add the strategy to your TradingView chart.
// 2. Adjust the input parameters to optimize the strategy for your chosen instrument and timeframe. Pay close attention to the `Pip Value`.
// 3. Backtest the strategy over different periods to evaluate its performance.
// 4. Use the `Enable Long Positions` and `Enable Short Positions` settings to customize the strategy for specific market conditions (e.g., only long positions in an uptrend).
// Important Notes and Disclaimers:
// * **Backtesting Results:** Past performance is not indicative of future results. Backtesting results can be affected by various factors, including market volatility, slippage, and transaction costs.
// * **Risk Management:** This strategy is provided for informational and educational purposes only and should not be considered financial advice. Always use proper risk management techniques when trading. Adjust Stop Loss and Take Profit levels according to your risk tolerance.
// * **Slippage:** The strategy takes into account slippage by specifying a slippage parameter on the `strategy` declaration. However, real-world slippage may vary.
// * **Market Conditions:** The performance of this strategy can vary significantly depending on market conditions. It may perform well in trending markets but poorly in ranging or choppy markets.
// * **Pip Value Accuracy:** **Ensure the `Pip Value` is correctly set for the specific instrument you are trading. Incorrect pip value will result in incorrect stop loss and take profit placement.** This is critical.
// * **Broker Compatibility:** The strategy's performance may vary depending on your broker's execution policies and fees.
// * **Disclaimer:** I am not a financial advisor, and this script is not financial advice. Use this strategy at your own risk. I am not responsible for any losses incurred while using this strategy.
Trend Strength/DirectionThis is a really good, though complex indicator, so I will add two different explanations so to appease both the laymen and those who take the time to read thoroughly.
Simple Explanation
This indicator utilizes 6HMA's to display their angles
The greater the angle ---> the stronger the trend
If more angles are positive, then trend is very strong
If more are negative, then very negative
Comprehensive Explanation
6 angles, each of a different time frame are used to represent direction and trend strength. Angles are used because they intrinsically represent momentum and speed. An angle of 45 represents a perfect balance between something that can cover the furthest distance without compensating for speed. 1 of the 6 angles is intended(though customizable) to represent the 5 hma's angle. This is because the 5hma is very good at representing very near term price action.
Angle Levels
Its important to understand what the angle levels mean for the underlying hma's. The 0 level represents a hma that is horizontal. This is important because this is the point at which it decides to be bullish or bearish. +/- 45, as noted before, represent bullishness/bearishness that represent strong trends without compensating for speed. A continuous increase/decrease and or a cross of these levels generally indicate significant change in sentiment, of which trades may be taken.
Strategy
You should weigh your decision by those angles that represent the longer time frame. If more angles represent a certain sentiment, it is obviously unwise to fight against that long term sentiment. The purpose of this indicator was to provide a proper representation of trend direction and strength, but also solve the problem of when you should 'dip' buy.
For an example: if all angles are increase or decreasing, then you may use the 5hma's angle to find the proper points at which you will enter a position.
***NOTE: I dont think the +/- 45 bands should indicate 'overbought' or 'oversold' zones that some might assume. Instead you should wait for a crossing of this zone.