End-of-Session Market ReviewToday was a solid trading day with some interesting moves across the markets:
S&P 500: The market trended upwards from the open, gradually moving into and above the prior day’s value area, closing near the high of that range.
NASDAQ 100: After some initial back-and-forth, it climbed above the prior day’s high and value area, showing strength into the close.
Russell 2000: This market was quite choppy and balanced for a good part of the session, but eventually pushed up to close near the prior value area high.
Gold: It stayed range-bound, moving between the CVA high and the prior day’s value area without breaking out.
Crude Oil: We saw a significant drop right from the start, with prices falling about 1.5 points and ending the day lower, though still within the prior day’s range.
Euro Dollar: It tested the CVA low, dipped below the prior day’s low, and then bounced back to close around that level.
Yen Dollar: It started near the prior value area low, accepted below it by midday, and remained balanced in that lower range.
Aussie Dollar: Initially, it held above the CVA area and tested a higher level before sharply dropping below the prior day’s low and then balancing in that lower area.
In total, I took eight trades today. Two of them were in the Yen, both valid setups that didn’t work out and ended in stop-outs. I also took some long trades in the Aussie Dollar that I probably could have avoided since the market was choppy.
On the positive side, I managed risk well and ended up with two winning trades that put me in the green by about $1,200. Overall, I’d rate today as an A- day. Moving forward, I’ll focus on staying out of choppy markets, paying attention to the developing value area, and possibly using Heikin Ashi bars for better clarity.
Community ideas
Airbnb: Downtrend Set to Resume SoonSince our last update, Airbnb has experienced a rebound, which diverted the stock from the anticipated sell-off. However, the price is expected to soon resume its downward trajectory and, as the next key step, break through support at $108.60. This move should complete turquoise wave 3, with all subsequent waves of this downward impulse likely to unfold below this level. Ultimately, the stock is expected to finish the broader correction of the beige wave II.
📈 Over 190 precise analyses, clear entry points, and defined Target Zones - that's what we do.
A bit of profit taking on NVDA and then up again?NASDAQ:NVDA is the most talked about and everyone is capitalizing on that. Let's take a look.
NASDAQ:NVDA
Let us know what you think in the comments below.
Thank you.
75.2% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how CFDs work and whether you can afford to take the high risk of losing your money. Past performance is not necessarily indicative of future results. The value of investments may fall as well as rise and the investor may not get back the amount initially invested. This content is not intended for nor applicable to residents of the UK. Cryptocurrency CFDs and spread bets are restricted in the UK for all retail clients.
Using the New 2025 TradingView Screener to find Golden CrossesIn this video, I show you how to use the new TradingView 2025 screener to quickly find stocks forming a golden cross and how to add the 50 and 200 simple moving averages to your charts for clear visual confirmation. A golden cross happens when the 50 moving average crosses up through the 200 moving average. Many traders (both fundamental and technical) watch for this pattern as a sign that a stock (or even whole market) may be shifting from a downtrend to a new uptrend.
Using the TradingView Screener we can quickly find Golden crosses to help filter for potential momentum setups without having to scan hundreds of charts manually. They are not magic signals, but when combined with your own analysis, they can help you spot bigger picture trends that are gaining strength. I walk through step-by-step how to set up your screener to catch these crossovers and add them to your watchlist.
If you want to keep your trading process simple while still catching moves early, this is a practical tool worth adding to your workflow. I also show a few quick tips on how to clean up your filters to reduce the number of stocks you have to go through.
Hope you find this useful. Please like and follow if you do :)
Let’s talk about technical analysis & stops.Technical analysis is not your decision-making process — it’s a tool to help you structure better trading decisions by studying past price movements to anticipate likely future moves.
👉 Every time you look at a chart, you should decide:
✅ Do I want to trade at all?
✅ What’s my entry?
✅ Where’s my stop (when does my thesis fail)?
✅ What’s my target (where will I take profits)?
________________________________________
🛑 Where to put your stop?
Take the S&P 500 daily chart. It’s been trending up strongly. Many traders use an exponential moving average (EMA) as a dynamic stop.
But:
• A 9 EMA often stops you out too early on strong trends.
• Adjusting to a 15 or 16 EMA could keep you in the trade longer, letting your winners run.
In tools like TradingView, you can visually adjust the EMA and see in real time how it would have kept you in or taken you out.
________________________________________
💡 Key takeaway:
When price closes below your EMA stop — that’s your signal to exit and lock in profits.
Use TA to structure your trades, not just spot pretty patterns.
________________________________________
💬 What’s your favourite method for setting stops?
Disclaimer:
The information posted on Trading View is for informative purposes and is not intended to constitute advice in any form, including but not limited to investment, accounting, tax, legal or regulatory advice. The information therefore has no regard to the specific investment objectives, financial situation or particular needs of any specific recipient. Opinions expressed are our current opinions as of the date appearing on Trading View only. All illustrations, forecasts or hypothetical data are for illustrative purposes only. The Society of Technical Analysts Ltd does not make representation that the information provided is appropriate for use in all jurisdictions or by all Investors or other potential Investors. Parties are therefore responsible for compliance with applicable local laws and regulations. The Society of Technical Analysts will not be held liable for any loss or damage resulting directly or indirectly from the use of any information on this site.
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
How to mark your charts Lightning fast!One of the things I didn't like was marking my charts. I would take so much time marking my charts and adding the prices on the side. My mentor showed me the fastest way. Just use the FIB tool and use "0" and "1". Now you can focus on other important things. I want to thank my mentor for showing me this. Good luck to everyone
BTC POTENTIAL BULLS TRAP IN DEVELOPMENTI am inspecting the 4 hour candle in comparison to the daily chart on BTC and it seem we have all the characteristics of a bulls trap on the chart. If the next 4 hours candle does not close bullish, it will confirm a bulls trap and price will likely pullback into the triangle. So be cautious trading at this resistance level.
Bull Trap Chart Characteristics
Look for:
A strong bullish candle that breaks above recent highs or resistance.
Volume spike on the breakout — signs that traders are buying.
Followed by a sharp bearish candle (like a shooting star, bearish engulfing, or long wick).
Price falls back below resistance, turning the breakout into a fakeout.
Cheers !!
Gold setup: ascending triangle and Trump’s debt bombGold just formed an ascending triangle, and a breakout could send it $300 higher. In this video, we analyse the new pattern, the key breakout level, and why Trump’s new tax bill and Powell’s potential replacement could spark a major move. Will fundamentals match the technicals? Watch to find out.
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 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.
The market bias stays up, MJ stocks may be a buy here. The market continues to be biased up, and the target is likely the weekly B. MJ stocks are showing technical signs that a reversal may come. There may be other sectors similar as I think the summer bottom gamblers will start appearing now that everything else is at the highs. Gold looks like it will eventually go lower. Nat gas lost support and is likely to go lower. USOIL is bear flagging.
NATURAL GAS - Who can Predict this wild beast?Natural gas got demolished today, down over 8%.
The one headline we saw hitting the tape that is having some partial influence:
"Vessel Arrives at LNG Canada to Load First Cargo, Strengthening Global Supply Outlook – LNG Recap"
Today, we did hedge our core long UNG position with a short dated $56 put on EQT.
We are already green on that trade and looking for $56 level to come into play.
Natural gas volatility sure trades in a world of its own which is why it is key to size accordingly.
PCEs & attacks on PowellWe are carefully monitoring the PCEs today, to see, "wins" this small battle in the rate-lowering war. Let's dig in.
Let us know what you think in the comments below.
Thank you.
77.3% of retail investor accounts lose money when trading CFDs with this provider. You should consider whether you understand how CFDs work and whether you can afford to take the high risk of losing your money. Past performance is not necessarily indicative of future results. The value of investments may fall as well as rise and the investor may not get back the amount initially invested. This content is not intended for nor applicable to residents of the UK. Cryptocurrency CFDs and spread bets are restricted in the UK for all retail clients.
Beating the S&P 500 with TradingView's Stock ScreenerThis is Mo from MWRIGHT TRADING. The date is Friday, June 27th, 2025.
This video is about selecting stocks that collectively have the potential to consistently beat the S&P 500
I look for smooth and consistent long-, mid-, and short-term performance. For that we need
Building a Screener
What I look for
- Liquidity - that means money, or trading volume.
- Room to move - no overhead resistance
- Favorable trends - stable moving averages
- Good short term signals - a good intraday chart
Filters
- Market Cap 300M to 2B
Not too big, and not too small
- Perf 10Y > Perf 5Y
No long term dips in performance
- Perf 5Y > Perf 1Y
No short term dips in performance
- SMA(300) < Price
Price above moving average
- SMA(200) < Price
Price above moving average
- Avg Volume 10D > 100K
No lightly traded stocks. Liquidity needed
- + SMA(200) >= SMA(300)
Stacked long-term SMAs
- + SMA(50 >= SMA(200)
Stacked short-term SMAs
- + ROE, Trailing 12 Months > 0% (Chris Mayer)
Improving ROE
Examples
- SENEA
- DGII
Review the charts
- Verify short term performance
- Multi-VWAP (1 hr Chart) - Free Indicator
- Above a rising 5-Day AVWAP
- Magic Order Blocks (5 min Chart) - Free Indicator
- No major overhead resistance
- Verify fundamentals and long term performance
- ROE (Quarterly) - TV Indicator
- Rising ROE
- Float Shares Outstanding - TV Indicator
- Lower float means lower supply. When high demand occurs, this can act as a price catalyst.
- Multi VWAP from Gaps - Free Indicator
- Stacked is good
- 3 SMA Ladies - Custom Indicator
- Stacked is good
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.
Nasdaq All-Time Highs, S&P Close, Blast Off or Breakdown?What an incredible melt-up since April 7 lows in the US markets.
Trump vs Musk - ignored
Iran vs Israel - ignored
High Valuations - ignored
FED Pausing - ignored
The US economy is resilient and it's a good thing because the world is performing really well (EX-US). Europe/China/India/Emerging Markets are outperforming the US by 15-16% YTD
The USD is having one its worst years ever in 2025
Gold, Silver, Bitcoin are great diversifiers in my opinion for 2025
Oil prices are incredibly volatile and energy stocks and commodities in turn are showing
volatility and big swings
As we near end of month and end of Q2, I have to believe the market is due for a small pause or pullback sooner rather than later - but we'll see
Thanks for watching!!!