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.
Heikin
Real Candles Heikin Ashi (HA) Candle functionsThis script plots both real and HA candles regardless or which are used on the chart in TV settings.
(and has the functions for you to use.)
Lots of people seem to misunderstand backtesting (or scam people) based on HA candles.
Backtesting with HA candles leads to impossible trades. ALWAYS backtest with real candles.
That doesn't mean you might not want to look at HA candle values to make trading decisions.
Add the code below to calculate HA candles from real and use that in your HA trading algo,
but test it on real charts.
QuantNomad - Heikin Ashi Colors Higher TimeframeSimple script displaying color of Heiken Ashi candles from higher timeframes as a background.
Heiken-Ashi CandlesSimple script to view Heiken-Ashi candles below a normal candles chart.
Could also be useful for using HA calcs in strategy scripts on normal candles chart for proper backtesting.
I adapted this to v4 from original v2 script by @samtsui. If you like please remember to give him a Thumbs Up for his original version! ->
Heiken Ashi BF Heiken Ashi candles help us to identify a trend.
This strategy simply enters a long when the Heiken Ashi candles turn green and a short when they turn red.
Because of the way BTC price moves in medium term trends, this simple strategy seems effective.
There is a rate of change function applied to avoid some of the choppy sideways action (thanks again to kiasaki for the code)
There is a 2% fixed stop loss applied and an optional take-profit setting. You can change both in the settings.
As you can see from the code, this strategy does not enter trades based on the Heiken Ashi closes, rather the actual price close. This is an important distinction since the HA closes are based on an average of the OHLC values so attempting to enter at that price may not always be possible. There are some "strategies" that use this information to try and con people by appearing to have awesome entries that are actually not attainable in all cases.
Green = Long
Red = Short
White = No trade
Smooth HA Candles MTF v1So this is last version of HA
this one has all MA type to choose from and MTF
HA Candles MTFJust try to make non repainting MTF candles
cross over of open and close , seen by small triangles
HeikinAshi - Candlestick % Difference This script shows the price difference ( %) between heikin ashi and candlestick for all investment instruments as Close, Open, High and Low. (Switchable )
In this way, you can see which instruments can easily use heikin ashi .
And by taking averages you can find the opportunity to compare which investment tools are more risk-free.
[RESEARCH] Chart Type IdentifierA viable and workable concept of chart type identification using Pine Script.
Was wollen wir trinken , sieben Tage lang
Was wollen wir trinken, so ein Durst!
Was wollen wir trinken, sieben Tage lang
Was wollen wir trinken, so ein Durst!
[RESEARCH] Heikin-Ashi Chart IdentifierA deterministic approach to identify Heikin-Ashi chart type.
The script checks the next statements about HA:
HA chart does not have any gaps in a classic sense
Every new HA open price is calculated using a specific recurrence formula. This fact also means that initial HA open price is used to calculate all the next and so on (a construction of Infinite Impulse Response filters)
The script works correctly being applied to other chart types:
Classic Candlestick
Range Bars
Line Break
Traditional Renko
ATR Renko
Traditional Point-and-Figure
ATR Point-and-Figure
Kagi
For special ones: this code allows you to check whether your script is being executed with Heikin-Ashi candles or not inside your script.
Ev sistr 'ta Laou!
HTF Candle [Custom Time Period] by JustUncleL [SOMMI 1.0 edit]This is a custom High Time Frame indicator, originally created by JustUncleL. 💚
I have edited the Pine Script to allow a custom Time Period input. 💛
In the original version, you could only select from a few time periods as your High Time Frame. 💙
In this version you can put any time frame as your reference. 🧡
Example: 6-hour HTF or 2-Day HTF
SOMMI'S SPECIAL NOTES:
-This indicator works with Heikin-Ashi candles.
-Please change your candles to Heikin-Ashi and apply the indicator.
-Advised to disable "Body Wicks"
-Advised to also refresh your page a few times a day as it doesn't update properly due to limitations of TradingView / Pinescript currently.
💙💛💚🧡
10/20 MA Cross-Over with Heikin-Ashi Signals by SchobbejakThe 10/20 MA Heikin-Ashi Strategy is the best I know. It's easy, it's elegant, it's effective.
It's particularly effective in markets that trend on the daily. You may lose some money when markets are choppy, but your loss will be more than compensated when you're aboard during the big moves at the beginning of a trend or after retraces. There's that, and you nearly eliminate the risk of losing your profit in the long run.
The results are good throughout most assets, and at their best when an asset is making new all-time highs.
It uses two simple moving averages: the 10 MA (blue), and the 20 MA (red), together with heikin-ashi candles. Now here's the great thing. This script does not change your regular candles into heikin-ashi ones, which would have been annoying; instead, it subtly prints either a blue dot or a red square around your normal candles, indicating a heikin-ashi change from red to green, or from green to red, respectively. This way, you get both regular and heikin ashi "candles" on your chart.
Here's how to use it.
Go LONG in case of ALL of the below:
1) A blue dot appeared under the last daily candle (meaning the heikin-ashi is now "green").
2) The blue MA-line is above the red MA-line.
3) Price has recently breached the blue MA-line upwards, and is now above.
COVER when one or more of the above is no longer the case. This is very important. You want to keep your profit.
Go SHORT in case of ALL of the below:
1) A red square appeared above the last daily candle (meaning the heikin-ashi is now "red").
2) The red MA-line is above the blue MA-line.
3) Price has recently breached the blue MA-line downwards, and is now below.
Again, COVER when one or more of the above is no longer the case. This is what gives you your edge.
It's that easy.
Now, why did I make the signal blue, and not green? Because blue looks much better with red than green does. It's my firm believe one does not become rich using ugly charts.
Good luck trading.
--You may tip me using bitcoin: bc1q9pc95v4kxh6rdxl737jg0j02dcxu23n5z78hq9 . Much appreciated!--
Function To Candles - Another way to see indicatorsIntroduction
There are different and better way's to see price data, a candlestick chart is one of the best way to see the price since you have access to the open/high/low/close information, this is really efficient and can allow for naked non parametric trading strategies (candlesticks patterns) . But what about making candles out of indicators ? There are tons of studies about candlesticks patterns in price data but none (?) about candlestick patterns using indicator data, therefore i made this script in order to show candles from various indicators, i also made an heikin-ashi mode.
Rsi To Candles
All the indicators are use the open/high/low/close price as input in order to return candles. length control the indicator period.
Stochastic To Candles
The stochastic oscillator is restrained in a range of 0/100, therefore when equal to 0 or 100 the candles can be flat.
Rate Of Change To Candles
The rate of change don't distort price as heavily as other indicators since its based on differencing.
Center Of Gravity To Candles
The center of gravity (cog) is defined from tradingview as "an indicator based on statistics and the Fibonacci golden ratio", its not an indicator i'am familiar with and i don't know if its the same proposed by Elhers. The candles are smooth, high length can flatten the candles heavily making them hard to see.
Correlation Oscillator
In a range of -1/1 this indicator is quite smooth and can also flatten candles.
Patterns And Heikin-Ashi
There are tons of patterns that can be generated from candlesticks, they can be applied to this indicator as well.
The indicator can show an heikin-ashi mode, heikin-ashi candlestick use averaging to plot candles, this is why they appear smoother, some signals generated from heikin-ashi candles are :
Bullish body with no lower shadows = Strong Uptrend
Bearish body with no higher shadows = Strong Downtrend
High range and small body = Indecision/Risk of reversal
Conclusion
I made an indicator able to draw candles from other indicators, those candles contain various information that can generate decision from patterns. I hope you find a use to it, if its the case share your findings with me, maybe that you will even be able find a new candlestick pattern :)
Thanks for reading !
Heikin Ashi OscillatorTrigger (Current Period): Heikin Ashi candle heights are plotted to form and oscillator.
Trend (1W): A slower period is also plotted.
When Trend is rising, dips in the Trigger are buying opportunities
When Trend is descending, peaks in the Trigger are selling opportunities
IO_Heikin-Ashi OverlayThis is Traditional Heikin-Ashi bars overlayed with regular candlestick/any chart type
Although HA is available in TradingView by default, this script is to recalculate HA by traditional calculations.
This version REPAINTS!! This is because Traditional HA uses Close Price (which is calculated on the fly).
-- Invsto
Up Down Strategy with MA Controla simple up down candle strategy with a built in MA control
alerts script:
3 TimeframesThis script allows you to overlay 2 other timeframes' open and close over your chart. It also has the option to overlay Heikin Ashi candles open and close over regular candles and vice versa, simply change the values in the settings. You can also set alerts for specific open/close.
Real Price for Heikin Ashi ChartsThe indicator is in the top left of the screen! That's all there is, by design.
This is a super simple indicator that allows you to see what the real price of a candle was when using Heikin Ashi charts, while not cluttering up your screen.
HA charts are a great way to help those who can be spooked by the chaos of the markets (I'm one!), but they have a big drawback in that the price you see on a HA candle is often significantly different from the real price that you would trade on. This brings issues of unrealistic expectations of profits/losses, and also makes back testing a strategy very difficult. I still wouldn't recommend ever using TradingView's "strategy" tool when using HA charts, but using this indicator you can do accurate manual back tests.
There's nothing plotted on the screen given that there's no real point in it, but you can make the lines appear if you wish - just go into settings and change the transparency.
The order of the numbers on the indicator match the OHLC (Open, High, Low, Close) format.
There's also settings to turn off one or more of the OHLC values, simply open the settings and go to Inputs. This could be useful for some people, as the High and Low values of HA candles are the same as regular candles. Only the Open and Close are different.
Any queries let me know.
DreamsDefined
Heikin-Ashi Smoothed with option to change MA types CryptoJoncisPine Script version=3
Author CryptoJoncis
Heikin-Ashi Smoothed
The Heikin-Ashi Smoothed study is based upon the standard Heikin-Ashi study with additional moving average calculations. The following is the calculation formula for the bars:
1. The current bar Open, High, Low, Close values are smoothed individually by using the moving average type specified by the Moving Average Type 1 Input with a length/period specified by the Moving Average Period 1 Input.
2. The Heikin-Ashi bar Open, High, Low, Close values are set using the smoothed values from step 1. This is performed using the standard Heikin-Ashi formula.
3. The final Heikin-Ashi Open, High, Low, Close values are calculated by doing a second smoothing of the bar values from step 2 by using the moving average type specified by the Moving Average Type 2 Input with a length/period specified by the Moving Average Period 2 Input.
If you choose to tick the box where it offers to use only one smoothed HA then it skips the third/final step and you do not need to choose the second MA type for it to work.
Remember, using FRAMA, always make sure you use even number for length.
For simple Heikin-Ashi, please tick single smoothed and DEFAULT (Not smoothed as there are no MA used)
Heikin-Ashi bars are calculated:
1. Close = (Open + High + Low + Close) / 4
This is the average price of the current bar.
2. Open = (Open of Previous Bar + Close of Previous Bar) / 2
This is the midpoint of the previous bar.
3. High = Max of (High, Open, Close)
Highest value of the three.
4. Low = Min of (Low, Open, Close)
Lowest value of the three.
Any questions/suggestions/errors or spelling mistakes? Please leave a comment and let me know. I will try to fix it.
This took me few days to finish, so I hope you will find it useful.
Would you like to have more MA type choices? Please comment down with any other which aren't included in this indicator and I will research them and add.
MA included in this script:
Tillson Moving Average (T3)
Double Exponential Moving Average (DEMA)
Arnaud Legoux Moving Average (ALMA)
Least Squares Moving Average (LSMA)
Simple Moving Average (SMA)
Exponential Moving Average (EMA)
Weighted Moving Average (WMA)
Smoothed Moving Average (SMMA)
Triple Exponential Moving Average (TEMA)
Hull Moving Average (HMA)
Adaptive moving average (AMA)
Fractal Adaptive Moving Average (FAMA)
Variable Index Dynamic Average (VIDYA)
Triangular Moving Average (TRIMA)
You can use,publish,modify this code in any way as you wish, but only if you reference me after.
You are not allowed to sell it as it is.
If this code is useful to you, then consider to buy me a coffee (or better a pint of beer) by donating Bitcoin or Etherium to:
BTC: 3FiBnveHo3YW6DSiPEmoCFCyCnsrWS3JBR
ETH: 0xac290B4A721f5ef75b0971F1102e01E1942A4578
References:
www.sierrachart.com
www.investopedia.com
www.binarytribune.com
www.investopedia.com
www.stockfetcher.com
www.mql5.com
www.incrediblecharts.com
help.cqg.com
www.blastchart.com
Kozlod - Heikin-Ashi Bar Color Change StrategyYou can use this script to backtest Heikin-Ashi bar color change strategy.
You have to apply this script to usual candles and not Heikin-Ashi!!!
Background color indicates HA bar color. On change you'll see green/red arrows and alert will be fired.
Also you can find in the code calculations of all HA OHLC values.
Kozlod - Heikin-Ashi Bar Color Change AlertsYou can use this script to setup alerts on Heikin-Ashi bar color change.
You have to apply this script to usual candles and not Heikin-Ashi!!!
Background color indicates HA bar color. On change you'll see green/red arrows and alert will be fired.
Also you can find in the code calculations of all HA OHLC values.
Heikin-Ashi Candles (by Ethrex)Allows to see how Heikin-Ashi candles are computed and see the bars side-by-side with normal prices.
Gidra's Vchain Strategy v0.1Tested on "BTC/USD", this is a reversible strategy
If the RSI is lower than "RSI Limit" (for last "RSI Signals" candles) and there were "Open Color, Bars" green Heiken Ashi candles - close short, open long
If the RSI is higher than 100-"RSI Limit" (for last "RSI Signals" candles) and there were "Open Color, Bars" red Heiken Ashi candles - close long, open short
- timeframe: 5m (the best)
RSI Period = 14
RSI Limit = 30
RSI Signals = 3
Open Color = 2
Piramiding = 100
Lot = 100 %
- timeframe: 1h
RSI Period = 2
RSI Limit = 30
RSI Signals = 3
Open Color = 2
Piramiding = 100
Lot = 100 %