Line Break Heikin AshiThis script takes two candle styles and combines then into one. By only using the closing price to inform the heikin ashi candles you get a lovely line break style heiken ashi candle. The advantage to this if you are into this kind of thing is that it makes for a smoother experience. You still get wicks just because of the nature of heikin ashi but they are dramatically reduced. This is defiantly an experimental indicator as its just a different way to look at the chart. I hope some one can find use in this outside of a work around pine script limitations. I had to create this for my sentiment tracker section of my qqe bb screener because it uses so many symbols that I cant get the open, high, or low for each. If you find any bugs please report them, or if you have any feedback please leave it. Enjoy!
Komut dosyalarını "screener" için ara
QQE Student's T-Distribution Bollinger Bands ScreenerThis script scans 20 custom symbols and displays the QQE Students T-Distribution Bollinger Bandwidth as a percentage, the quarter segment percentage, a score that tells you what segment of the band the price is in, and what direction the market is going in. This is useful because it can tell you how volatile a market is and how much reward is in the market. It also tells you what direction the market is going in so you can pick a symbol that has the best looking reward. I really hope that this script complements the group of indicators I have made so far. Here is a list of the other two indicators related to this script.
Please enjoy!
MA Cross ScreenerThis script lets you pick 20 symbols to check for ma crosses. The way it works is it scans all 20 of your symbols for moving average crosses and then it sends an both a regular alert and a visual alert inside of the indicator. I found that ma cross strategies are very popular right now so I thought it would be nice to have one indicator instead of 20 discord servers. The features include: 20 custom symbols, alerts, custom colors, ma select, and custom time frames. If you want to use the custom time frame option, use the lowest time frame possible. That way you wont have gaps. If you have any comments please voice them, that includes suggestions!
I hope you all find this useful!
[ChasinAlts] RSI (Time-Spent) Count[MO]// Hello fellow traduers, hope all is well in your neck of the woods. Anywho, I'll attempt to be short and sweet.
// I've been doing a LOT of work recently with RSI to figure out what its all about and to learn the ins and outs.
// Some great ideas (I think at least) have come to fruition from the deep-dive into RSI, thus, I've got 2 of these ideas
// to share. One notable feature for the RSI is when there is a BULLISH trend, it is VERY likely to stay within the upper
// 2/3rds of the RSI extremes (0-100) and vise-versa for BEARISH trends and the lower 2/3rds of the RSI extremes.
// That is where this script's idea was derived. Now PLEASE, do tell, if you disagree with me (preferably via a cool,
// calm, and collected comment...but hey, that's up to you). Ok, now the script.
//
// What this does is gives you a Bullish and Bearish count for the bars. Bullish Cnt counts up by +1 per every PRINTED bar
// that is above OverSold and vise-versa for the Bearish Cnt and being below OverBought. That does VERY MUCH make it
// possible for both counts to have a high value if RSI is staying between OverBought and OverSold for extended periods
// of time. Though, the ONLY count that will be shown is the one with the highest value.
//
// There are tooltips describing each of the settings but I will quickly talk about 3 more things. First of all, I prefer
// to have as few settings in the settings menu as possible thus the "Boundaries to OB/OS" setting can be viewed as the
// OverSold input and the OverBought setting is configured from this by subtracting "Boundaries to OB/OS" from 100
// (ie. 100-Oversold = OverBought). There Lastly, there is the option to show ONLY the coin with the MAX Count from each
// 'set' of coins. When that count resets to 0 then the next highest count coin will take its place. To use this instead
// of how the script is currently constructed you only need to comment out (add '//' at the beginning of each line of) the current
// plot functions and uncomment the lines at the very bottom under the 'MAX' section. Doing so also reveals the possibility of
// setting an alert for when the coin with the max count changes between different coins. This is very helpful because since it
// only gives the top count of ALL the coins in the selected set, this count is most likely going to continue forward with its
// count for a while thus when the alert goes off I prefer to look at the potential trades in the opposite direction of which
// the max coin was just in (ie. if its count plot/label is red and it stops then look for a potential long trade on the coin
// who's count just reset. Only ONE more piece of the script I have yet to talk about. There is a filter in the code and you
// can select to use or not use within the settings. What this filter does is it counts all the printed bars within the last
// ___bars(user selectable). This is due to the fact that if there is no trade that occurs on a bar then TradingView does not
// print the bar. The coins that have fewer updates also tend to stay within a tighter range for it's RSI thus many times
// giving the illusion that the coin is a good trade bc its trending count is very high (tending to be higher than the others)
// thus hogging the precious chart space if using the script in its current form, or hogging up the MAX slot so that no other
// (and most likely BETTER-TO-TRADE) coins will be shown. It is a great volatility indicator (that of which I have published
// a script using the idea in the recent past). If selected in the settings menu and if the % of printed bars count goes below
// the user set minimum % then both Bullish and Bearish counts will be reset. This is indicated within the counts plots by looking
// at the plots whose counts reset and rather than the plots just stopping printing in mid-air, they will continue to plot while the
// counts reset and fall down to 0. These types of coins will keep you in a trade longer that you'd probably want gaining less than
// you'd probably expect.
//
// Peace Folks & Happy Trading,
//
// ChasinAlts
AlphaTrend StrategyThe strategy version of AlphaTrend indicator for backtesting and optimisation purposes for TradingView users:
Screener / Explorer version and an English explantion video will be published soon...
AlphaTrend's parameters are designed for daily and 4H charts, feel free to optimize on all time frames.
Hope you all use Alphatrend in your profitable trades.
Kıvanç
Donchian Channels+Standard Donchian Channels, this includes a Trend EMA which can be configured and the channels will use to give buy and sell signals. The channels are also colored in such a way to indicate a trend reversals. My favorite part that sets this apart from others is, if using the bClose option (which I recommend you do) the trend will not reverse until there is a close above/below the previous channel high/low. i.e. a reversal into an uptrend requires the current bar to close above the previous upper channel rather than just a new high.
The coloring of the current trend allows for a quick read of current market conditions and I use this on any timeframe across all forms of charts (forex stock, futures , crypto, etc). When taking one of the signals I use the opposite channel as the stop loss (when buying use bottom, and selling use top channel)
Update 1:
- Added my name to the code
- Updated the picture to show off the indicator better
- Raised the brightness of the fill color a bit, looks nicer I think
As a warning: I have obviously hand picked this picture to really show off this indicator's power to work in a trending market. Donchian Channels are a trending indicator and work best in trending markets with decent pull backs. If there are multiple signals going in each direction, it is a choppy market and you should stay out until it starts trending again. I generally use a 1:1.5 risk to reward ratio but sometimes will stretch it to 1:2 if it is a nice trade and I feel the market is in my favor as you can see from the trades placed in the picture (and I use that method for any commodity / chart and timeframe). I use the close of the white candle and then (since they are trades going short) I use the upper Donchian Channel as my stop loss.
I personally like to have the lines and labels turned off and enable all other options. Labels are just there to really stand out so you don't miss the white candle indication for a trade. OH! Also, I've had comments from friends that the white candles are hard to see, I turn off my candle borders in settings; makes it super easy to see them then. I turn lines off as the fill does the job well enough and it seems cleaner in my eyes.
If you'd like to see this picture on your chart, it is Micro E-Mini S&P 500 Futures from July 10, 2022 @ 18:00 on the 1-min chart.
just now
Update 2:
- Added day trading time highlights
- Added ranging market indicator (This I'm still working on so use at your own discretion, it's intended purpose is to tell when the Donchian Channels are not going to give great signals and to use a ranging indicator instead)
- Added multi-timeframe trend screener (handy if you want to quickly see the trend direction (based on the Trend EMA you set) of several time frames without having to change charts). It will draw in the bottom right of the chart.
Volume Spikes & Growing Volume Signals With Alerts & ScannerVOLUME SPIKES & GROWING VOLUME SIGNALS WITH ALERTS & SCANNER
This indicator shows arrows when there is a volume spike. It also paints the background when volume is growing. There is also a volume scanner for 8 tickers that will change color in real time when your other favorite tickers see volume growth and spikes.
You can customize the length of DMI, the number of bars to calculate the current volume average from, the number of bars back to get the overall volume average from, the multiple that needs to be hit to give a signal, the position of the scanner table and which tickers are used in the scanner. There are detailed directions as tooltips in the indicator settings you can read to understand exactly what each input does.
All features are customizable as well as which tickers the screener uses.
***HOW TO USE***
Watch for volume to pick up before placing trades as this will help you stay out of the markets when price is choppy. Volume usually brings volatility so watch for the volume signals to show up on the chart. Typically when price has made a big move one direction or is consolidating and you see the volume indicator start giving signals, the market is ready to reverse or continue its current trend but move faster in that direction.
Volume Spikes
When there is a volume spike that is larger than the average of volume over the last 100+ bars(depending on your settings) multiplied by the volume amount multiplier(in your settings) then an arrow will show up on the chart. This arrow will be green if DMI is bullish and red if DMI is bearish.
Volume Growth
A Background color will appear when the average volume over the last 5 bars(depending on your settings) is higher than the average volume over the last 100+ bars(depending on your settings) and is greater than your multiple. It will also paint the background when the volume moving average has increased over the last 3 bars consecutively. The background colors will be red or green depending on buy & sell pressure(DMI). If the background color appears, then you know volume is growing and volatility is near.
Volume Scanner
The scanner can be customized to have all of your favorite tickers by changing the tickers used in the indicator settings at the bottom. When no volume growth or spikes are detected, the ticker will show as light blue. When volume spikes or growth is detected, the ticker will turn orange to notify you.
Alerts
You can set up alerts as well when there is volume growth, bullish volume spikes and bearish volume spikes on any chart or timeframe.
Indicator Settings
Settings will need to be adjusted across different tickers as some have large swings in volume and some stay pretty even, so make sure to set up different chart layouts with settings that work for each ticker and save them individually so you don’t have to reset these values every time you switch charts.
***MARKETS***
This indicator can be used as a signal on all markets, including stocks, crypto, futures and forex as long as Tradingview has volume and DMI data for that ticker.
***TIMEFRAMES***
This volume spike indicator can be used on all timeframes as long as there is enough data for Tradingview to use for calculations.
***TIPS***
Try using numerous indicators of ours on your chart so you can instantly see the bullish or bearish trend of multiple indicators in real time without having to analyze the data. Some of our favorites are our Auto Fibonacci, Volume Profile, Momentum, Auto Support And Resistance and Money Flow Index in combination with this Volume Growth indicator. They all have real time Bullish and Bearish labels as well so you can immediately understand each indicator's trend.
Multiple Indicator 50EMA Cross AlertsHere’s a screener including Symbol, Price, TSI, and 50 ema cross in a table output.
The 50 Exponential Moving Average is a trend indicator
You can find bullish momentum when the 50 ema crossed over or a bearish momentum when the 50 ema crossed under we are looking to take advantage by trading the reversion of these trends.
True strength index (TSI) is a trend momentum indicator
Readings are bullish when the True Strength Index shows positive values
Readings are bearish when the indicator displays negative values.
When a value is above 20, we look for selling overbought opportunity and when the value is under 20, we look for buying oversold opportunity.
You can select the pair of your choice in the settings.
Make sure to create an alert and choose any alerts then an alert will trigger when a price cross under or cross over the 50 ema for every pair separately.
This allow the user to verify if there is a trade set up or not.
Disclaimer
This post and the script don’t provide any financial advice.
MomentumThis indicator will give you the momentum readings (rate of change) for five lookback periods (15m, 60m, 4hr, 24hr, 48hr).
This is useful when backtesting or retroactively logging the readings into your trade journal (there is no way to roll back the Forex Factory momentum screener that I know of).
There are lines drawing in the background which are set to 100% transparency by default, so don't be puzzled when you occasionally see the bubbles for the line plots being highlighted on your chart.
Message me with any questions or suggestions.
Frog in Pan IndicatorWhat is it?
This indicator is the percent of negative days minus the percent of positive days in a year multiplied by the sign of the overall return of the lookback (365 days for crypto and 252 days for stocks).
FIP = sign(return of lookback) *
What is it used for?
This indicator is used as a quality screener for momentum stocks. It is based behind the ideas in Wesley Gray & Jack Vogel's book: Quantitative Momentum: A Practitioner's Guide to Building a Momentum-Based Stock Selection System that iterates that quality momentum stocks consist of steady uptrends (where more days are positive rather than negative) as opposed to characteristics of "lottery-like" stocks that are "jumpy" and more volatile. More research behind this indicator can be found here
How to use
In the indicator settings, the default lookback parameter is set to 365 days for analysis on cryptocurrencies and was used on a daily timeframe. If you want to use this indicator on individual stocks, it is best to change this lookback to 252 days. The more negative the value is, the higher quality of momentum it is.
Wick Pressure by SiddWolfMultiple Wicks forming at OverSold & OverBought levels create Buying and Selling Pressure. This Script tries to capture the essence of the buy and sell pressure created by those wicks. Wick pressure shows that the trend is Exhausted.
How it works:
This Wick Pressure Indicator checks for three candles forming the wicks in overbought and oversold zones. The zones are set by RSI and can be changed in settings. Those three candles should form a bit long wick and length of the wick is determined by ATR. The ATR multiple can be changed from settings. And then the script draws a box in the area formed by three candle wicks.
Confluence:
This indicator should not be used on its own. You should include it in your existing trading strategy. Any indicator should be rigorously tested before making any real trades.
Settings is the Key:
Settings are key to all of my indicators. Play around with it a bit. Change the ATR multiplier. Read the tooltips to understand what each settings mean. Tooltips are the (i) button in-front of each settings.
FAQs:
Q. Does the indicator Repaint ?
--- No. None of my indicators repaints. What you see now is what's drawn in real time.
Q. Indicator doesn't show anything ?
--- Maybe you've messed up the settings so reset it. or try different coin/stock.
Q. Does this indicator give financial advice?
--- No. Nope. Nein. Não. नहीं.
Conclusion:
This indicator is very basic but if used correctly it can be very powerful. Hit me up if you'd like to see the screener/scanner for this or any of my indicators. If you have any questions or suggestions feel free to comment below. I'd love to connect with you. Thank you.
~ SiddWolf
Syminfo [Epi]Hello! This little script tells you everything TradingView lets you access in a ticker's syminfo in Pine Script:
- description
- type: crypto, economic, forex, fund, futures, index, spread, stock
- tickerid, such as AMEX:BLOK
- prefix, such as AMEX
- Ticker, such as BLOK
- root: for derivatives such as futures contracts
- currency, such as USD
- base currency: returns 'BTC' for the ticker 'BTCUSD'
- mintick
- point value
- session: regular, extended
- timezone
Some surprises I found in my development:
- there are some more types than mentioned in the documentation,
- the tickerid takes on additional information if you adjust for dividends or show extended session,
- the prefix contains "_DL" additions depending on your data subscriptions, .e.g. "CME_MINI_DL:ES1!",
- with futures, TV will show session.regular both for the 'regular' and the 'electronic' session.
- Unfortunately, syminfo does not contain the 'sector', although TV has the information in the database (the sector is shown in the screener but not accessed in Pine Script).
I use this little utility in my development and hope it's useful for the community. I see such a great number of contributions from the community and would like to give back, even if it's not much.
Runners & Laggers (scanner)Firstly, seems to me this may only work with crypto but I know nothing about the other sectors so i could be wrong. I was trying to think up a good way to find moving coins(other than by volume bc theres holes in the results when using it this way). Thought this was an interesting concept so decided to publish it as I've seen no others like it (though i did not extensively search for it. We need to start with a little Tradingview(TV) common knowledge. When there is no update of trades/volume in a candle TV does not print the candle. So when looking at (let's say) a 1 second chart, if the coin being observed by the user has no update from a trade in the time of that 1 sec candle it is skipped over. This means that a coin with a ton of volume might fill an entire 60 seconds with 60 candles and conversely with a low volume coin there could be as little as 0 1-second candles. BUT even for normally low volume coins, when a pump is beginning with the coin it could literally go from 0 1-second candles within a minute to 60 1-second candles within the next minute. ***NOTE: This DOES NOT show ANY information if the coin is going up or down but rather that a LOT more trading volume is occurring than normal.*** What this script does is scans (via request.security feature) up to 40 coins at a time and counts how many candles are printed within a user set timespan calculated in minute. 1 candle print per incremented timeframe that the chart is on. ie. if the chart is a 1 min chart it counts how many 1 min candles are printed. So, (as is in the captured image for the script) if you wanted to count how many 5 second candles are printed for each coin in 1 min then you would have to put the charts timeframe on 5sec and the setting titled 'Window of TIME(in minutes) to count bars' as 1.0 (which bc it's in minutes 1.0m = 60sec and bc 60s / 5s = 12 there would be 12 possible values that each coin can be at depending on how many bars are counted within that 1min/60sec. *** I will update to show an image of what I'm talking about here. Now, the exchange I'm scanning here is Kucoin's Margin Coins. There are 170 something coins total but I removed a few i didn't care for to make it a round 40 coins per set (there being 4 sets of 40 coins total=160 coins being scanned). To scan all 4 sets the indicator must be added 4 times to the chart and a different 'set' selected for each iteration of the script on the chart. Free users can only scan 3 at the most. All others can scan all 4 sets. In the script you can change the exchange and coins as necessary. If there done so and there are not 40 coins total just put '' '' in the extra coins spots that are not filled and the script will skip over these blankly filled spots. The suffix (traded pair) for the tickerID on all Kucoin's Margin Coin's is USDT so that's what i have inputted in the main function on line 46 (will need to be changed if that differs from the coins you want to scan. Next in the line of settings is 'Window of TIME(in minutes) to count bars' which has already been discussed. Following that is the setting "Table Shows" which the results are all in a table and the table will present the coins that have either "Passed" or "Failed" depending on which you choose. The next setting determines what passes or fails. If there are 12 possible rows for the coins to be in (as described above) then this setting is the "Pass/Fail Cutoff" level. So if you want to show all the coins that are in rows 11 and 12 (as in the image at top) then 11 should be selected here. At this point you will see all the coins that have a lot of volume in them. Finding coin names in the table that are usually not with a ton of volume will present your present movers. NOTE: coins like BTC and ETH will almost always be in these levels so it does not indicate anything different from the norm of these coins. Last setting is the ability to show the table on the main window or not. Hope you enjoy and find use in it. BTW this screener format is the same as the others I have published. If you like, check those out too. If you find difficulty using then refer to those as well as they have additional info in them on how to use the scanner and its format. Lastly, in the script is the ability to print the plots and labels but I commented them out bc its really just a jumbled mess. In the commented out sections there is a Random Color Function (provided by @hewhomustnotbenamed which was developed on the basis of Function-HSL-color by @RicardoSantos. All right, peace brothers....and sisters.
**** Also, I see how the "levels" could be confusing so I will put them into a % format soon (probably not today) so that the "Pass/Fail Cutoff" can be in % format so that if "passed" is chosen and 50% is chosen (in the new setting that will be changed) then it'll show you all the coins that have more than 50% of the bars printed within the time window chosen. Goodluck in all your trading adventures. ChasinAlts out.
multicolor Bollinger Bands (BB <-> KC)Concept:
After every low volatile phase comes a high volatile phase and after every high volatile phase comes a low volatile phase.
If the Bollinger bands are smaller then the Keltner channel (colored red), the price action is low in volatility… meaning a breakout (colored green) will happen soon.
If Bollinger band is bigger than the Keltner channel = green
If Bollinger band is smaller than the Keltner channel = red
Displaying the Keltner Channel is optional
If multicolor BB is disabled, BB color = blue (default color)
Customise colors to your liking under settings -> style
-----------------------------------
To get alerts for all coins
1. visit » tradingview.com/crypto-screener
2. set the filter to »
Bollinger Upper Band (20) below Keltner Channels Upper Band (20)
Bollinger Lower Band (20) above Keltner Channels Lower Bands (20)
3. add your own custom filters, like: exchange, marketcap, etc…
4. choose the timeframe you want
5. enable alerts
Right Way OscillatorThis is a large composite screener indicator that includes 14 different indicators, the values of which are arranged in a color format and show the current market situation,
as well as all these values are summarized in a chart, each value is weighted by strength, which allows you to get a comprehensive picture of the market at the moment,
2 signal lines are plotted on the indicator, their intersection means that most indicators will show the maximum score.
Also, at the expected moments of the appearance of a trend movement, a gray background lights up on the indicator and 2 colored lines of the DI indicator appear, the color of the bottom line indicates what kind of movement is brewing.
ADX Screener// Identify potential trend reversals using ADX on up to 40 crypto assets.
// ADX shows the strength of a trend, not the direction.
// By monitoring the difference of ADX values between candles, you can potentially identify reversals before they happen.
// A strong trend has a 14 period ADX slope increasing .5 or more from the prior candle.
// At a minimum, a weak trend has a 14 period ADX slope of +.25 or less, and strictly it would be decreasing.
// This indicator prints one row for each asset with three columns for ADX differences one candle back each.
// The asset name is colored green or red dependent on whether +DI > -DI or not.
The market was in a down trend (-DI > +DI).
A bullish wave moved price up to EMA 8 resistance with strong ADX momentum (ADX diff of prior candle >= 0.5).
A Spinning Top showed that the trend was losing momentum (ADX diff lower than previous candle, showed the bullish wave losing momentum).
A Morning Star bearish reversal pattern draws resistance at the high of the pattern. (ADX Bullish momentum exhausted).
Symbol: -DI > +DI
2: Strong momentum
1: Losing momentum (spinning top)
0: Trend reversal (bearish engulfing pattern)
40 crypto screener [LUPOWN]// ENGLISH
This indicator shows two tables, with 10 assets each, they can be currencies, stocks or cryptos, the columns can be changed to the information you want to see, among the options are price or change (change in percentage of the candle in the temporality where you are seeing it), TL are buy or sell signals according to the Latin trading strategy (Squeeze momentum combined with ADX) buy if the momentum changes to range or rise and the ADX has a negative slope, sell if the momentum changes to range or fall and The ADX has a negative slope, the signals are not 100% effective, you must support it with price action and market speculation, directionality in the momentum, slope of the ADX, if there is divergence in the momoentum squeeze, lux something and cipher use an indicator of Lazy bear, lux something signals when two wave trends cross and the cipher signals when the wave trend crosses above or below the 0 point.
You can choose between seeing one or two tables, this so that it can be seen on small screens, there is also the option to hide the tables and show the label, which is also an alternative to see it on small screens
i got the main idea from @QuantNomad
//SPANISH
Este indicador muestra dos tablas, con 10 activos cada una, pueden ser divisas, acciones o cryptos, las columnas se pueden cambiar a la información que quieras ver, entre las opciones están precio o cambio (cambio en porcentaje de la vela en la temporalidad donde lo estes viendo), TL son señales de compra o venta según estrategia de trading latino (Squeeze momentum combinado con ADX) compra si el momentum cambia a rango o subida y el ADX tiene pendiente negativa, venta si el momentum cambia a rango o caída y el ADX tiene pendiente negativa, las señales no son 100% efectivas debes apoyarla con la acción del precio y especulación del mercado, direccionalidad en el momentum, pendiente del ADX, si hay divergencia en el squeeze momoentum, lux algo y cipher utilizan un indicador de Lazy bear, lux algo da señal cuando dos wave trend se cruzan y el cipher da señal cuando el wave trend cruza por encima o debajo del punto 0.
Puedes elegir entre ver una o dos tablas, esto para que se pueda ver en pantallas pequeñas, también esta la opción de ocultar las tablas y mostrar el label, que también es una alternativa para verlo en pantallas pequeñas
La idea principal la tome de @QuantNomad
MTF WatchList Charts [Anan]█ OVERVIEW
I am happy to present this script with a nice idea!
You can now customize a watchlist with your preferred time frame and any symbol from any market.
The main purpose is to be aware of any moves and watch a brief overview of the chart.
█ FEATURES
- 8 customizable symbols with the option to show/hide anyone
- Multi time frame support
- 3 Types of charts (Candles / Heikin Ashi / Line)
- Displaying up to 10 candles for every chart
- Customizable chart colors
- Option to Show/hide Price
- Option to Show/hide Price Line
- Option to change Labels and Text Size
- Show Symbol name and used time frame
- Option to change gaps between charts
- Hover over on the top of any candle to see (Open/High/Low/Close) Prices
█ SCREENSHOTS
-----------------------------------------------
Special thanks to @dgtrd for inspiration and for the amazing framework used here ( HTF Candles by DGT )
Special thanks to Pine Chat @fareidzulkifli @Bjorgum @JohnBaron @fpainchaud
Moving Average Cross ScreenerOne of the best methods to find a winning stock or crypto in the early stages is looking for an 8 and 21 ema cross. I have developed an indicator in trading view which helps you to create a watchlist of 20 instruments (stocks, forex, crypto) and monitor them - in any time frame - continuously and simultaneously to find any moving average crossing (bullish or bearish).
You can easily change the moving average length or moving averages type (EMA, SMA) in the menu of the indicator.
By using this tool you can easily find many potential long or short setups every day.
Jaws Mean Reversion [Strategy]This very simple strategy is an implementation of PJ Sutherlands' Jaws Mean reversion algorithm. It simply buys when a small moving average period (e.g. 2) is below
a longer moving average period (e.g. 5) by a certain percentage and closes when the small period average crosses over the longer moving average.
If you are going to use this, you may wish to apply this to a range of investment assets using a screener for setups, as the amount signals are low. Alternatively, you may wish to tweak the settings to provide more signals.
Context can be found here:
LINK
Currencies %R Heatmap screenerThis script is for Forex combinations of the following currencies: USD, EUR, GBP, JPY, CHF, AUD, NZD, CAD
- It uses security function to get 28 currency pairs, so that it may cost a few seconds to paint.
- It calculates %R of currencies and paint with fib color mentioned on my other script Williams %R Color Map
- Normally fib more currency stronger, and fib less the currency weaker. If too big or too small, considering trend change.
I always put on 3 charts with 1h, 5h ,1D to have a quick view.
Open Close Cross Strategy plus ExplorerOpen Close Cross Strategy plus Explorer
V 1.0
There is a code that can control sensitivity. try to change 'ATR Multiplier' menu
There is a code for prevent 'repaint'. If you want it check 'Forces Non-Repainting' menu
thanks to
PMax Explorer STRATEGY & SCREENER KivancOzbilgic
Open Close Cross Strategy R5 revised by JustUncleL JustUncleL
`security()` revisited [PineCoders]NOTE
The non-repainting technique in this publication that relies on bar states is now deprecated, as we have identified inconsistencies that undermine its credibility as a universal solution. The outputs that use the technique are still available for reference in this publication. However, we do not endorse its usage. See this publication for more information about the current best practices for requesting HTF data and why they work.
█ OVERVIEW
This script presents a new function to help coders use security() in both repainting and non-repainting modes. We revisit this often misunderstood and misused function, and explain its behavior in different contexts, in the hope of dispelling some of the coder lure surrounding it. The function is incredibly powerful, yet misused, it can become a dangerous WMD and an instrument of deception, for both coders and traders.
We will discuss:
• How to use our new `f_security()` function.
• The behavior of Pine code and security() on the three very different types of bars that make up any chart.
• Why what you see on a chart is a simulation, and should be taken with a grain of salt.
• Why we are presenting a new version of a function handling security() calls.
• Other topics of interest to coders using higher timeframe (HTF) data.
█ WARNING
We have tried to deliver a function that is simple to use and will, in non-repainting mode, produce reliable results for both experienced and novice coders. If you are a novice coder, stick to our recommendations to avoid getting into trouble, and DO NOT change our `f_security()` function when using it. Use `false` as the function's last argument and refrain from using your script at smaller timeframes than the chart's. To call our function to fetch a non-repainting value of close from the 1D timeframe, use:
f_security(_sym, _res, _src, _rep) => security(_sym, _res, _src )
previousDayClose = f_security(syminfo.tickerid, "D", close, false)
If that's all you're interested in, you are done.
If you choose to ignore our recommendation and use the function in repainting mode by changing the `false` in there for `true`, we sincerely hope you read the rest of our ramblings before you do so, to understand the consequences of your choice.
Let's now have a look at what security() is showing you. There is a lot to cover, so buckle up! But before we dig in, one last thing.
What is a chart?
A chart is a graphic representation of events that occur in markets. As any representation, it is not reality, but rather a model of reality. As Scott Page eloquently states in The Model Thinker : "All models are wrong; many are useful". Having in mind that both chart bars and plots on our charts are imperfect and incomplete renderings of what actually occurred in realtime markets puts us coders in a place from where we can better understand the nature of, and the causes underlying the inevitable compromises necessary to build the data series our code uses, and print chart bars.
Traders or coders complaining that charts do not reflect reality act like someone who would complain that the word "dog" is not a real dog. Let's recognize that we are dealing with models here, and try to understand them the best we can. Sure, models can be improved; TradingView is constantly improving the quality of the information displayed on charts, but charts nevertheless remain mere translations. Plots of data fetched through security() being modelized renderings of what occurs at higher timeframes, coders will build more useful and reliable tools for both themselves and traders if they endeavor to perfect their understanding of the abstractions they are working with. We hope this publication helps you in this pursuit.
█ FEATURES
This script's "Inputs" tab has four settings:
• Repaint : Determines whether the functions will use their repainting or non-repainting mode.
Note that the setting will not affect the behavior of the yellow plot, as it always repaints.
• Source : The source fetched by the security() calls.
• Timeframe : The timeframe used for the security() calls. If it is lower than the chart's timeframe, a warning appears.
• Show timeframe reminder : Displays a reminder of the timeframe after the last bar.
█ THE CHART
The chart shows two different pieces of information and we want to discuss other topics in this section, so we will be covering:
A — The type of chart bars we are looking at, indicated by the colored band at the top.
B — The plots resulting of calling security() with the close price in different ways.
C — Points of interest on the chart.
A — Chart bars
The colored band at the top shows the three types of bars that any chart on a live market will print. It is critical for coders to understand the important distinctions between each type of bar:
1 — Gray : Historical bars, which are bars that were already closed when the script was run on them.
2 — Red : Elapsed realtime bars, i.e., realtime bars that have run their course and closed.
The state of script calculations showing on those bars is that of the last time they were made, when the realtime bar closed.
3 — Green : The realtime bar. Only the rightmost bar on the chart can be the realtime bar at any given time, and only when the chart's market is active.
Refer to the Pine User Manual's Execution model page for a more detailed explanation of these types of bars.
B — Plots
The chart shows the result of letting our 5sec chart run for a few minutes with the following settings: "Repaint" = "On" (the default is "Off"), "Source" = `close` and "Timeframe" = 1min. The five lines plotted are the following. They have progressively thinner widths:
1 — Yellow : A normal, repainting security() call.
2 — Silver : Our recommended security() function.
3 — Fuchsia : Our recommended way of achieving the same result as our security() function, for cases when the source used is a function returning a tuple.
4 — White : The method we previously recommended in our MTF Selection Framework , which uses two distinct security() calls.
5 — Black : A lame attempt at fooling traders that MUST be avoided.
All lines except the first one in yellow will vary depending on the "Repaint" setting in the script's inputs. The first plot does not change because, contrary to all other plots, it contains no conditional code to adapt to repainting/no-repainting modes; it is a simple security() call showing its default behavior.
C — Points of interest on the chart
Historical bars do not show actual repainting behavior
To appreciate what a repainting security() call will plot in realtime, one must look at the realtime bar and at elapsed realtime bars, the bars where the top line is green or red on the chart at the top of this page. There you can see how the plots go up and down, following the close value of each successive chart bar making up a single bar of the higher timeframe. You would see the same behavior in "Replay" mode. In the realtime bar, the movement of repainting plots will vary with the source you are fetching: open will not move after a new timeframe opens, low and high will change when a new low or high are found, close will follow the last feed update. If you are fetching a value calculated by a function, it may also change on each update.
Now notice how different the plots are on historical bars. There, the plot shows the close of the previously completed timeframe for the whole duration of the current timeframe, until on its last bar the price updates to the current timeframe's close when it is confirmed (if the timeframe's last bar is missing, the plot will only update on the next timeframe's first bar). That last bar is the only one showing where the plot would end if that timeframe's bars had elapsed in realtime. If one doesn't understand this, one cannot properly visualize how his script will calculate in realtime when using repainting. Additionally, as published scripts typically show charts where the script has only run on historical bars, they are, in fact, misleading traders who will naturally assume the script will behave the same way on realtime bars.
Non-repainting plots are more accurate on historical bars
Now consider this chart, where we are using the same settings as on the chart used to publish this script, except that we have turned "Repainting" off this time:
The yellow line here is our reference, repainting line, so although repainting is turned off, it is still repainting, as expected. Because repainting is now off, however, plots on historical bars show the previous timeframe's close until the first bar of a new timeframe, at which point the plot updates. This correctly reflects the behavior of the script in the realtime bar, where because we are offsetting the series by one, we are always showing the previously calculated—and thus confirmed—higher timeframe value. This means that in realtime, we will only get the previous timeframe's values one bar after the timeframe's last bar has elapsed, at the open of the first bar of a new timeframe. Historical and elapsed realtime bars will not actually show this nuance because they reflect the state of calculations made on their close , but we can see the plot update on that bar nonetheless.
► This more accurate representation on historical bars of what will happen in the realtime bar is one of the two key reasons why using non-repainting data is preferable.
The other is that in realtime, your script will be using more reliable data and behave more consistently.
Misleading plots
Valiant attempts by coders to show non-repainting, higher timeframe data updating earlier than on our chart are futile. If updates occur one bar earlier because coders use the repainting version of the function, then so be it, but they must then also accept that their historical bars are not displaying information that is as accurate. Not informing script users of this is to mislead them. Coders should also be aware that if they choose to use repainting data in realtime, they are sacrificing reliability to speed and may be running a strategy that behaves very differently from the one they backtested, thus invalidating their tests.
When, however, coders make what are supposed to be non-repainting plots plot artificially early on historical bars, as in examples "c4" and "c5" of our script, they would want us to believe they have achieved the miracle of time travel. Our understanding of the current state of science dictates that for now, this is impossible. Using such techniques in scripts is plainly misleading, and public scripts using them will be moderated. We are coding trading tools here—not video games. Elementary ethics prescribe that we should not mislead traders, even if it means not being able to show sexy plots. As the great Feynman said: You should not fool the layman when you're talking as a scientist.
You can readily appreciate the fantasy plot of "c4", the thinnest line in black, by comparing its supposedly non-repainting behavior between historical bars and realtime bars. After updating—by miracle—as early as the wide yellow line that is repainting, it suddenly moves in a more realistic place when the script is running in realtime, in synch with our non-repainting lines. The "c5" version does not plot on the chart, but it displays in the Data Window. It is even worse than "c4" in that it also updates magically early on historical bars, but goes on to evaluate like the repainting yellow line in realtime, except one bar late.
Data Window
The Data Window shows the values of the chart's plots, then the values of both the inside and outside offsets used in our calculations, so you can see them change bar by bar. Notice their differences between historical and elapsed realtime bars, and the realtime bar itself. If you do not know about the Data Window, have a look at this essential tool for Pine coders in the Pine User Manual's page on Debugging . The conditional expressions used to calculate the offsets may seem tortuous but their objective is quite simple. When repainting is on, we use this form, so with no offset on all bars:
security(ticker, i_timeframe, i_source )
// which is equivalent to:
security(ticker, i_timeframe, i_source)
When repainting is off, we use two different and inverted offsets on historical bars and the realtime bar:
// Historical bars:
security(ticker, i_timeframe, i_source )
// Realtime bar (and thus, elapsed realtime bars):
security(ticker, i_timeframe, i_source )
The offsets in the first line show how we prevent repainting on historical bars without the need for the `lookahead` parameter. We use the value of the function call on the chart's previous bar. Since values between the repainting and non-repainting versions only differ on the timeframe's last bar, we can use the previous value so that the update only occurs on the timeframe's first bar, as it will in realtime when not repainting.
In the realtime bar, we use the second call, where the offsets are inverted. This is because if we used the first call in realtime, we would be fetching the value of the repainting function on the previous bar, so the close of the last bar. What we want, instead, is the data from the previous, higher timeframe bar , which has elapsed and is confirmed, and thus will not change throughout realtime bars, except on the first constituent chart bar belonging to a new higher timeframe.
After the offsets, the Data Window shows values for the `barstate.*` variables we use in our calculations.
█ NOTES
Why are we revisiting security() ?
For four reasons:
1 — We were seeing coders misuse our `f_secureSecurity()` function presented in How to avoid repainting when using security() .
Some novice coders were modifying the offset used with the history-referencing operator in the function, making it zero instead of one,
which to our horror, caused look-ahead bias when used with `lookahead = barmerge.lookahead_on`.
We wanted to present a safer function which avoids introducing the dreaded "lookahead" in the scripts of unsuspecting coders.
2 — The popularity of security() in screener-type scripts where coders need to use the full 40 calls allowed per script made us want to propose
a solid method of allowing coders to offer a repainting/no-repainting choice to their script users with only one security() call.
3 — We wanted to explain why some alternatives we see circulating are inadequate and produce misleading behavior.
4 — Our previous publication on security() focused on how to avoid repainting, yet many other considerations worthy of attention are not related to repainting.
Handling tuples
When sending function calls that return tuples with security() , our `f_security()` function will not work because Pine does not allow us to use the history-referencing operator with tuple return values. The solution is to integrate the inside offset to your function's arguments, use it to offset the results the function is returning, and then add the outside offset in a reassignment of the tuple variables, after security() returns its values to the script, as we do in our "c2" example.
Does it repaint?
We're pretty sure Wilder was not asked very often if RSI repainted. Why? Because it wasn't in fashion—and largely unnecessary—to ask that sort of question in the 80's. Many traders back then used daily charts only, and indicator values were calculated at the day's close, so everybody knew what they were getting. Additionally, indicator values were calculated by generally reputable outfits or traders themselves, so data was pretty reliable. Today, almost anybody can write a simple indicator, and the programming languages used to write them are complex enough for some coders lacking the caution, know-how or ethics of the best professional coders, to get in over their heads and produce code that does not work the way they think it does.
As we hope to have clearly demonstrated, traders do have legitimate cause to ask if MTF scripts repaint or not when authors do not specify it in their script's description.
► We recommend that authors always use our `f_security()` with `false` as the last argument to avoid repainting when fetching data dependent on OHLCV information. This is the only way to obtain reliable HTF data. If you want to offer users a choice, make non-repainting mode the default, so that if users choose repainting, it will be their responsibility. Non-repainting security() calls are also the only way for scripts to show historical behavior that matches the script's realtime behavior, so you are not misleading traders. Additionally, non-repainting HTF data is the only way that non-repainting alerts can be configured on MTF scripts, as users of MTF scripts cannot prevent their alerts from repainting by simply configuring them to trigger on the bar's close.
Data feeds
A chart at one timeframe is made up of multiple feeds that mesh seamlessly to form one chart. Historical bars can use one feed, and the realtime bar another, which brokers/exchanges can sometimes update retroactively so that elapsed realtime bars will reappear with very slight modifications when the browser's tab is refreshed. Intraday and daily chart prices also very often originate from different feeds supplied by brokers/exchanges. That is why security() calls at higher timeframes may be using a completely different feed than the chart, and explains why the daily high value, for example, can vary between timeframes. Volume information can also vary considerably between intraday and daily feeds in markets like stocks, because more volume information becomes available at the end of day. It is thus expected behavior—and not a bug—to see data variations between timeframes.
Another point to keep in mind concerning feeds it that when you are using a repainting security() plot in realtime, you will sometimes see discrepancies between its plot and the realtime bars. An artefact revealing these inconsistencies can be seen when security() plots sometimes skip a realtime chart bar during periods of high market activity. This occurs because of races between the chart and the security() feeds, which are being monitored by independent, concurrent processes. A blue arrow on the chart indicates such an occurrence. This is another cause of repainting, where realtime bar-building logic can produce different outcomes on one closing price. It is also another argument supporting our recommendation to use non-repainting data.
Alternatives
There is an alternative to using security() in some conditions. If all you need are OHLC prices of a higher timeframe, you can use a technique like the one Duyck demonstrates in his security free MTF example - JD script. It has the great advantage of displaying actual repainting values on historical bars, which mimic the code's behavior in the realtime bar—or at least on elapsed realtime bars, contrary to a repainting security() plot. It has the disadvantage of using the current chart's TF data feed prices, whereas higher timeframe data feeds may contain different and more reliable prices when they are compiled at the end of the day. In its current state, it also does not allow for a repainting/no-repainting choice.
When `lookahead` is useful
When retrieving non-price data, or in special cases, for experiments, it can be useful to use `lookahead`. One example is our Backtesting on Non-Standard Charts: Caution! script where we are fetching prices of standard chart bars from non-standard charts.
Warning users
Normal use of security() dictates that it only be used at timeframes equal to or higher than the chart's. To prevent users from inadvertently using your script in contexts where it will not produce expected behavior, it is good practice to warn them when their chart is on a higher timeframe than the one in the script's "Timeframe" field. Our `f_tfReminderAndErrorCheck()` function in this script does that. It can also print a reminder of the higher timeframe. It uses one security() call.
Intrabar timeframes
security() is not supported by TradingView when used with timeframes lower than the chart's. While it is still possible to use security() at intrabar timeframes, it then behaves differently. If no care is taken to send a function specifically written to handle the successive intrabars, security() will return the value of the last intrabar in the chart's timeframe, so the last 1H bar in the current 1D bar, if called at "60" from a "D" chart timeframe. If you are an advanced coder, see our FAQ entry on the techniques involved in processing intrabar timeframes. Using intrabar timeframes comes with important limitations, which you must understand and explain to traders if you choose to make scripts using the technique available to others. Special care should also be taken to thoroughly test this type of script. Novice coders should refrain from getting involved in this.
█ TERMINOLOGY
Timeframe
Timeframe , interval and resolution are all being used to name the concept of timeframe. We have, in the past, used "timeframe" and "resolution" more or less interchangeably. Recently, members from the Pine and PineCoders team have decided to settle on "timeframe", so from hereon we will be sticking to that term.
Multi-timeframe (MTF)
Some coders use "multi-timeframe" or "MTF" to name what are in fact "multi-period" calculations, as when they use MAs of progressively longer periods. We consider that a misleading use of "multi-timeframe", which should be reserved for code using calculations actually made from another timeframe's context and using security() , safe for scripts like Duyck's one mentioned earlier, or TradingView's Relative Volume at Time , which use a user-selected timeframe as an anchor to reset calculations. Calculations made at the chart's timeframe by varying the period of MAs or other rolling window calculations should be called "multi-period", and "MTF-anchored" could be used for scripts that reset calculations on timeframe boundaries.
Colophon
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
Snippets were lifted from our MTF Selection Framework , then massaged to create the `f_tfReminderAndErrorCheck()` function.
█ THANKS
Thanks to apozdnyakov for his help with the innards of security() .
Thanks to bmistiaen for proofreading our description.
Look first. Then leap.