FW_MOBO w Volume_Based Trend Confirmation

moveupwithmike

New member
Hello,

I wonder if one of our great coders can help me. I would like to combine the power of the entry signal FW_MOBO, but only when the signals are in the direction of the Volume_Based_Trend Confirmation from this site. I'm not sure if that's a strategy or indicator, but someone could me. I'd greatly appreciate it.

Code:
FW_MOBO_Advanced
#
# TD Ameritrade IP Company, Inc. (c) 2010-2023
#
# Source code isn't available.

input price = CLOSE;
input displace = 0;
input length = 10;
input numDevDn = -0.8;
input numDevUp = 0.8;
input fisherLen = 5;
input dpoLength = 14;
input coloredMoboLines = Yes;
input coloredMoboCloud = Yes;
input patternBreakArrows = Yes;
input fisherBreakArrows = Yes;
input playPatternSoundAlerts = No;
input playFisherSoundAlerts = No;

plot MidlineP = Double.NaN;
plot UpperBandP = Double.NaN;
plot LowerBandP = Double.NaN;
plot PatternUpArrow = Double.NaN;
plot PatternDownArrow = Double.NaN;
plot FisherUpArrow = Double.NaN;
plot FisherDownArrow = Double.NaN;


Volume_Based_Trend
# Converted to TOS from Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

declare lower;
input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
             
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
plot PNVI = nRes3;
plot PEMA = nResEMA3;

input PaintBars = Yes;
AssignPriceColor (if !PaintBars then Color.CURRENT else if PNVI > PEMA then Color.GREEN else Color.RED);

PNVI.SetDefaultColor(GetColor(1));
PNVI.DefineColor("Up Momentum", Color.BLUE);
PNVI.AssignValueColor(PNVI.color("Up Momentum"));

PEMA.SetDefaultColor(GetColor(1));
PEMA.DefineColor("Down Momentum", Color.RED);
PEMA.AssignValueColor(PEMA.color("Down Momentum"));

AddCloud(PNVI,PEMA,PNVI.color("Up Momentum"),PEMA.color("Down Momentum"));
 
Last edited by a moderator:
Hello,

I wonder if one of our great coders can help me. I would like to combine the power of the entry signal FW_MOBO, but only when the signals are in the direction of the Volume_Based_Trend Confirmation from this site. I'm not sure if that's a strategy or indicator, but someone could me. I'd greatly appreciate it.

Code:
FW_MOBO_Advanced
#
# TD Ameritrade IP Company, Inc. (c) 2010-2023
#
# Source code isn't available.

input price = CLOSE;
input displace = 0;
input length = 10;
input numDevDn = -0.8;
input numDevUp = 0.8;
input fisherLen = 5;
input dpoLength = 14;
input coloredMoboLines = Yes;
input coloredMoboCloud = Yes;
input patternBreakArrows = Yes;
input fisherBreakArrows = Yes;
input playPatternSoundAlerts = No;
input playFisherSoundAlerts = No;

plot MidlineP = Double.NaN;
plot UpperBandP = Double.NaN;
plot LowerBandP = Double.NaN;
plot PatternUpArrow = Double.NaN;
plot PatternDownArrow = Double.NaN;
plot FisherUpArrow = Double.NaN;
plot FisherDownArrow = Double.NaN;


Volume_Based_Trend
# Converted to TOS from Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

declare lower;
input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
      
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
plot PNVI = nRes3;
plot PEMA = nResEMA3;

input PaintBars = Yes;
AssignPriceColor (if !PaintBars then Color.CURRENT else if PNVI > PEMA then Color.GREEN else Color.RED);

PNVI.SetDefaultColor(GetColor(1));
PNVI.DefineColor("Up Momentum", Color.BLUE);
PNVI.AssignValueColor(PNVI.color("Up Momentum"));

PEMA.SetDefaultColor(GetColor(1));
PEMA.DefineColor("Down Momentum", Color.RED);
PEMA.AssignValueColor(PEMA.color("Down Momentum"));

AddCloud(PNVI,PEMA,PNVI.color("Up Momentum"),PEMA.color("Down Momentum"));


This script plots a FW_Mobo breakout arrows on the upper chart only when the volume trend is bullish.
It ignores FO_Mobo breakout arrows that occur when volume trend is bearish.

shared chart link: http://tos.mx/8w2JE1V Click here for --> Easiest way to load shared links
cno4gPK.png

Ruby:
#the ToS FW_MOBO signal plus
# Volume_Based_Trend based on Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
       
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
def PNVI = nRes3;
def PEMA = nResEMA3;

