Systematic Investment PlanTradingview default strategy tester has few limitations. To name some:
Tradingview default strategy tester does not have option for periodic investment.
Does not allow reduce and refill kind of operations.
Comparison to buy and hold equity does not take into consideration on number of days invested
Hence, I created this as base for my further experiments with respect to strategies involving market timing.
Settings are quite simple and self explanatory.
Cerca negli script per "trend"
X-Mas TreeLet's play a game!! Find your Christmas Tree and post it in the comments.
How to use the script?
Open any instrument which best describes the Christmas Tree (Preferably on hourly timeframe).
Apply X-Mas Tree script on the chart.
Enjoy the snowfall, changes in lightings and other animations. Animations only happen if the instrument is in trading session. So, stocks and indexes do not work on weekends and holidays. Use crypto as they are traded 24X7.
Unfortunately cannot post moving charts. But, snapshot of chart will do :)
Well, Please don't ask these questions for this script (Also thanks to @Bjorgum for contributing to this section) 😃
Can you please add alerts?
Does it repaint?
Can we use this for crypto/stock/forex bla bla?
Can you convert this to strategy?
How can I access this indicator?
Can you please give access or how much does it cost?
Can you make it available for MTF?
Indicator is broken. Getting so and so error message etc.
Wish you all MERRY X-MAS and HAPPY NEW YEAR!!
Run TimerThis is a simple utility which counts the number of bars and time elapsed after starting the script. This can be used in time or bars based conditions to modify script behavior.
This particular script does the following:
Starts timer when script is added to chart
Timer is green when starting and continues to be in green if the right Auth key is used in input (Which is hardcoded as 1234 here)
If right auth key is not provided in the input, timer background turns red after trial bars.
Script can be modified to use elapsed time instead.
Thanks to @Bjorgum on assisting on few calculations :)
Percentile - Price vs FundamentalsThis is done in the same lines of below scripts
Drawdown-Price-vs-Fundamentals
Drawdown-Range
Instead of using drawdown, here we are only plotting percentile of drawdown. Also added few more fundamental stats to the indicator. Also using part of the code from Random-Color-Generator/ to automatically generate colors. This in turn uses code from @RicardoSantos for convering color based on HSL to RGB
This is how the study can be used:
Study plots percentile of price and each of the listed fundamentals based on history. History can be chose All time or particular window. If any fundamental or price is near 100 - which means it is nearer to its peak. And if something is near its bottom, it is nearer to its 0th percentile.
Price of the stock is considered undervalued based on historical levels when it is below most of the fundamentals. Price is considered overvalued based on historical levels when it is above all the fundamentals. Please note, being undervalued does not guarantee immediate mean reversion. Stocks can stay undervalued for prolonged time and can go further down. Similarly overvalued stock can stay overvalued for prolonged time before correcting itself or justifying the position. Hence, further discretion needs to be used while using this study.
Few examples:
AMZN seems to be trading in range and so are the fundamentals:
MSFT at peak along with half of the fundamentals. But, debt levels are going up along with margins reducing.
LPX is trading at 15% discount whereas most of the fundamentals are at the peak.
FLGT price seems to have gone down further whereas fundamentals look pretty healthy.
Random Color GeneratorThis script is developed on the basis of Function-HSL-color by @RicardoSantos
Aim of this script is to generate random colors. But, if we just do it based on random RGB values, the colors derived may not be suitable for the background. If you are using light background, lighter colors won't be visible and if you are using darker theme, darker colors will not be appropriate. To overcome this issue, function provided by Racardo converts color(H,S,L) to color(R,G,B). Based on the background present, we define min and max L (Light) range to avoid colors which are either too dark or too light.
Input also allows you to set your custom H,S,L range when Background is set as "Custom"
Drawdown RangeHello death eaters, presenting a unique script which can be used for fundamental analysis or mean reversion based trades.
Process of deriving this table is as below:
Find out ATH for given day
Calculate the drawdown from ATH for the day and drawdown percentage
Based on the drawdown percentage, increment the count of basket which is based on input iNumber of ranges . For example, if number of ranges is 5, then there will be 5 baskets. First basket will fit drawdown percentage 0-20% and each subsequent ones will accommodate next 20% range.
Repeat the process from start to last bar. Once done, table will plot how much percentage of days belong to which basket.
For example, from the below chart of NASDAQ:AAPL
We can deduce following,
Historically stock has traded within 1% drawdown from ATH for 6.59% of time. This is the max amount of time stock has stayed in specific range of drawdown from ATH.
Stock has traded at the drawdown range of 82-83% from ATH for 0.17% of time. This is the least amount of time the stock has stayed in specific range of drawdown from ATH.
At present, stock is trading 2-3% below ATH and this has happened for about 2.46% of total days in trade
Maximum drawdown the stock has suffered is 83%
Lets take another example of NASDAQ:TSLA
Stock is trading at 21-22% below ATH. But, historically the max drawdown range where stock has traded is within 0-1%. Now, if we make this range to show 20 divisions instead of 100, it will look something like this:
Table suggests that stock is trading about 20-25% below ATH - which is right. But, table also suggests that stock has spent most number of days within this drawdown range when we divide it by 20 baskets instad of 100. I would probably wait for price to break out of this range before going long or short. At present, it seems a stage ranging stage. I might think about selling PUTs or covered CALLs outside this range.
Similarly, if you look at AMEX:SPY , 36% of the time, price has stayed within 5% from ATH - makes it a compelling bull case!!
NYSE:BABA is trading at 50-55% below ATH - which is the most it has retraced so far. In general, it is used to be within 15-20% from ATH
NOW, Bit of explanation on input options.
Number of Ranges : Says how many baskets the drawdown map needs to be divided into.
Reference : You can take ATH as reference or chose a time window between which the highest need to be considered for drawdown. This can be useful for megacaps which has gone beyond initial phase of uncertainity. There is no point looking at 80% drawdown AAPL had during 1990s. More approriate to look at it post 2000s where it started making higher impact and growth.
Cumulative Percentage : When this is unchecked, percentage division shows 0-nth percentage instad of percentage ranges. For example this is how it looks on SPY:
We can see that SPY has remained within 6% from ATH for more than 50% of the time.
Hope this is helpful. Happy trading :)
PS: this can be used in conjunction with Drawdown-Price-vs-Fundamentals to pick value stocks at discounted price while also keeping an eye on range tendencies of it.
Thanks to @mattX5 for the ideas and discussion today :)
Drawdown - Price vs FundamentalsIn this study, we are trying to compare drawdown from ATH of price and fundamentals to understand if price drawdown is really justifyable or if this is the buying opportunity.
For example, NYSE:BABA in the chart below shows that price has come down by more than 50%. But, the fundamentals has not changed upto this extent.
This may be viewed as buying opportunity from the eyes of fundamental based trader.
Similarly NYSE:LPX is trading at 15% below ATH whereas fundamentals are at peak. This again can be considered as buying opportunity.
NASDAQ:AAPL on the other hand is trading almost near ATH whereas fundamentals are having higher drawdown.
Well, this is just one factor to consider. I am about to release another script which can demonstrate amount of time (in terms of percentage) instrument trades at certain drawdown range. This looks something like this:
These two scripts can be used in conjunction to define your fundamental based trade.
I can add more funcamentals to the list. But, the higher value of fundamental should correlate to better position. Hence we cannot use things such as PE (which inversely correlates to value). Also need to keep the factor which includes total number of shares in it so that it is not affected by share dilution. Hence, have considered Total Revenue per Share instead of Total Revenue in this script.
Thanks to @mattX5 for suggesting fundamental based ideas in this line :)
Price RatiosJust a handy financial ratio bar where you can quickly view key price ratios.
Position, text size and color combinations can be set from input settings. Header is readjusted according to the table position chosen.
For example, if position selected as top-center or bottom-center or middle-center, orientation of the table will be horizantal and would display like this:
Otherwise, table will have vertical orientation like this:
You can also move it to new panel and use it along with other financials scripts such as:
Relative-Growth-Screen
Quality-Screen
With that, your screen would look something like this:
Simple debug functionSimple method I used to debug problem in my script.
For loop generates 5 numbers from the given depth. At present, depth is 9
Rules for generating the combinations are as follows:
First number is always 1
Two even numbers should not be adjacent to each other and two odd numbers should not be adjacent to each other
Numbers should be ordered in incremental order.
Print all possible combinations
While the logic above is just a random one. Debug method can be reused for any program.
Multi Level ZigZag Harmonic PatternsLets make things bit complicated.
Main difference between this script and the earlier Multi Zigzag Harmonic Pattern is the calculation logic of Zigzag 2, 3 and 4
In the earlier script, all zigzags were plain and were calculated on the basis of different lengths. (Such as 5, 10, 15, 20). These were derived on the basis of Multi Zigzag indicator
In this script, Zigzag 2, 3 and 4 are calculated in slightly different way. They are calculated on the basis of previous zigzag. This means, Zigzag 1 will be the input for Zigzag2 calculation and Zigzag 2 will be the input for Zigzag3 and so on. This is demonstrated in the script - Multi Level Zigzag
One important parameter which is specific to this script is: UseZigZagChain
If checked:
Zigzag2 is formed based on Zigzag1
Zigzag3 is formed based on Zigzag2
Zigzag4 is formed based on Zigzag3
This can lead to patterns covering huge number of candles as this chaining causes exponential effect in each levels. (Effective length grows exponentially in each level)
If unchecked:
Zigzag2 is formed based on Zigzag1 (Same as when checked)
Zigzag3 is formed based on Zigzag1. But, length is set to zigzag2Length + zigzag3Length
Zigzag4 is formed based on Zigzag1. But, length is set to zigzag2Length + zigzag3Length + zigzag4Length
This reduces exponential increase of zigzag lengths over next levels.
Logical ratios of patterns are coded as below:
Notations:
Lines XABCD forms the pattern in all cases. (OXABCD in case of Three drives )
abc = BC retacement of AB, xab = AB retracement of XA and so on
ABCD Classic
0.618 <= abc <= 0.786
1.272 <= bcd <= 1.618
AB=CD
Price difference between AB and CD are equal
Time difference between AB and CD are equal
ABCD Extension
0.618 <= abc <= 0.786
1.272 <= AD/ BC (price) <= 1.618
Gartley
xab = 0.618
0.382 <= abc <= 0.886
1.272 <= bcd <= 1.618 OR xad = 0.786
Crab
0.382 <= xab <= 0.618
0.382 <= abc <= 0.886
2.24 <= bcd <= 3.618 OR xad = 1.618
Deep Crab
xab = 0.886
0.382 <= abc <= 0.886
2.0 <= bcd <= 3.618 OR xad = 1.618
Bat
0.382 <= xab <= 0.50
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR xad = 0.886
Butterfly
xab = 0.786
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR 1.272 <= xad <= 2.618
Shark
xab = 0.786
1.13 <= abc <= 1.618
1.618 <= bcd <= 2.24 OR 0.886 <= xad <= 1.13
Cypher
0.382 <= xab <= 0.618
1.13 <= abc <= 1.414
1.272 <= bcd <= 2.0 OR xad = 0.786
Three Drives
oxa = 0.618
1.27 <= xab <= 1.618
abc = 0.618
1.27 <= bcd <= 1.618
5-0
1.13 <= xab <= 1.618
1.618 <= abc <= 2.24
bcd = 0.5
Double Bottom
Last two pivot High Lows make W shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone below Last Pivot Low
Price breaks out of last Pivot High to complete W shape
Double Top
Last two pivot High Lows make M shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone above Last Pivot High
Price breaks out of last Pivot Low to complete M shape
Multi Level ZigzagAt first I thought of doing double zig zag. Once developed I thought it is not much effort to make it multi level zigzag. This script is not same as multi-zigzag indicator (link in the end). In multi zigzag indicator we use zigzag based on different length and each zigzag has no relation to each other. In this script however, each zigzags are related to each other. We cannot just derive Zigzag 4 without deriving Zigzag 3. (Though we can hide each of them individually)
The logic is simple.
Zigzag1: This is the basic zigzag plotted based on given length.
Zigzag2, Zigzag2, Zigzag3 : These are built based on lower level zigzags.
For example, Zigzag2 is built based on Zigzag1 pivots. For calculation, we just use N*2 number of Zigzag1 pivots to derive the next level. Similarly Zigzag2 will become input for Zigzag 3 and Zigzag3 will become input for Zigzag4
Input parameters allow you to chose upto 4 levels of zigzag along with zigzag line color and length. Max array lines also defines how many lines back you want to calculate the zigzag pivots and display then in the stats. Lowering this number will not reduce the number of lines - but, it will limit possibility of calculating higher level zigzags. Stats table just highlight which pivots are applicable for which outer level.
Application: Can be used in pattern recognization scripts to improve accuracy.
Disclaimer: This is not working in intraday charts. Nothing I could do at this point of time. Use it only for daily + timeframes.
Related scripts:
Multi ZigZag EW - ImpulseSimilar to the previous script on Elliot Wave Impulse:
But, here we are trying to use multiple zigzags instead of just one.
You can select upto 4 different Zigzags and set different length, line color, line width and style for each. Parameters ShowZigZag , ZigZag Length, ZigZag Color, ZigZag Width, ZigZag Style can be used for adjusting these.
ErrorPercent lets you set error threshold calculation of ratios for pattern identification
EntryPercent is used for marking Entry and T.Stop (Tight Stoploss) based on the length of Wave 2.
Target of the script is same as before. We are trying to identify Wave 1 and 2 of Elliot Impulese Wave and then project Wave 3. Chances of price following the pattern are there. Hence, we set Stoploss based on levels which fails the pattern.
Ratios are taken from below link: elliottwave-forecast.com - Section 3.1 Impulse
Wave 2 is 50%, 61.8%, 76.4%, or 85.4% of wave 1 - used for identifying the pattern.
Wave 3 is 161.8%, 200%, 261.8%, or 323.6% of wave 1-2 - used for setting the targets
Since we use multiple zigzags, labels can be quite messy at times. In such scenarios, just disable one of the zigzag length causing label overlaps.
Multi ZigZag Harmonic PatternsCombining Multizigzag with harmonic patterns - this script generates harmonic patterns based on multiple deapth zigzags.
Input parameter allows to chose which Zigzag to be included in pattern identification and set different length, line color, width and style for each Zigzag combinations.
Pattern rules are as below:
Gartley
xab = 0.618
0.382 <= abc <= 0.886
1.272 <= bcd <= 1.618 OR xad = 0.786
Crab
0.382 <= xab <= 0.618
0.382 <= abc <= 0.886
2.24 <= bcd <= 3.618 OR xad = 1.618
Deep Crab
xab = 0.886
0.382 <= abc <= 0.886
2.0 <= bcd <= 3.618 OR xad = 1.618
Bat
0.382 <= xab <= 0.50
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR xad = 0.886
Butterfly
xab = 0.786
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR 1.272 <= xad <= 2.618
Shark
xab = 0.786
1.13 <= abc <= 1.618
1.618 <= bcd <= 2.24 OR 0.886 <= xad <= 1.13
Cypher
0.382 <= xab <= 0.618
1.13 <= abc <= 1.414
1.272 <= bcd <= 2.0 OR xad = 0.786
Three Drives
oxa = 0.618
1.27 <= xab <= 1.618
abc = 0.618
1.27 <= bcd <= 1.618
5-0
1.13 <= xab <= 1.618
1.618 <= abc <= 2.24
bcd = 0.5
Related scripts are present here:
Auto Harmonic Patterns - Open SourceI may not be able to spend much time on the harmonic patterns and realized that there are not much open source scripts on them either. Hence, decided to release open source version which can be used by other developers for reference and build things on top of it.
Original script is protected and can be found here:
Logical ratios of patterns are coded as below:
Notations:
Lines XABCD forms the pattern in all cases. (OXABCD in case of Three drives )
abc = BC retacement of AB, xab = AB retracement of XA and so on
ABCD Classic
0.618 <= abc <= 0.786
1.272 <= bcd <= 1.618
AB=CD
Price difference between AB and CD are equal
Time difference between AB and CD are equal
ABCD Extension
0.618 <= abc <= 0.786
1.272 <= AD/ BC (price) <= 1.618
Gartley
xab = 0.618
0.382 <= abc <= 0.886
1.272 <= bcd <= 1.618 OR xad = 0.786
Crab
0.382 <= xab <= 0.618
0.382 <= abc <= 0.886
2.24 <= bcd <= 3.618 OR xad = 1.618
Deep Crab
xab = 0.886
0.382 <= abc <= 0.886
2.0 <= bcd <= 3.618 OR xad = 1.618
Bat
0.382 <= xab <= 0.50
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR xad = 0.886
Butterfly
xab = 0.786
0.382 <= abc <= 0.886
1.618 <= bcd <= 2.618 OR 1.272 <= xad <= 2.618
Shark
xab = 0.786
1.13 <= abc <= 1.618
1.618 <= bcd <= 2.24 OR 0.886 <= xad <= 1.13
Cypher
0.382 <= xab <= 0.618
1.13 <= abc <= 1.414
1.272 <= bcd <= 2.0 OR xad = 0.786
Three Drives
oxa = 0.618
1.27 <= xab <= 1.618
abc = 0.618
1.27 <= bcd <= 1.618
5-0
1.13 <= xab <= 1.618
1.618 <= abc <= 2.24
bcd = 0.5
This script contains everything which original script has apart from stats. Use the original script if you are not developer looking for code reference and prefer having stats table.
I have also developed a strategy based on harmonic patterns which can be found here:
Double Top/BottomHere is an attempt to identify double top/bottom based on pivot high/lows.
Logic is simple.
Double Bottom:
Last two pivot High Lows make W shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone below Last Pivot Low
Price breaks out of last Pivot High to complete W shape
Double Top:
Last two pivot High Lows make M shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone above Last Pivot High
Price breaks out of last Pivot Low to complete M shape
Prameters:
Parameters PvtLenL , PvtLenR and waitforclose determines pivot points.
FilterPivots clears repetitive pivots formed in same direction before calculating the possible double top/bottom.
For example:
CheckForAbsolutePeaks and AbsolutePeakLoopback works together. When CheckForAbsolutePeaks is enabled, script only generates double bottom or top signal if previous last pivot is absolute high or low for AbsolutePeakLoopback periods.
ConsiderMovingAverage does two things. First, it makes sure that fast moving average and slow moving averages are aligned with the direction we are going to forecast. Second, it makes sure that the crossover happend recently and with last BarCrossoverLimit bars. For example, to call it double bottom, Fast MA should be higher than Slow MA and crossover of FastMA above SlowMA should have happened in last 10 bars (BarCrossoverLimit)
PivotDisplayMode can be Actual, Filtered or None. Actual will display all pivot high low generated. Filtered will only display last 5 pivot high and pivot lows which are filtered . That means, it will remove the repetitive pivots formed without making pivots on the other side.
Welcome and suggestions and feedbacks.
Value CandlesCreating candles from value stats as an experiment. These candles will almost always follow price candles except when there is a deviation.
Strategies based on buying the dips can be applied better on value candles. This is because, drop in value candles imply real bargain whereas drop in price candles can also be due to some other factors.
We can clearly see in the Amazon chart that value candles have come down even though price candles are at same level from September. This signifies AMZN stock is having more value now (due to increased sales from September to now) than back in September even though the price is same.
Another simple thing we can do is move Value candles into same overlay as that of price candles. This will look something like this:
Key thing to remember : Lower the value candle higher the relative value of stock.
Quality/Growth ScoreQuickly combining Quality Screen and Growth Screen to an indicator which shows total score instead. If all you need is total score of Quality or Growth without looking into strength of individual stats, this indicator can save some screen space.
Logic used for scores is same as logic used in Quality and Growth screen for color coding the financials stats.
Related scripts:
Relative Growth ScreenBased on the Growth Range indicator published here:
Instead of plotting, they are printed in color coded table. Colors say whether the growth rate of these factors are relatively higher or lower.
Similar to quality screen, table positions can be customized.
If you have big enough screen, you can fit both quality and growth screens this way:
s3.tradingview.com
Quality ScreenAn attempt to show fundamental stats which describes quality of the stock. Following parameters are depicted:
SOLVENCY
DEBT_TO_EQUITY
Very Good : 0 - 1
Good : 1 - 2
High risk : > 2
DEBT_TO_ASSET
Very Good : < 0.4
Good : 0.4 - 0.6
High Risk : > 0.6
LONG_TERM_DEBT_TO_ASSETS
Very Good : < 0.4
Good : 0.4 - 0.6
High Risk : > 0.6
ALTMAN_Z_SCORE
Very good: > 3
Good : 1.8 - 3
High Risk : < 1.8
SPRINGATE_SCORE
High Risk : < 0.862
LIQUIDITY
CURRENT_RATIO
Very Good : 1.2 - 2
Good : 2+ (Too high and Inefficient)
High Risk : < 1
QUICK_RATIO
Very Good : 1 - 2
Good : 2+ (Too high and Inefficient)
High Risk : < 0.9
SLOAN_RATIO
Very Good: -10% to +10%
Good : -25% to -10% or +10% to +25%
High Risk: < -25% or > +25%
PROFITABILITY
RETURN_ON_ASSETS
Healthy : > 5%
Great : > 20%
RETURN_ON_EQUITY
Healthy : 10%
Great : > 40%
RETURN_ON_INVESTED_CAPITAL
Healthy : > 2%
Great : > 10%
Quick FinancialsPlenty of financial parameters but not all of them are available in the tradingview financials page. Hence, thought of creating this script to quickly find the stat from tradingview data.
Financial Ids are present here:
www.tradingview.com
Not all periods are applicable to all financial ids. Hence, may get error on some combinations.
VixFixLinReg-StrategyThis idea came up while discussing about strategies with one of the trading enthusiast from tradingview community.
Strategy basically uses existing script of Vix Fix by Chris Moody:
VixFix is a great indicator for finding the market bottoms. But, sometimes it generates signal too early. But, we can apply linear regression on vix fix to find vix fix top to make timing much better.
Entry condition:
Wait for Vix fix bar to turn lime.
Once vix fix is turned lime, then wait for linear regression (shown below 0) to turn lime from green. This indicates VIX-Fix has started declining.
Go long once above two conditions are satisfied
Exit Condition:
ATR Based Stop
Applied only if linear regression is green - which means VixFix rising.
Note: This is ideal for identifying market bottom. May not yield good results on individual stocks.
MA Candles - SupertrendConverting strategy to indicator for those who want to use it as indicator.
Concepts are simple :
Calculate moving average of High, Low, Open and Close and make candles of them
Calculate ATR and derive supertrend on the moving average candles.
Alerts :
Bullish Crossover - When supertrend turns green
Bearish Crossover - When supertrend turns red
Bullish Pullback - Supertrend is green but close crossed below Moving average high
Bearish Pullback - Supertrend is red but close crossed above Moving average low
Original strategy is present here:
HTF High/Low Repaint StrategyHere is an another attempt to demonstrate repainting and how to avoid them. It happened few times to me that I develop a strategy which is giving immense returns - only to realize after few forward testing that it is repainting. Sometimes, it is well disguised even during forward testing.
In this simple strategy, conditions are as below:
Buy : When a 3M bar produces high and low higher than it's previous 3M bar high, low
Sell : When a 3M bar produces high and low lower than its previous 3M bar high, low.
Default setting is : lookahead = on and offset = 0
This means current 3M bar high low is plotted for all the daily bars within this month. Which means, strategy looks ahead of time to see this 3M bar high is higher than previous 3M bar high during the start of the first daily bar. Hence, this combination leads to massive repaint.
For example, trade made on October 2nd 2018 already knows well ahead of time that price is going to go down in next 3 months:
Similarly, after 2 years on October 2nd 2020 - the strategy already knows that last 3M high is going to be breached on 7th December 2020
Solution: If you are using security for higher timeframes, safer option is always to use offset 1. Further details in the trading view script:
BUT
It may still repaint if we are passing function to security.
For example:
f_secureSecurity(_symbol, _res, _src) => security(_symbol, _res, _src , lookahead = barmerge.lookahead
This function will likely avoid any repainting with Higher timeframe if we are passing in built variables such as high, low, close, open etc. But, if we try to pass supertrend, this will not produce right results. This is because supertrend calculation in turn uses high/low/close values which do not consider the offset while calculating. Hence, even with offset 1, this will still produce issues.
Hence, the call:
= f_secureSecurity(syminfo.tickerid, derivedResolution, supertrend(3,10), offset) will again lead to massive repainting. Solution to this is to implement supertrend function and use high, low, close values derived from secureSecurity.
Quick tips to identify or be suspicious about repainting
Unbelievable results on all timeframes and all instruments with both long and short trades
Lower timeframes giving significantly higher returns on backtest when compared to higher timeframe
If these things happen, be wary about repainting and do a through check of all security function usage in your strategy.
All the best :)
PS: Apply 3-5 days resolution and see the fun. Also, WHC is one hell of a Christmas tree. Could have made immense profit in the same strategy even without repainting.