Beyond Technical Analysis
💡MAJOR mistake that all beginners do. Try to do the opposite.💡The main purpose of my resources is free, actionable education for anyone who wants to learn trading. Consider following the attached links for improvement of your mental and technical trading skills - learn from hundreds of videos featuring the real story and growth of a particular trader, with all the mistakes and pain on the way to consistency. I'm always glad to discuss and answer questions.
✨❄️🌟 The Tutorial How-To Find a Magic on TradingViewFinancial markets just finished its memorial 2023.
Whatever the numbers at the “Closing bell”, on your monitors and in your portfolios, there is no doubt that 2023 year’s Santa Rally will go down in history as one of the most outstanding in many years.
In November and December, 2023 the U.S. stock market was rallying for the 9th consecutive week in a row.
This was the longest ever upside streak in SP:SPX over the past 20 years, since the fourth quarter of 2003.
Well.. just try to answer what happened with the market the past one time.
Happy New 2024 Year!
✨❄️🌟🎅🎊🌲💫⛄️🌠✨❄️🌟🎅🎊🌲💫⛄️🌠
☝️3 Main enemies of a trader and how to deal with them☝️☝️Dear traders, no one here has superpowers, and I'm just a human after all. Please take everything with a grain of salt. I'm sharing my view and one of the possible scenarios of price action, but mostly - my direct experience. When I enter I try to predict as little as possible and actually follow what the market is doing, joining the market and not arguing with it or forcing my will. Have good trading, keep a constant flow of self-awareness, and do your best. 🙌
Thinking in Pine - Tricks and Tips of DebuggingWelcome to "Thinking in Pine" short video series on the topics of Pine Script.
Today's discussion point is debugging and tools that Pine script provide us to debug our programs.
🎲 Points Discussed
Debugging using `plot` for numerical series values.
Using Pine Logs to debug for cases where `plot` is not suitable
🎯 Example Program - Debugging using plot
length = input.int(14, 'Length')
multiplier = input.float(4, 'Multiplier')
var dir = 1
var stopDistance = ta.atr(length) * multiplier
// Remove var to fix the first issue
// stopDistance = ta.atr(length) * multiplier
buyStopCurrent = close-stopDistance
sellStopCurrent = close + stopDistance
var buyStop = buyStopCurrent
var sellStop = sellStopCurrent
buyStop := dir > 0? math.max(buyStop, buyStopCurrent) : buyStopCurrent
sellStop := dir < 0? math.min(sellStop, sellStopCurrent) : sellStopCurrent
// Use nz to overcome na issues with math.max/ math.min
// buyStop := dir > 0? math.max(nz(buyStop, buyStopCurrent), buyStopCurrent) : buyStopCurrent
// sellStop := dir < 0? math.min(nz(sellStop, sellStopCurrent), sellStopCurrent) : sellStopCurrent
dir := dir == 1 and close < buyStop? -1 : dir == -1 and close > sellStop ? 1 : dir
// Plot statements used for debugging. display is set to display.data_window as the debugging plots do not need to appear on the charts
plot(stopDistance, 'Stop Distance', color.purple, display = display.data_window)
plot(buyStopCurrent, 'buyStopCurrent', color.red, display = display.data_window)
plot(sellStopCurrent, 'sellStopCurrent', color.green, display = display.data_window)
plot(buyStop, 'buyStop', color.red, display = display.data_window)
plot(sellStop, 'sellStop', color.green, display = display.data_window)
plot(dir, 'Direction', color.white, display = display.data_window)
plot(dir > 0? buyStop : sellStop, 'Supertrend', dir > 0? color.red : color.green)
🎯 Example Program - Pine Logs
sum = 0
arr = array.new()
for i = 0 to 10
sum+=i
// Log on every bar and also on every tick on real time
// log.info('Sum at iteration {0} is {1}', i, sum)
// Run only for the first bar
// if(barstate.isfirst)
// log.info('Sum at iteration {0} is {1}', i, sum)
// Run on the last confirmed bar
// if(barstate.islastconfirmedhistory)
// log.warning('Sum at iteration {0} is {1}', i, sum)
// if(barstate.isrealtime)
// log.warning('Sum at iteration {0} is {1}', i, sum)
// Display only once
// varip showLog = true
// if(barstate.isrealtime and showLog)
// log.warning('Sum at iteration {0} is {1}', i, sum)
// if (i == 10)
// showLog := false
// Extract through the array and log outside the loop
arr.push(sum)
// Log the extracted array on real time and print only once
varip showLog = true
if(barstate.isrealtime and showLog)
log.error('Sum at different iterations : {0}', arr)
showLog := false
plot(sum)
🎲 References
Pine Logs - Reference Manual
plot - Reference Manual
Thinking in Pine - Execution Model and Rollback on Realtime BarsHello All,
Welcome to another session of "Thinking in Pine" - short video tutorials on Pine Script.
Before continuing with this video, if you are not familiar with var, varip and regular variables, please watch our previous video - "Thinking in Pine - var, varip and regular variables"
🎲 Today's discussion points
How var, varip and regular variable modification code works with historical and real time bar updates.
Rollback concept of var variables
🎯 Example Program Used
// The statements execute on every tick
count = 0.0
count+=1
varip varipcount = 0 //executes only once on the first bar
varipcount+=1
// Reset counter on every bar
// if(barstate.isconfirmed)
// varipcount:=0
// Rollbacks and assigns on every tick
var varcount = 0.0 //executes only once on the first bar
varcount+=1
// varcount:=varcount -- Rollback
// varcount := varcount + 1 -- execute again
plot(varipcount, 'Varip Count')
plot(varcount, 'Var Count')
plot(count, 'Çount')
arrRegular = array.new()
var arrVar = array.new()
varip arrVarip = array.new()
if(bar_index >= last_bar_index -5)
arrRegular.push(close)
arrVar.push(close)
arrVarip.push(close)
log.info('Regular : {0}', arrRegular)
log.info('Var : {0}', arrVar)
log.info('Varip : {0}', arrVarip)
🎲 References
Pine Script® User Manual - Execution Model
Trading Hacks - Deep AnalysisSorry for sound quality, better quality on yt
☝️Dear traders, no one here has superpowers, and I'm just a human after all. Please take everything with a grain of salt. I'm sharing my view and one of the possible scenarios of price action, but mostly - my direct experience. When I enter I try to predict as little as possible and actually follow what the market is doing, joining the market and not arguing with it or forcing my will. Have good trading, keep a constant flow of self-awareness, and do your best. 🙌
Thinking in Pine - Functions Containing Var VariablesHello everyone, welcome back to "Thinking in Pine" short video tutorials. In this video, we have discussed special cases of using var variables inside function definitions.
If you are not familiar with var variables, please take a step back and watch our earlier video - "Thinking in Pine - var, varip and regular variables"
🎲 Summary
Using var within a function scope and how it behaves with multiple invocations.
Using the functions containing var variable definitions within a loop.
🎯 Example Program Used
increment()=>
var i = 0
i+=1
var1 = increment()
var2 = increment()
var3 = increment()
// The code above is equivalent to
// var i1 = 0
// i1+=1
// var1 = i1
// var i2 = 0
// i2+=1
// var2 = i2
// var i3 = 0
// i3+=1
// var3 = i3
plot(var1, "Counter 1", color=color.blue)
plot(var2, "Counter 2", color=color.red)
plot(var3, "Counter 3", color=color.purple)
arr = array.from(var1, var2, var3)
for i=1 to 3
arr.push(increment())
// The code above is equivalent to
// var i4 = 0
// i4+=1
// arr.push(i4)
if(bar_index == 4)
log.info('Value of array containing incremental values : {0}', arr)
🎲 References
Pine Script® User Manual - Variable declarations
Pine Script® Reference Manual - var
Thinking in Pine - Time Series Special CasesHello Everyone,
Welcome back to "Thinking in Pine" short video series. In this session, we have discussed few special cases of time series variables and using historical operator within local scope.
If you have not watched our previous video - "Thinking in Pine - Time Series" , request you to do that before continuing this video.
🎲 Summary of our today's discussion
How historical operator works for variables defined inside an conditional block
How historical operator works for variables defined in a loop.
🎯 Example Program Used
// Time series for variables within a condition
varip showLogInLoop = true
if(bar_index%3 == 0)
specialBarIndex = bar_index
if(bar_index > last_bar_index-3 and showLogInLoop)
log.info('Current and Previous special bar index are : {0} and {1}', specialBarIndex, specialBarIndex )
showLogInLoop := false
// Time series of variables within a loop
arrayOfX = array.new()
arrayOfLastX = array.new()
for i = 1 to 5
x = i*10
arrayOfX.push(x)
arrayOfLastX.push(x )
if(barstate.islastconfirmedhistory)
log.info('Array of X : {0}', arrayOfX)
log.info('Array of last X : {0}', arrayOfLastX)
🎲 References:
Pine Script® User Manual - Execution Model
Pine Script® User Manual - Time Series
Pine Script® User Manual - History Referencing Operator
Pine Script® Reference Manual - History Referencing Operator
Trading a Choppy MarketPer request, someone asked to share my strategy and how / why I enter/exit trades.
I decided to be specific and applicable to the current market sentiment and discuss how I trade “choppy markets”.
My personal rules for trading choppy markets are:
1) No options, shares only
2) GTFI and GTFO ASAP
3) Only trade when there is a support or resistance respected
4) Trail once you are in decent profit!
Other points:
Some things I did not elaborate in the video but I think are important to touch on and one of the reasons I avoid options are, there is a huge decay that comes with ranging markets on options. I have went really ITM on options lately and I noticed the profits are equivalent to that of shares by the time the stock finally decides to move. Thus, I am risking quite a lot by the inherent decay in options vs just taking the raw share trade.
And I forgot to disclose in the video, but I half my position at the next resistance level. Unfortunately today we just traded between 2 support and resistance levels, so there was no really halving to be had, but that is the general rule of thumb. Halve the position at the next resistance and trail.
Leveraged Shares vs Options
Another point that I missed in the idea is, Leveraged ETFs, to which is the instrument I traded today and describe in this idea, do have a degree of decay associated with them. However, for daytraders this decay is not noticeable. It will only become noticeable and costly if you chose to hold these shares for greater than a 1 month period, as the decay tends to transition with the month turnover and on any massive move that goes against the share (for example, if you are long via UPRO or TQQQ and we see a 5% sell in 2 days, it will take UPRO and TQQQ longer to catch up to QQQ and SPY because that massive sell just cost the management firm a lot of money on that position (it’s a very simplistic way of looking at it and its much more complex than this, but for ease of explanation, I will use this haha).
To put it in perspective, here is TQQQ next to QQQ on the day:
You can see, there is no observable decay from the chop. If you bought in off open and held till mid day or EOD, you would be able to get out for flat or even a profit if you exited right at the new high.
Now if we look at an ITM 1 DTE option, here is the chart for today:
You can see that the option never retraced the daily high, despite QQQ doing so two times, in fact even breaking it at end of day. It is because the decay impacts options, especially shorter dated ones.
Now you can mitigate against this by going further out in expiries, but the cost of entry into those options increase and the risk of losses also increase, to the point of making your stop outs more costly than had you done a leveraged share position. As well, going further out in expiry doesn't stop the decay from chop, it simply 'mitigates it'. Chop will not destroy a leveraged share, the only two things that will destroy a leveraged share are
a) Time > 3 to 6 months, share depending and
b) Moves against the share > 3 % to 4% on the underlying in a short period of time (i.e. 1 to 2 days).
That said, the gains on options can be better than the gains on shares, its just it comes with a risk. So it is important to weigh your prerogatives, account size and risk tolerance when deciding on these things.
That also said, there are many other things to trade other than leveraged shares. For example, NYSE:AI is an affordable ticker for new share traders, NASDAQ:RIVN , as well as NASDAQ:LCID and if you are Canadian, BA Canadian leveraged shares, though I admit I haven't tried to short sell these yet so not sure if they are easy to borrow.
Concluding remarks
That concludes the idea and request. If you have any questions, as always, leave them below.
Safe trades everyone and take care!
Thinking in Pine - Time SeriesHello everyone,
Welcome back to "Thinking in Pine" short video series. In this video, we discuss the concept of time series variables in Pinescript.
If you are not familiar with var and varip type of variables - please step back and watch this video before continuing - "Thinking in Pine - var, varip and regular variables"
🎲 Summary of our discussion is as follows
What are time series variables, and how are they used in Pinescript?
How do we access historical values of time series?
Limitations of accessing historical values
🎯 Example Program Used
currentBar = bar_index
var currentBarUsingVar = 0
currentBarUsingVar := bar_index
varip showLog = true
valueAt200thBar = ta.valuewhen(bar_index == 500, currentBar, 0)
if(barstate.islast and showLog)
log.info("Current Bar Values using regular and var variables : {0}, {1}", currentBar, currentBarUsingVar)
log.info("Last Bar Values using regular and var variables : {0}, {1}", currentBar , currentBarUsingVar )
log.info("Values 500 bars ago using regular and var variables : {0}, {1}", currentBar , currentBarUsingVar )
offset = bar_index-25000
log.info("Values at 25000th bar using regular and var variables : {0}, {1}", currentBar , currentBarUsingVar )
showLog := false
plot(bar_index, "Bar Index", color = color.blue, display = display.data_window)
There are pitfalls of using historical operators within loop or under if condition. We will discuss that in our next video.
🎲 References:
Pine Script® User Manual - Execution Model
Pine Script® User Manual - Time Series
Pine Script® User Manual - History Referencing Operator
]Pine Script® Reference Manual - History Referencing Operator
'Slow December' is a Myth.In this video I break down just two positions that shaped up last week on EURCAD and GBPNZD, both sells with a minimum return of 10% on both positions. Why is there always an industry gimmick of 'don't trade in December' when people have not even tested the data. Go back to December 2022, 2021, 2020, you will find positions in the market. Keep your focus on the task at hand and not on 'myths'.
Thinking in Pine - var, varip and regular variablesThis is our first video session on "Thinking in Pine" series. Before we start, we want to explain a bit about our new initiative.
🎲 What is "Thinking in Pine"?
In our journey to empower the trading community, we're excited to introduce "Thinking in Pine," a series of concise, 5-10 minute videos dedicated to unraveling the complexities of Pine Script®. We have our own list of topics to be covered, and we will start releasing the videos one by one. However, if you're grappling with any aspect of Pine Script® or stuck on an implementation, we encourage you to reach out to us or drop a comment here. We aim to address your queries by breaking down challenging concepts or implementations into easily digestible content.
What kind of videos are covered in "Thinking in Pine"?
Pine Script® Focus: We try to keep our focus on Pine Script® concepts and implementations.
General Utility: We prioritize topics that offer broader learning value. Though it's challenging to quantify this, we'll use our judgment to select topics that benefit the wider audience.
Time-Efficient Demonstrations: Ideally, we want to keep our demonstrations to 5–10 mins of time.
We're here to demystify Pine Script®, one topic at a time, making it accessible for everyone from beginners to advanced users. Stay tuned for insightful sessions with "Thinking in Pine"!
🎲 Demonstrating var, varip and regular variables in Pine Script®
In this video, we have demonstrated the difference between var, varip and regular variables by using an example implementation of OBV indicator.
🎯 Logic of OBV Calculation
Start with the value 0
On each bar, add volume to the indicator if close price is higher than previous bar close price.
On each bar, remove volume from the indicator is close price is lesser than previous bar close price
🎯 Highlights
Regular variables are initialized separately on each bar and does not propagate value to next bar unless coded to do it.
var variables are initialized once and then can be reassigned any number of times using := operator . The variables declared as var will propagate the current values to the next bar.
varip variables are initialized once and then can be reassigned any number of times using := operator . varip will behave similar to var on historical bars. However, on real time bars, they are recalculated on every tick, and they remember the state of each tick.
🎯 Example Program Used
Here is the example program used in the demonstration.
//Plot built-in OBV value for reference
plot(ta.obv, "OBV Built In", color=color.yellow)
//Volume multiplied by +-1 based on change in close price compared to previous bar.
volumeBySign = math.sign(nz(ta.change(close), 0))*volume
//Obv calculation by using regular variable. Code need to access and add last bar value using obvByRegular
obvByRegular = 0.0
obvByRegular += nz(obvByRegular , 0) + volumeBySign
plot(obvByRegular, "OBV By Regular Variable", color=color.blue)
//Obv calculation using var variable. Since var variables propagate values to next bar,
// we do not need to use historical operator to get the last bar value
var obvByVar = 0.0
obvByVar += volumeBySign
plot(obvByVar, "OBV by var Variable", color = color.maroon)
//Obv implementation using varip. The OBV is calculated based on every tick. Histoical values will match the same as that of other implementation.
//However, in real time, the calculations are done based on the tick values
varip obvByVarip = 0.0
varip lastPrice = close
varip lastVolume = volume
if(barstate.isnew)
lastVolume := 0
obvByVarip += math.sign(close-lastPrice)*(volume-lastVolume)
lastPrice := close
lastVolume := volume
plot(obvByVarip, "OBV by varip Variable", color = color.purple)
🎲 References:
Pine Script® User Manual - Variable declarations
Pine Script® Reference Manual - var
Pine Script® Reference Manual - varip
Pine Script® User Manual - Operators
How to Backtest RMI Trend Sniper Hello Guys , since i have been asked alot what are the best settings for RMI Trend sniper along with the best Risk to reward ratio to use , i thought of making this video for you
it simply explains to you how to backetest it and find the best settings with its best RR ratio to be able to create a strategy out of it
i hope this video helps you and always use STOP LOSS .
Thank you and stay well
🐋 Deep Dive Part II: Whale Behavior & Market Mastery!🌊📚 (Vid)Hey Crypto Enthusiasts! 🚀
In a recent analysis, I not only nailed Bitcoin's (BTC) movement but also illuminated the subsequent altcoin surge, driven by insightful whale behavior observations. Let's merge these insights with a focus on ADA (Cardano), OP (Optimism), SOL (Solana), and BTC. 📊
Cardano's (ADA) Meteoric Rise 🌟
ADA's journey began with a break above a pivotal support-resistance level. My entry point at 0.256 turned into a remarkable rally, hitting 52 cents. This movement was a classic case of altcoin buoyancy following Bitcoin's pause.
Optimism (OP) and the Altcoin Breakouts 🌈
In the shadow of Bitcoin's stagnation, altcoins like OP exhibited significant breakouts, showcasing the shifting focus of market whales from Bitcoin to promising altcoins.
Bitcoin (BTC) and Whale Dynamics 📉
Bitcoin's behavior provided a crystal ball into the whale activities. As BTC approached a major resistance level, it signaled a strategic move by whales to divert funds towards altcoins, catalyzing their surge.
Solana (SOL) and Market Trends ☀️
Solana's chart also mirrored this trend, highlighting the broader market dynamics influenced by these significant players.
🔍 Insight on Whale Behavior:
My analysis delved deep into the whale behavior, highlighting how Bitcoin's rally and subsequent pause was a precursor to altcoin dominance. This strategic pause in Bitcoin's ascent was a clear signal for the whales to redistribute their focus and capital, sparking a remarkable rise in altcoins like ADA, OP, and SOL. 🔄
The Bigger Picture - Understanding Market Shifts: What this trend teaches us is the importance of reading between the lines. Whale movements often precede major market shifts, and by understanding these patterns, we position ourselves to make informed decisions. 🧠
Future Outlook: As we continue to monitor these market dynamics, it's crucial to stay vigilant. The crypto market is known for its volatility, and while the current trend favors altcoins, it's essential to be prepared for any shifts that may arise. Always keep an eye on key resistance and support levels, market sentiment, and global economic factors that could influence the next big move. 🌐
Together, let's stay ahead of the curve in this fascinating and ever-evolving world of cryptocurrency. Your insights and engagement are what make this journey exciting and rewarding!
One Love,
The FXPROFESSOR 💙
part 1:
Back-adjusting drawings for futures roll in continuous contractsHow to adjust existing drawings to account for the price adjustment (false gap) between futures contracts during the roll when one contract is expiring and trade volume is shifting into the new front-month contract. Drawings do not adjust by using the "back-adjust" feature, which can create an issue since all of your drawings will be displaced and incorrectly located. This shows how to adjust them to account for that displacement. This is especially an issue when the price difference is large between the expiring contract and the new front-month contract such as in this video example (e.g. +51 points between ESZ2023 (Dec 2023) and ESH2024 (March 2024))
Can Bitcoin Hedge Against a Falling Dollar?Global inflation often signifies a weakening of global currencies. The question of whether Bitcoin can serve as a hedge against a depreciating dollar has gained significant interest among investors.
Or should it still be the Gold?
In this study, we will analyse the top 8 cryptocurrencies to determine which one is a more reliable currency hedge.
Bitcoin & Its Minimum Fluctuation
$5.00 per bitcoin = $25.00
BTIC: $1.00 per bitcoin = $5.00
Code: BTC
Micro Bitcoin & Its Minimum Fluctuation
$5.00 per bitcoin = $0.50
BTIC: $1.00 per bitcoin = $0.10
Code: MBT
Disclaimer:
• What presented here is not a recommendation, please consult your licensed broker.
• Our mission is to create lateral thinking skills for every investor and trader, knowing when to take a calculated risk with market uncertainty and a bolder risk when opportunity arises.
CME Real-time Market Data help identify trading set-ups in real-time and express my market views. If you have futures in your trading portfolio, you can check out on CME Group data plans available that suit your trading needs www.tradingview.com
Overview of good ideas I had :)☝️Dear traders, no one here has superpowers, and I'm as well just a human. Please take everything with a degree of doubt and critique. I'm just sharing my view and one of the possible scenarios of price action. When I enter I try to predict as little as possible and actually follow what the market is doing, joining the market and not arguing with it or forcing my will. Have good trading, keep a constant flow of self-awareness, and do your best. 🙌