Custom Multi-Timeframe IndicatorIt's a pretty simple example of a nice custom screener you can run for multiple timeframes. This is an RSI screener, but you can easily change the function for your own Indicator.
Screener displays:
Last value of the instrument
RSI value for up to 10 instruments / 4 timeframes.
In Parameters you can change:
4 timeframes
10 instruments
Parameters for RSI
Styling parameters for table
If the selected timeframe will be lower than the current one you will receive a warning message in a table.
Thanks to @MUQWISHI to help me code it.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
Pesquisar nos scripts por "backtest"
Lowest / Highest From WidgetRecent events inspired me to create a small widget that allows you to spot from when current value is lowest / highest.
Just add it to chart and script will compute most recent day when price was higher / lower than current and it will display:
Line coming from that value to the current one
A table with previous low/high information
Thanks to @MUQWISHI to help me coding it.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
AMACD - All Moving Average Convergence DivergenceThis indicator displays the Moving Average Convergane and Divergence ( MACD ) of individually configured Fast, Slow and Signal Moving Averages. Buy and sell alerts can be set based on moving average crossovers, consecutive convergence/divergence of the moving averages, and directional changes in the histogram moving averages.
The Fast, Slow and Signal Moving Averages can be set to:
Exponential Moving Average ( EMA )
Volume-Weighted Moving Average ( VWMA )
Simple Moving Average ( SMA )
Weighted Moving Average ( WMA )
Hull Moving Average ( HMA )
Exponentially Weighted Moving Average (RMA) ( SMMA )
Symmetrically Weighted Moving Average ( SWMA )
Arnaud Legoux Moving Average ( ALMA )
Double EMA ( DEMA )
Double SMA (DSMA)
Double WMA (DWMA)
Double RMA ( DRMA )
Triple EMA ( TEMA )
Triple SMA (TSMA)
Triple WMA (TWMA)
Triple RMA (TRMA)
Linear regression curve Moving Average ( LSMA )
Variable Index Dynamic Average ( VIDYA )
Fractal Adaptive Moving Average ( FRAMA )
If you have a strategy that can buy based on External Indicators use 'Backtest Signal' which returns a 1 for a Buy and a 2 for a sell.
'Backtest Signal' is plotted to display.none, so change the Style Settings for the chart if you need to see it for testing.
ICT index correlated market indicatorThis is not a real indicator, but is what ICT use as indicator for trading futures indexes.
it can only display SP500, Dow Jon Industrial Average and Nasdaq, if someone want other market can copy the code and change some parameters (is more easy than it can appear)
A good idea is using this other market on backtest to confirm the divergence idea of Linda Raske, than use it to spot quickly in real market.
Another idea published by ICT is the "hidden entry pattern", the entry signal appear in ES or YM but I trade NQ for volatility, so I use the trigger of SP500 or Dow to enter in Nasdaq.
Rember always don't trust anybody, do your own backtest and research!
Screener for 40+ instrumentsAs you probably know in TradingView there is a limit of 40 instruments in one custom screener.
I created a script that will allow you to scan more symbols.
The idea of it is pretty simple. You have to add a screener a few times on your screen with a different set of symbols. Then select column width (as % of your chart width) and # of the screener right to left.
Script will plot #1 screener next to the right border. For #2 and all next tables, the script will compute the needed offset and will draw it on the left. This way it will look like one table and not a few separate indicators.
I created a script with an RSI screener, but you can create more complicated examples with it.
Off course, that's not a silver bullet solution but might work for some of you.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
Volume Zone Oscillator (VZO)My interpretation of Walid Khalil's Volume Zone Oscillator (VZO) as published in the 2009 International Federation of Technical Analysis Journal.
This VZO indicator is also the same as Danielle Shay's popular Simpler Trading TurboVZO indicator.
ABOUT:
The oscillator breaks up volume activity into positive and negative categories. It is positive when the current closing price is greater than the prior closing price and negative when it's lower than the prior closing price. The resulting curve plots through relative percentage levels that yield a series of buy and sell signals, depending on level and indicator direction.
HOW TO USE THE INDICATOR:
The default period is 14 but can be adjusted after backtesting.
The VZO points to a positive trend when it rises above and maintains the 5% level, and a negative trend when it falls below the 5% level and fails to turn higher. Oscillations between the 5% and 40% levels mark a bullish trend zone, while oscillations between -40% and 5% mark a bearish trend zone. Meanwhile, readings above 40% signal an overbought condition, while readings above 60% signal an extremely overbought condition. Alternatively, readings below -40% indicate an oversold condition, which becomes extremely oversold below -60%.
Kahlil recommends confirming VZO signals with a 14-period average directional index (ADX), with values greater than 18 pointing to a trending market - search Tradingview's built-in indicators for the Directional Movement Index (DMI).
INTRADAY SCALPING:
Whilst the VZO is already smoothed with an exponential moving average, the indicator settings include an additional 'smoothing' function to remove any excess 'noise' in the plots for intraday use.
Trend intensity 65 TI65––––History & Credit
This indicator has been inspired by public videos of StockBee and his community. Stockbee is a famous successful trader, who has approach to detail and backtesting. The TI65 is a great confirmation tool for the trend strenght.
–––––What it does
TI65 is an indicator that measures trend and momentum over 65 days.
When there is a green cloud we have a confirmed uptrend with certain velocity.
The calculation is simple as it measures the ratio between the 7d SMA over the 65D sma.
–––––How to use it
Look for entry points when during green trade intensity.
Advanced Comparison ToolWith the new Pine Script features you can build pretty interesting scripts.
Here is my try to expand functionality of basic comparison tool you have in TradingView.
When you apply it on your chart you can select a bar when do you want to start comparing your instrument from.
In parameters you can specify up to 32 symbols to compare. You can also disable symbols and change color for them as well.
As a result you'll see a table with summary and line for every instrument you selected as if it started from the close of the selected bar.
Disclaimer.
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice
Two Moving Average CrossChoose two completely different moving averages and determine crossover points. Feel free to copy and paste the code into any strategy using MA crosses in order to optimize backtesting.
Learning Built-in VarsI'm currently working on v5 of my Pine Script Programming Course.
As a part of it, I'm building a few tools/widgets to help students get the content easier.
Here is one of the tools. It's quite basic with it you can select a bar and see all the build-in variables for this bar (Except strategy variables)
I hope it will help you in learning Pine Script!
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
52 Weeks High/Low WidgetSome time ago I published my "All-Time High/Low Widget". I was asked to build and 52w weeks version.
So finally it's ready. It works pretty much the same way but uses a time period only of 52weeks.
You can also change the number of weeks in the parameters.
You can plot the levels and display some stats when 52W high/low happened and how far away are we at this moment.
Also, you can create alerts to get notified on 52W levels breakouts.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
%R Trend Exhaustion [upslidedown]I love Williams %R! This indicator mixes two %R periods... a standard %R with a longer period %R. The longer period of 112 has interesting results for trend following strategies in the crypto market through backtesting.
Alone these are fairly ordinary but together they provide a very interesting trend exhaustion/reversal system while filtering out some noise. I have highlighted key areas of interest with filled boxes. An "area of interest" is when there is confluence between the short and long period %R values along with being overbought or oversold. Once there is a break in the overbought or oversold trend, an arrow will print.
This is one of my odder ideas that appears to have some merit and detects interesting tops or bottoms (or confirms a trend reversal) so I'm publicly publishing for the community to find. If you find this useful please reach out and let me know how you use it as it's fairly unique... and thus different than anything I've ever seen or used.
Multiple Indicators ScreenerA screener for multiple indicators with nice table output.
I was asked many times to update custom screener to display results in a table form. This way it looks much better.
You can play with background colors depend on values you're looking for.
In the screener, for example, I'm highlighting overbought/oversold RSI values, big ADX levels and trend of the Supertrend.
In parameters you can change settings for all indicators and change/disable tickers if 40 is too many for you.
There is only 1 function that calculates all these indicators. Potentially you can change and even add more indicators to this function.
Writing code for these kind of screener is a bit time consuming, so I even created a code generator in Python for these kind of indicators :) .
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
All-Time High/Low WidgetIt's a pretty simple widget to track all-time high and all-time low values.
You can plot the levels and display some stats when all-time happened and how far away are we at this moment.
Also, you can create alerts to get notified on ATH/ATL breakout.
Thanks to @Verleiht for helping me with the code.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
MACD ReLoadedA different approach to Gerald Appel's classical Moving Average Convergence Divergence.
Appel originaly set MACD with exponential moving averages.
In this version users can apply 11 different types of moving averages which they can benefit from their smoothness and vice versa sharpnesses...
Built in Moving Average type defaultly set as VAR but users can choose from 11 different Moving Average types like:
SMA : Simple Moving Average
EMA : Exponential Moving Average
WMA : Weighted Moving Average
DEMA : Double Exponential Moving Average
TMA : Triangular Moving Average
VAR : Variable Index Dynamic Moving Average a.k.a. VIDYA
WWMA : Welles Wilder's Moving Average
ZLEMA : Zero Lag Exponential Moving Average
TSF : True Strength Force
HULL : Hull Moving Average
TILL : Tillson T3 Moving Average
In shorter time frames backtest results shows us TILL, WWMA, VIDYA (VAR) could be used to overcome whipsaws because they have less numbers of signals.
In longer time frames like daily charts WMA, Volume Weighted MACD V2, and MACDAS and SMA are more accurate according to backtest results.
My interpretation of Buff Dormeier's Volume Weighted MACD V2:
Thomas Aspray's MACD: (MACDAS)
[Sidders] MACDEMASAR IndicatorCame across a cool idea for a strategy that couldn't find in the indicator database, so decided to code it up myself for your pleasure.
Indicators consists of 3 indicators: EMA(200) to determine the overall trend, and the MACD & Parabolic SAR to determine entries (and exits).
Long entry contains 4 conditions and is generated when price is above the 200EMA (1), the MACD crosses above the signal line (2), while they are both below 0 line (3) and when the parabolic SAR is below the closing price of the bar (4).
Short entry is build up the same but in reverse: price is below the 200EMA(1), signal line crosses below the MACD line (2), while they are both above the 0 line (3) and when the parabolic SAR is above the closing price of the bar (4).
Place the stoploss on the parabolic SAR dot below/above the candle that created the signal. Profit target 1:1 risk:reward ratio, but can ofcourse be changed according to your risk apetite. Might add automatically drawn SL/TPs in a later update.
Concept behind the strategy should work on all timeframes, but will require proper backtesting. I think with additional filters the strategy can also be way more finetuned and profitable, personally haven't had the time yet to dive into that.
Have also added alerts for your convenience.
Enjoy!
Logging in Pine ScriptI'm building quite a lot of pretty complicated indicators/strategies in Pine Script. Quite often they don't work from the 1 try so I have to debug them heavily.
In Pine Script there are no fancy debuggers so you have to be creative. You can plot values on your screens, check them in the data window, etc.
If you want to display some textual information, you can plot some info as labels on the screen.
It's not the most convenient way, so with the appearance of tables in Pine Script, I decided to implement a custom logger that will allow me to track some useful information about my indicator over time.
Tables work much better for this kind of thing than labels. They're attached to your screen, you can nicely scale them and you can style them much better.
The idea behind it is very simple. I used few arrays to store the message, bar number, timestamp, and type of the message (you can color messages depend on the type for example).
There is a function log_msg that just append new messages to these arrays.
In the end, for the last bar, I create the table and display the last X messages in it.
In parameters, you can show/hide the entire journal, change the number of messages displayed and choose an offset. With offset, you can basically scroll through the history of messages.
Currently, I implemented 3 types of messages, and I color messages according to these types:
Message - gray
Warning - yellow
Error - red
Of course, it's a pretty simple example, you can create a much fancier way of styling your logs.
What do you think about it? Is it useful for you? What do you use to debug code in Pine Script?
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Custom Multi-Timeframe Screener with AlertsThis is a multi-timeframe screener with alerts. Use this way you can create a screener on indicators using 2 or more timeframes.
In TradingView there is a limit of 40 security function calls. Every timeframe requires another security call so you can screen fewer symbols with any additional timeframe.
In this example, I use 2 timeframes, so the maximum amount of symbols you can scan is 40/2 = 20.
For 3 timeframes - 13, 4tfs - 10, 5tfs - 8 symbols and so on.
In this simplistic example, I require a cross of EMAs on the current timeframe and confirmation that one EMA above/below another from the second timeframe.
Of course, you can create much more complicated functions for this screener.
Params
- higher timeframe
- ema params
- 20 symbol inputs for instruments you want to use in this screener
Alerts
You can create an alert from it easily by selecting the screener name from the list and then selecting "Any alert() function call".
No additional configuration is required, message and alert on close is generated in the code.
You should better change the default name for your alert. Sometimes because of big amount of inputs you might receive an error.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Multiple Screeners with AlertsI already published few version of my custom screeners. Unfortunately, because of TradingView's security function call limit you can't use more than 40 stocks in 1 screener.
Fortunately, you can compute multiple values in your function and screen few indicators at once.
In this script I show how you can compute 5 indicators at the same time for 40 instruments. I display then in different labels.
Every label consist of list of instruments satisfying current indicator conditions and a value for it. It can be absolute value as for RSI or -1/1 representing Bullish/Bearish event.
Also you can create 1 alert with result of all screeners inside.
In this example I took 5 indicators with following conditions:
RSI - "RSI < 30" or "RSI > 70"
TSI - "TSI < -30" or "RSI >30"
ADX - "ADX > 40"
MACD - "MACD Bullish Cross" or "MACD Bearish Cross" (1 and -1 in screener)
AO - "AO Crosses 0 UP" or "AO Crosses 0 DOWN" (1 and -1 in screener)
Params
- bars_apart - this parameter define how may bars apart you labels are on your chart. If you see labels overlapping, increase this number.
- Parameters for all used indicators
- 40 symbol inputs for instruments you want to use in this screener
Alerts
You can create an alert from it easily by selecting screener name from the list and then selecting "Any alert() function call".
No additional configuration is required, message and alert on close is generated in the code.
You should better change default name for your alert. Sometimes because of big amount of inputs you might receive an error.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Hurst ExponentMy first try to implement Full Hurst Exponent.
The Hurst exponent is used as a measure of long-term memory of time series. It relates to the autocorrelations of the time series and the rate at which these decrease as the lag between pairs of values increases
The Hurst exponent is referred to as the "index of dependence" or "index of long-range dependence". It quantifies the relative tendency of a time series either to regress strongly to the mean or to cluster in a direction.
In short, depending on the value you can spot the trending / reversing market.
Values 0.5 to 1 - market trending
Values 0 to 0.5 - market tend to mean revert
Hurst Exponent is computed using Rescaled range (R/S) analysis.
I split the lookback period (N) in the number of shorter samples (for ex. N/2, N/4, N/8, etc.). Then I calculate rescaled range for each sample size.
The Hurst exponent is estimated by fitting the power law. Basically finding the slope of log(samples_size) to log(RS).
You can choose lookback and sample sizes yourself. Max 8 possible at the moment, if you want to use less use 0 in inputs.
It's pretty computational intensive, so I added an input so you can limit from what date you want it to be calculated. If you hit the time limit in PineScript - limit the history you're using for calculations.
####################
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Ultimate Multi-MACD - Early Warnings + Main TrendThis is a set of a bunch of moving averages. Unique, huh? Right. Awesome. Dope.
So, what's cool about this set, is its usability as not just one MACD, but a pair of MACDs specifically tuned to keep you hard. Some of you probably notice already just looking at the available MAs and lengths - there are some common pairs here. But what do you get when you combine all these common pairs that share bases? You get both short and long term plays out of it. The thing MACDs aren't supposed to do. I imagine it would be hard to make a backtestable/bottable script version of this, because the main thing is you have to use your gut a little bit in determing when to take a short term play and when to keep to the long term plays.
In this set, you get 3 TEMAs, 2 VWMAs, 2 SMAs, and 2 ALMAs. Yeah. That's almost TOO phat. I know. Whatever.
The two purple/pink lines are your 25 VWMA and 50 ALMA slow lines. These will be your main slow lines. They're usually close but move around a decent bit and if you want you could make buys and sales using the Alma crossing above the VWMA as a buy and sell crossing under.
Then you have a THIRD potential slow line on your dark green 50 TEMA. You generally use either the 13 or 21 TEMA crossing up as buy and down as sell. The signal TEMAs are bright green 13 and yellow 21.
Next you have all your Fast signal MAs! A peachy 10 VWMA, 13 green TEMA, 21 yellow TEMA, 10 teal/bright blue ALMA and last but not least, two pale SMAs at 5 and 10. The 5 could even be used as a signal against the 10 if you really want. There are countless options for buy and sell signals. Hide and show the ones that work the best on the chart you're trading on. Different ones will work different times. Why not see which ones are working BEST out of all the best ones, though?
Please leave other MA pairs that you would like added in future versions. If I do make a future version with more pairs I will very likely set default to hide some
Enjoy.
Custom Screener with Alerts V2 [QuantNomad]TradingView just recently announced the alert() function that allows you to create dynamic alerts from both strategies and studies.
So I decided to update custom screener I published before. It was based on alerts from orders in strategies, that was the only way to create dynamic alerts in PineScript at that point.
With the alert() function code become cleaner and more readable.
It works for up to 40 symbols at the same time.
You can create an alert from it easily by selecting screener name from the list and then selecting "Any alert() function call".
No additional configuration is required, message and alert on close I set up in the code.
I created as an example a screener that tracks both overbought (RSI > 70) and oversold stocks (RSI < 30).
To create your own screener you have to change only screenerFunc().
By design it should output 2 values:
cond - True/False Boolean variable. Should this instrument be displayed in the screener?
value - Additional numeric value you can display in your screener. I display RSI level for selected stocks for example.
Link to the old screener:
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.
Simple Hurst Exponent [QuantNomad]This is a simplified version of the Hurst Exponent indicator.
In the meantime, I'm working on the full version. It's computationally intensive, so it's a challenge to squeeze it to PineScript limits. It will require some time to optimize it, so I decided to publish a simplified version for now.
The Hurst exponent is used as a measure of long-term memory of time series. It relates to the autocorrelations of the time series, and the rate at which these decrease as the lag between pairs of values increases
The Hurst exponent is referred to as the "index of dependence" or "index of long-range dependence". It quantifies the relative tendency of a time series either to regress strongly to the mean or to cluster in a direction.
In short depend on value you can spot trending / reversing market.
Values 0.5 to 1 - market trending
Values 0 to 0.5 - market tend to mean revert
####################
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as good as in historical backtesting.
This post and the script don’t provide any financial advice.






