plot BreakOutArrow = FW_DPO_MOBO().BreakOutArrow and PNVI > PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
 
Last edited:
This script plots a FW_Mobo arrow on the upper chart only when the volume trend is bullish.
It ignores FO_Mobo arrows that occur when volume trend is bearish.

shared chart link: http://tos.mx/8w2JE1V Click here for --> Easiest way to load shared links
cno4gPK.png

Ruby:
#the ToS FW_MOBO signal plus
# Volume_Based_Trend based on Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
       
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
def PNVI = nRes3;
def PEMA = nResEMA3;

plot BreakOutArrow = FW_DPO_MOBO().BreakOutArrow and PNVI > PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
Thank you so much for your effort. I cant wait to test it out. Obvious question would be does it paint down arrows on negative Volume Pressure?

Thanks again for your time.
 
This script plots a FW_Mobo breakout arrows on the upper chart only when the volume trend is bullish.
It ignores FO_Mobo breakout arrows that occur when volume trend is bearish.

shared chart link: http://tos.mx/8w2JE1V Click here for --> Easiest way to load shared links
cno4gPK.png

Ruby:
#the ToS FW_MOBO signal plus
# Volume_Based_Trend based on Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
      
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
def PNVI = nRes3;
def PEMA = nResEMA3;

plot BreakOutArrow = FW_DPO_MOBO().BreakOutArrow and PNVI > PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
@MerryDay great indicator, question can you add the arrow for a short signal? thank you in advance
 
The Volume Trend study like most trend studies uses a moving average.
Moving averages come late to the party and they stay too long.
read more here:
https://usethinkscript.com/threads/lagging-indicator-accuracy-in-thinkorswim.15624/#post-126015

You can see why the OP wanted it as part of his entry signal. Using it as confirmation even as late confirmation has some value.

But the MOBO exit trigger will happen, most times, long before the Volume Trend gets around to signalling, due to the 25bar lag. So you will either get no signal at all or a very late signal.

Test it for yourself.
Add this to the bottom of the study:
Ruby:
plot BreakDownArrow = FW_DPO_MOBO().BreakDownArrow and PNVI < PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_down);
@FOTM_8888 @moveupwithmike
 
Last edited:
The Volume Trend study like most trend studies uses a moving average.
Moving averages come late to the party and they stay too long.
read more here:
https://usethinkscript.com/threads/lagging-indicator-accuracy-in-thinkorswim.15624/#post-126015

You can see why the OP wanted it as part of his entry signal. Using it as confirmation even as late confirmation has some value.

But the MOBO exit trigger will happen, most times, long before the Volume Trend gets around to signalling, due to the 25bar lag. So you will either get no signal at all or a very late signal.

Test it for yourself.
Add this to the bottom of the study:
Ruby:
plot BreakDownArrow = FW_DPO_MOBO().BreakDownArrow and PNVI < PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_down);
@FOTM_8888 @moveupwithmike
Thanks for your expertise. I'll add this to the body and will test over the next couple of days. When Dave Elliot originally came to TOS and had the chatroom, his original confirmation for MOBO was price being above the 20 and 50 Moving Average. There was the FW Dashboard which had dots plotting price location and you wanted all red or all green dots.
@MerryDay
 
This script plots a FW_Mobo breakout arrows on the upper chart only when the volume trend is bullish.
It ignores FO_Mobo breakout arrows that occur when volume trend is bearish.

shared chart link: http://tos.mx/8w2JE1V Click here for --> Easiest way to load shared links
cno4gPK.png

Ruby:
#the ToS FW_MOBO signal plus
# Volume_Based_Trend based on Siyeon's Tradingview "Volume Based Buy and Sell Momentum by 2tm" indicator by NPtechs

input ma_length = 25;
def xROC = (close - close[1]) * 100 / close;

def nRes1 = if (volume < volume[1]) then
               nRes1[1] + xROC
            else
               nRes1[1];

def nRes2 = if (volume > volume[1]) then
               nRes2[1] + xROC
            else
               nRes2[1];
      
def nRes3 = nRes1 + nRes2;

def nResEMA3 = simpleMovingAvg(nRes1, ma_length) + simpleMovingAvg(nRes2, ma_length);
def PNVI = nRes3;
def PEMA = nResEMA3;

plot BreakOutArrow = FW_DPO_MOBO().BreakOutArrow and PNVI > PEMA  ;
BreakOutArrow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
On the original volume trend can you add a arrow when pnvi crosses pema to the upside and the downside? Trying to eliminate the bottom chart for the momentum by substituting the momentum shift using the arrows on the top chart. @MerryDay
 

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
217 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top