How To Input CSV List Of Symbol Data Used For ScreenerExample of how to input multiple symbols at once using a CSV list of ticker IDs. The input list is extracted into individual ticker IDs which are then each used within an example screener function that calculates their rate of change. The results for each of the rate of changes are then plotted.
For code brevity this example only demonstrates using up to 4 symbols, but the logic is annotated to show how it can easily be expanded for use with up to 40 ticker IDs.
The CSV list used for input may contain spaces or no spaces after each comma separator, but whichever format (space or no space) is used must be used consistently throughout the list. If the list contains any invalid symbols the script will display a red exclamation mark that when clicked will display those invalid symbols.
If more than 4 ticker IDs are input then only the first 4 are used. If less than 4 ticker IDs are used then the unused screener calls will return `float(na)`. In the published chart the input list is using only 3 ticker IDs so there are only 3 plots shown instead of 4.
NOTICE: This is an example script and not meant to be used as an actual strategy. By using this script or any portion thereof, you acknowledge that you have read and understood that this is for research purposes only and I am not responsible for any financial losses you may incur by using this script!
Screen
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!
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.
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.
Boom Hunter - Entry Point Screener AlertsStock screener for Boom Hunter and Boom Hunter Pro entry zones. This script will screen 18 different stocks for entry zones.
1. Enter in any ticker ID's from charts you wish to scan in the settings.
2. Go to desired timeframe.
3. Click add alert button at top toolbar.
4. Select Boom Screener indicator, input alert notification settings and/or change alert name and click create.
The script will then scan the stocks and alert you of any entry zones from the timeframe you set the alerts.
A new alert needs to be created for each timeframe you wish to screen.
Relative Volume Screener AlertsThis script will screen 12 different stocks and current chart (13 in total) for entry points from my relative volume indicator.
1. Enter in any ticker ID's from charts you wish to scan in the settings.
2. Go to desired timeframe.
3. Click add alert button at top toolbar.
4. Select RVOL Screener Alerts indicator, input alert notification settings and/or change alert name and click create.
The script will then scan the stocks and alert you of any entry points from the timeframe you set the alerts.
A new alert needs to be created for each timeframe you wish to screen.
You can find my relative volume indicator here:
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.
Supertrend Screener LABELThis screens for Supertrend reversal's in 10 different securities. The main logic for the screener is taken from "Simple Custom Screener in Pinescript" by QuantNomad with his permission. If the label color is not visible due to the text in it being white colored, then choose a different color from settings. Also added a simple supertrend to it.
Terminology explanation:
Confirmed Reversal: Supertrend reversal that happened in the last bar and cannot be repainted.
Potential Reversal: Supertrend reversal that might happen in the current bar but can also not happen depending upon the timeframe closing price.
Uptrend/Downtrend : Shows all the tickers that are either currently in uptrend or downtrend.
Custom Screener with Alerts [QuantNomad]Some time ago I published an example of simple custom screener in PineScript:
The only thing this screener did is created a dynamic label with screener output.
Recently TradingView announced alerts from the strategy with the possibility to add custom messages to alerts.
So using it I was able to create a bit more advanced screener which sends results as alert messages. With tools like Alertatron, you can easily redirect them to Telegram if you want.
It works for 40 symbols (limitation of the number of security calls).
To create your own screener you need to change only screenerFunc. The logic of this function is very simple, it outputs value you want to display in screener and condition based on which your screener should filter your stocks.
To create alerts for this screener create an alert from strategy and use {{strategy.order.alert_message}} as alert message.
Do you know now how to make this screener better? Let me know.
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 ScreenerI was inspired by this idea:
With his script you can create a simple custom screener in Pine Script on your own for 40 tickets or less. But to make a separate screener for every 40 stocks sucks, so I wrote a program that generates script that allows you to switch stock sets.
Current script is generated for the Moscow stock exchange.
You can contact me if you need screener for your exchange or big set of stocks.
QuantNomad - Simple Custom Screener in PineScriptQuite often I need to run screeners with the custom condition, but unfortunately, in TradingView it's impossible.
I created an example script to show how you can create a simple custom screener in Pine Script on your own.
It's not very good, it requires some manual adjustments, it can be improved in some ways, but I think it might work for some tasks.
What do you think? Do you have a better way to implement custom screeners in TradingView?
To run your own conditions you need to implement them in:
customFunc() function and for every ticker you want to include in your search add 2 lines like these with newly defined variable:
s1 = security('BTCUSD', '1', customFunc())
and
scr_label := s1 ? scr_label + 'BTCUSD ' : scr_label
I'm not sure that it will work well for more than a few dozen tickers.
But I hope it will be helpful for you.
And remember:
Past performance does not guarantee future results.