Pine Screener - Powerful tool for building programmable screenerHello Everyone,
In this video, we have discussed on how to use pine screener utility of tradingview. We are making use of the indicator Divergence Screener for this demonstration and screen stocks undergoing bullish divergence.
In a nutshell, here are the steps:
🎯 Use Stock Screener to build watchlist of less than 1000 symbols
🎯 Add the indicator you want to use in the pine screener to your favorites.
🎯 Pine screener can be accessed from the tradingview screener menu or you can simply click on the link www.tradingview.com
🎯 Add the watchlist and indicator to the pine screener and adjust the timeframe and indicator settings
🎯 Select the criteria to be scanned and press scan
Community ideas
$ETH and $XRP simple kindergarten teaching! im the father. and this is class day 1. showing you eth and xrp simple future play that will occur for the bull. my students should be using there imagination and common sense to chart just like this already. the first videos i will explain in very simple ways. and as we move on. more indication for my higher up students will come out !
bag dad
Debugging Pine Script with log.info()log.info() is one of the most powerful tools in Pine Script that no one knows about. Whenever you code, you want to be able to debug, or find out why something isn’t working. The log.info() command will help you do that. Without it, creating more complex Pine Scripts becomes exponentially more difficult.
The first thing to note is that log.info() only displays strings. So, if you have a variable that is not a string, you must turn it into a string in order for log.info() to work. The way you do that is with the str.tostring() command. And remember, it's all lower case! You can throw in any numeric value (float, int, timestamp) into str.string() and it should work.
Next, in order to make your output intelligible, you may want to identify whatever value you are logging. For example, if an RSI value is 50, you don’t want a bunch of lines that just say “50”. You may want it to say “RSI = 50”.
To do that, you’ll have to use the concatenation operator. For example, if you have a variable called “rsi”, and its value is 50, then you would use the “+” concatenation symbol.
EXAMPLE 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
log.info(“RSI= ” + str.tostring(rsi))
Example Output =>
RSI= 50
Here, we use double quotes to create a string that contains the name of the variable, in this case “RSI = “, then we concatenate it with a stringified version of the variable, rsi.
Now that you know how to write a log, where do you view them? There isn’t a lot of documentation on it, and the link is not conveniently located.
Open up the “Pine Editor” tab at the bottom of any chart view, and you’ll see a “3 dot” button at the top right of the pane. Click that, and right above the “Help” menu item you’ll see “Pine logs”. Clicking that will open that to open a pane on the right of your browser - replacing whatever was in the right pane area before. This is where your log output will show up.
But, because you’re dealing with time series data, using the log.info() command without some type of condition will give you a fast moving stream of numbers that will be difficult to interpret. So, you may only want the output to show up once per bar, or only under specific conditions.
To have the output show up only after all computations have completed, you’ll need to use the barState.islast command. Remember, barState is camelCase, but islast is not!
EXAMPLE 2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
if barState.islast
log.info("RSI=" + str.tostring(rsi))
plot(rsi)
However, this can be less than ideal, because you may want the value of the rsi variable on a particular bar, at a particular time, or under a specific chart condition. Let’s hit these one at a time.
In each of these cases, the built-in bar_index variable will come in handy. When debugging, I typically like to assign a variable “bix” to represent bar_index, and include it in the output.
So, if I want to see the rsi value when RSI crosses above 0.5, then I would have something like:
EXAMPLE 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,0.5)
if rsiCrossedOver
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
bix=19964 - RSI=51.8449459867
bix=19972 - RSI=50.0975830828
bix=19983 - RSI=53.3529808079
bix=19985 - RSI=53.1595745146
bix=19999 - RSI=66.6466337654
bix=20001 - RSI=52.2191767466
Here, we see that the output only appears when the condition is met.
A useful thing to know is that if you want to limit the number of decimal places, then you would use the command str.tostring(rsi,”#.##”), which tells the interpreter that the format of the number should only be 2 decimal places. Or you could round the rsi variable with a command like rsi2 = math.round(rsi*100)/100 . In either case you’re output would look like:
bix=19964 - RSI=51.84
bix=19972 - RSI=50.1
bix=19983 - RSI=53.35
bix=19985 - RSI=53.16
bix=19999 - RSI=66.65
bix=20001 - RSI=52.22
This would decrease the amount of memory that’s being used to display your variable’s values, which can become a limitation for the log.info() command. It only allows 4096 characters per line, so when you get to trying to output arrays (which is another cool feature), you’ll have to keep that in mind.
Another thing to note is that log output is always preceded by a timestamp, but for the sake of brevity, I’m not including those in the output examples.
If you wanted to only output a value after the chart was fully loaded, that’s when barState.islast command comes in. Under this condition, only one line of output is created per tick update — AFTER the chart has finished loading. For example, if you only want to see what the the current bar_index and rsi values are, without filling up your log window with everything that happens before, then you could use the following code:
EXAMPLE 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
if barstate.islast
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
Example Output =>
bix=20203 - RSI=53.1103309071
This value would keep updating after every new bar tick.
The log.info() command is a huge help in creating new scripts, however, it does have its limitations. As mentioned earlier, only 4096 characters are allowed per line. So, although you can use log.info() to output arrays, you have to be aware of how many characters that array will use.
The following code DOES NOT WORK! And, the only way you can find out why will be the red exclamation point next to the name of the indicator. That, and nothing will show up on the chart, or in the logs.
// CODE DOESN’T WORK
//@version=6
indicator("MW - log.info()")
var array rsi_arr = array.new()
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50)
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
// No code errors, but will not compile because too much is being written to the logs.
However, after putting some time restrictions in with the i_startTime and i_endTime user input variables, and creating a dateFilter variable to use in the conditions, I can limit the size of the final array. So, the following code does work.
EXAMPLE 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// CODE DOES WORK
//@version=6
indicator("MW - log.info()")
i_startTime = input.time(title="Start", defval=timestamp("01 Jan 2025 13:30 +0000"))
i_endTime = input.time(title="End", defval=timestamp("1 Jan 2099 19:30 +0000"))
var array rsi_arr = array.new()
dateFilter = time >= i_startTime and time <= i_endTime
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50) and dateFilter // <== The dateFilter condition keeps the array from getting too big
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
rsi_arr:
bix=20210 - RSI=56.9030578034
Of course, if you restrict the decimal places by using the rounding the rsi value with something like rsiRounded = math.round(rsi * 100) / 100 , then you can further reduce the size of your array. In this case the output may look something like:
Example Output =>
rsi_arr:
bix=20210 - RSI=55.6947486019
This will give your code a little breathing room.
In a nutshell, I was coding for over a year trying to debug by pushing output to labels, tables, and using libraries that cluttered up my code. Once I was able to debug with log.info() it was a game changer. I was able to start building much more advanced scripts. Hopefully, this will help you on your journey as well.
How I screen for long term investmentsIn this video, I’ll show you the exact stock screener I use to find long-term investment opportunities — the kind of stocks you can buy and hold for years.
I’ll walk you through the key metrics to look for, how to use free tools like TradingView screener, and what red flags to avoid. This strategy is perfect for beginner and experienced investors who want to build long-term wealth, not chase hype.
Whether you're looking for undervalued stocks, consistent compounders, or just trying to build your long-term portfolio, this screener can help.
Hope you enjoy!!
How to Trade Double Tops & Bottoms in TradingViewLearn how to identify, validate, and trade double top and double bottom reversal patterns using TradingView's charting tools in this comprehensive tutorial from Optimus Futures. Understanding these classic chart formations can help you spot potential trend reversals and capitalize on contrarian trading opportunities in the futures markets.
What You'll Learn:
• Understanding contrarian vs. continuation trading strategies and when to use each approach
• The psychology behind buying low and selling high through reversal pattern trading
• How to identify double top and double bottom formations on any timeframe
• Key characteristics of valid double tops and bottoms, including volume confirmation
• Using TradingView's XABCD pattern tool to validate potential double top/bottom setups
• Real-world example analysis using crude oil futures charts
• Risk management techniques for trading reversal patterns
• How to calculate appropriate entry points, stop losses, and profit targets
• Setting up 1:1 risk-reward ratios for mathematical trading edge
• Understanding win rate requirements for profitable pattern trading
• How double bottom patterns work as the inverse of double top formations
This tutorial may benefit futures traders, swing traders, and technical analysts interested in contrarian trading strategies and reversal pattern recognition. The concepts covered could help you identify potential turning points in market trends and develop systematic approaches to trading these classic chart formations.
Visit Optimus Futures to learn more about trading futures with TradingView: optimusfutures.com/Platforms/TradingView.php
Disclaimer:
There is a substantial risk of loss in futures trading. Past performance is not indicative of future results. Please trade only with risk capital. We are not responsible for any third-party links, comments, or content shared on TradingView. Any opinions, links, or messages posted by users on TradingView do not represent our views or recommendations. Please exercise your own judgment and due diligence when engaging with any external content or user commentary.
This video represents the opinion of Optimus Futures and is intended for educational purposes only. Chart interpretations are presented solely to illustrate objective technical concepts and should not be viewed as predictive of future market behavior. In our opinion, charts are analytical tools—not forecasting instruments. Market conditions are constantly evolving, and all trading decisions should be made independently, with careful consideration of individual risk tolerance and financial objectives.
USDJPY FXAN & Heikin Ashi exampleIn this video, I’ll be sharing my analysis of USDJPY, using FXAN's proprietary algo indicators with my unique Heikin Ashi strategy. I’ll walk you through the reasoning behind my trade setup and highlight key areas where I’m anticipating potential opportunities.
I’m always happy to receive any feedback.
Like, share and comment! ❤️
Thank you for watching my videos! 🙏
GBPUSD – Short-Term Entry Model (Price Action Based)Education time!
This is a quick-execution on GBPUSD this London session based on a failed breakout and structure shift.
Price initially broke above the previous high but failed to sustain the breakout. The second push failed to print a higher high (HH), signaling potential exhaustion. Once the higher low (HL) that led to the failed HH was broken to the downside, a valid short setup was confirmed.
The trade targets the 161.8% Fibonacci extension of the initial move that failed to hold above the high.
📉 Result: The setup played out cleanly, hitting the target with a +17 pip gain.
Velocity Market Conditions Explained.There are 6 primary upside Market Conditions. Currently the stock market is in a Velocity Market Condition where price and runs are controlled by retail investors, retail swing traders, retail day traders and the huge group of Small Funds Managers using VWAP ORDERS to buy shares of stock with an automated systematic buy order trigger when the volume in that stock starts to rise. The more volume in a stock the faster the VWAP order will trigger.
You task is to study Dark Pool hidden and quiet accumulation bottoming formations to be ready for the Velocity Market Condition that always follows.
Price is a primary indicator.
Volume is a primary Indicator.
These are the most important indicators in your trading charting software tools.
The next most important indicator is Large lot versus Small lot indicators which are NOT based on volume but more complex formulations.
HFTs use algorithms, AI, social media discussions etc.
To ride the Velocity wave upward, you must enter the stock before the run upward.
Learning to read charts as easily takes practice and experience.
The benefit is the ability to forecast with a very high degree of accuracy what that stock will due in terms of rising profits, over the next few days or longer.
Candlesticks have many new candle patterns that have just developed in the past couple of years. The stock market is evolving at a fast pace and the internal market structure that you can't see is only visible in the candlesticks, large lot vs small lot indicators, and other semi professional to professional level tools for analyzing stocks.
The stock market is changing and becoming far more tiered with more off exchange transactions. Learn to read charts so that you can trade with higher confidence and higher revenues.
How to Trade When Buy/Sell Alerts Conflict with Market StructureQuestion:
If we have a buy/sell alert and an opposing Market Structure, how can we tell which will prevail or is heavier?
Answer (VX Algo System perspective):
In the VX Algo system, both the alert signals (buy/sell) and the market structure are crucial, but they serve different roles:
Alerts are dynamic triggers based on price action, momentum, or specific algorithmic conditions. They indicate potential entry or exit points.
Market Structure reflects the broader trend and underlying order flow, indicating the prevailing direction of the market (e.g., higher highs and higher lows for bullish structure, or lower highs and lower lows for bearish structure).
When an alert contradicts the prevailing market structure, the heavier factor is usually the Market Structure because it represents the dominant order flow and sentiment. In other words, alerts give you tactical timing, but market structure provides strategic context.
How to tell which prevails:
Confirm with Market Structure: If the market structure is bullish (uptrend), a buy alert aligns with it and is more likely to succeed. A sell alert against that structure is a warning sign that the alert may be weaker or a potential false signal.
Volume and Momentum: Use volume or momentum indicators (built into VX Algo or complementary tools) to see if the alert has strength behind it. A strong sell alert with high volume during an uptrend may indicate an imminent structure shift.
Multiple Timeframe Analysis: Check if the opposing alert is supported or rejected on higher timeframes. A buy alert on a lower timeframe against a bearish higher timeframe structure is less likely to prevail.
Risk Management: If you trade against structure alerts, reduce position size and tighten stops until the structure confirms the shift.
Summary: Market structure is heavier and more reliable for directional bias. Alerts provide tactical entry timing. When they conflict, lean on structure for bias but watch for alert strength as early signals of possible structure changes.
How to Spot Head & Shoulders Patterns in TradingViewDiscover how to identify and validate Head & Shoulders patterns using TradingView's built-in pattern recognition tools in this detailed tutorial from Optimus Futures. Chart patterns are essential tools for many futures traders, and the Head & Shoulders formation is among the most recognized reversal patterns in technical analysis.
What You'll Learn:
• Understanding the Head & Shoulders pattern: a key reversal formation in technical analysis
• How to access and use TradingView's pattern drawing tools and objects
• Step-by-step process for identifying potential Head & Shoulders formations on any timeframe
• Techniques for spotting the "head" by locating the highest high or lowest low pivot points
• How to identify matching "shoulders" on either side of the head formation
• Validating your pattern identification using TradingView's drawing tools
• Real-world example using crude oil futures on an hourly chart from October 2024
• Key characteristics that distinguish bearish Head & Shoulders reversal patterns
• Best practices for using pivot points and swing analysis in pattern recognition
This tutorial may benefit futures traders, swing traders, and technical analysts who want to improve their chart pattern recognition skills in TradingView. The techniques demonstrated could help you identify potential reversal opportunities and make more informed trading decisions when these classic formations appear on your charts.
Keywords: Head and Shoulders pattern, TradingView tutorial, chart patterns, technical analysis, reversal patterns, futures trading, pivot points, swing analysis, pattern recognition, trading education
Visit Optimus Futures to learn more about trading futures with TradingView:
optimusfutures.com
Disclaimer:
There is a substantial risk of loss in futures trading. Past performance is not indicative of future results. Please trade only with risk capital. We are not responsible for any third-party links, comments, or content shared on TradingView. Any opinions, links, or messages posted by users on TradingView do not represent our views or recommendations. Please exercise your own judgment and due diligence when engaging with any external content or user commentary.
This video represents the opinion of Optimus Futures and is intended for educational purposes only. Chart interpretations are presented solely to illustrate objective technical concepts and should not be viewed as predictive of future market behavior. In our opinion, charts are analytical tools—not forecasting instruments. Market conditions are constantly evolving, and all trading decisions should be made independently, with careful consideration of individual risk tolerance and financial objectives.
Learn how to trade EOD / FOD Professional StrategyEOD /FOD is an acronym for End of Day buy or sell short entry that holds overnight and the First of Day sell the ETF or stock at Market Open. This is a strategy for experienced to Elite aka Semi-Professional Traders. Beginners need to hone skills and practice in a simulator.
Professional Traders use this strategy all the time. They rarely intraday trade aka "day trading" unless they are Sell Side Institution floor traders who do intraday trading all daylong.
EOD /FOD is a very simple, easy to learn strategy for when Buy Side Giant Dark Pools have accumulated OR have Supported the Market and the Dark Pools foot print of a rectangle that is narrow with consistent highs and lows.
TWAP Dark Pool orders trigger at a low price or lower and usually move price minimally. When in Support the Market mode. The run up is a long white candle.
TWAPs are automated Time Weighted At Average Price. These orders ping at a specific time and buy in accumulation mode. If the stock price suddenly moves up beyond the high range of the TWAP, then the orders pause or halt.
Then pro traders do nudges and runs are instigated by either Gap Ups by HFTs, OR smaller funds VWAP ORDERS, or MEME's or other large groups of retail traders all trading and entering orders in sync or as close to sync as possible to create a flood of small lots that do move price upward OR downward rapidly.
Using the EOD /FOD requires understanding of how the Dark Pools, Pro Traders and other groups react to price and what, where and when orders are automated.
When ever you see a platform trend pattern such as we have on the QQQ yesterday at close and early this morning, then the entry would have been in the last 5 minutes of yesterday's market.
How Bitcoin can impact alt coins like sol and sui This video is a very quick update on the potential for bitcoin to drop into the 96/97k region and the effect it will have on alt coins .
If you hold altcoins and you see them bleed in price then its important to know and understand whats ahead for Bitcoin .
Understanding this will help you with your entry's and your exits on all altcoins .
The Fundamental Truths About a Trending MarketBefore you can trade successfully, you must first understand what defines a market trend.
🔼 What is an Uptrend?
An uptrend is characterised by a series of Higher Highs (HH) and Higher Lows (HL). This signals that buyers are in control and price is climbing steadily.
🔽 What is a Downtrend?
A downtrend is identified by a series of Lower Lows (LL) and Lower Highs (LH). This indicates that sellers are dominant and price is consistently falling.
📌 Important Facts About a Trending Market
Trends don’t change easily. Once a trend is established, it tends to persist.
A trend reversal takes time and effort. It doesn't happen abruptly — the market needs a strong reason to change direction.
There are always warning signs. Before a trend changes, there’s usually a pattern or shift in behaviour that acts as a clue.
The bigger the trend, the longer it takes to reverse. A well-established trend will require more time and evidence before it breaks.
🎯 Keys to Trading Any Market Successfully
Identify the market condition.
Is the market trending upwards, downwards, or moving sideways (consolidating)?
Study price behaviour at key levels.
Understand how price reacts at significant highs and lows.
Learn the anatomy of price waves.
Recognise wave structure — how price expands and contracts in trends.
Align your trades with the market condition.
Your entry and exit strategies should fit the current phase of the market.
🔚 Summary
Mastering trends is one of the most important skills in trading. When you understand what defines an uptrend or downtrend, recognise when a trend may be ending, and align your strategy with the market condition, you set yourself up for consistent success. Patience, observation, and timing are key — because the market always leaves clues, but only for those who are prepared to see them.
How to Draw Support & Resistance In TradingViewLearn how to effectively identify, draw, and utilize support and resistance levels in TradingView with this comprehensive step-by-step tutorial. Whether you're a beginner trader or looking to refine your technical analysis skills, this video covers everything you need to know about one of the most fundamental concepts in trading.
What You'll Learn:
Understanding support and resistance: the foundation of technical analysis and price action trading
Step-by-step instructions for drawing horizontal support and resistance lines in TradingView
Creating support and resistance zones for more flexible trading approaches
Practical tips for using TradingView's drawing tools effectively
This tutorial may be helpful for day traders, swing traders, and investors using TradingView who want to improve their chart analysis skills. The techniques covered could help you make more informed entry and exit decisions by understanding where price might find support or encounter resistance.
Visit Optimus Futures to learn more about trading futures with TradingView: optimusfutures.com
Disclaimer:
There is a substantial risk of loss in futures trading. Past performance is not indicative of future results. Please trade only with risk capital. We are not responsible for any third-party links, comments, or content shared on TradingView. Any opinions, links, or messages posted by users on TradingView do not represent our views or recommendations. Please exercise your own judgment and due diligence when engaging with any external content or user commentary.
This video represents the opinion of Optimus Futures and is intended for educational purposes only. Chart interpretations are presented solely to illustrate objective technical concepts and should not be viewed as predictive of future market behavior. In our opinion, charts are analytical tools—not forecasting instruments. Market conditions are constantly evolving, and all trading decisions should be made independently, with careful consideration of individual risk tolerance and financial objectives.
Guide: How to Read the Smart Farmer SystemDear Reader , Thank you for tuning in to my first video publication.
This video explains the 3-step signal validation process—helping you quickly and precisely anticipate market intent and liquidity dynamics before taking action.
We do not react to noise; we respond with structured execution because we understand the market’s true game.
Listen to the market— this guide is here to sharpen your journey.
Correction Notice (16:58 timestamp): A slight clarification on the statement regarding signal validation :
SELL signals: The trading price must close BELOW the Price of Control (POC) and Value Average Pricing (VAP) without invalidation occurring in both the confirmation candle and progress candle.
BUY signals: The trading price must close ABOVE the Price of Control (POC) and Value Average Pricing (VAP) without invalidation occurring in both the confirmation candle and progress candle.
Multiple signals indicate liquidity games are actively unfolding, including accumulation, control, distribution, and offloading.