VWAP Crosses, Format, Watchlist, Label, Scan for ThinkorSwim

Per a poster's request. The following snippet can be added to the VWAP-EMA study in post#3 to create a cloud between the EMA and VWAP
Ruby:
AddCloud(VWAP, EMA, color.green, color.red);
SQtEgoL.png
 
Last edited:
How do I change script from EMA to VWAP crossing. The way it is now paints and alerts when EMA cross up or down into VWAP but what I need is VWAP cross EMA. Thank you!
 
Hi Ben,
I found a study that I use regular basis. Can you please help me to modify below code? I need to replace 9EMA with current price. Can you please help me?



input timeFrame = {default DAY, WEEK, MONTH};
def cap = getAggregationPeriod();

def errorInAggregation =
timeFrame == timeFrame.DAY and cap >= AggregationPeriod.WEEK or
timeFrame == timeFrame.WEEK and cap >= AggregationPeriod.MONTH;

assert(!errorInAggregation, "timeFrame should be not less than current chart aggregation period");

def yyyyMmDd = getYyyyMmDd();
def periodIndx;

switch (timeFrame) {

case DAY:
periodIndx = yyyyMmDd;

case WEEK:
periodIndx = Floor((daysFromDate(first(yyyyMmDd)) + getDayOfWeek(first(yyyyMmDd))) / 7);

case MONTH:
periodIndx = roundDown(yyyyMmDd / 100, 0);
}

def isPeriodRolled = compoundValue(1, periodIndx != periodIndx[1], yes);

def volumeSum;
def volumeVwapSum;
def volumeVwap2Sum;

if (isPeriodRolled) {

volumeSum = volume;
volumeVwapSum = volume * vwap;
volumeVwap2Sum = volume * Sqr(vwap);

} else {

volumeSum = compoundValue(1, volumeSum[1] + volume, volume);
volumeVwapSum = compoundValue(1, volumeVwapSum[1] + volume * vwap, volume * vwap);
volumeVwap2Sum = compoundValue(1, volumeVwap2Sum[1] + volume * Sqr(vwap), volume * Sqr(vwap));

}

def price = volumeVwapSum / volumeSum;
def VWAP = price;

#
#
input price2 = close;
input length = 9;
input displace = 0;

def AvgExp = ExpAverage(price2[-displace], length);

AddLabel(yes, "VWAP EXP Cross", if avgexp > vwap then Color.GREEN else color.RED);

input showBreakoutSignals = no;
plot UpSignal = avgexp crosses above vwap;
plot DownSignal = avgexp crosses below vwap;

UpSignal.SetHiding(!showBreakoutSignals);
DownSignal.SetHiding(!showBreakoutSignals);


UpSignal.SetDefaultColor(Color.UPTICK);
UpSignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
DownSignal.SetDefaultColor(Color.DOWNTICK);
DownSignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);

Alert(UpSignal, "Buy", Alert.Bar, Sound.Ding);
Alert(DownSignal, "Sell", Alert.bar, Sound.Ding);
 
@taifur We use an average because doing a cross on close, high, low parts of a candle is arbitrary even an average of 2 would be better.
But if this is what you want:
Ruby:
# Your code:
AddLabel(yes, "VWAP EXP Cross", if avgexp > vwap then Color.GREEN else color.RED);

input showBreakoutSignals = no;
plot UpSignal = avgexp crosses above vwap;
plot DownSignal = avgexp crosses below vwap;

# ##############################################################    
# Replacement code:
AddLabel(yes, "VWAP Close Cross", if close > vwap then Color.GREEN else color.RED);

input showBreakoutSignals = no;
plot UpSignal = close crosses above vwap;
plot DownSignal = close crosses below vwap;   
    
# HL3 or HL2 can be used instead of close.  Play with it and see
 
Ignore the alerts code....
i am trying to draw a VWAP OPEN line(from 9:30am) ..this does the job but the line is not getting drawn at right point of open...but almost close.

is there anything wrong with this script.... THANKS IN ADVANCE
I want to use this on MTF if possible..mostly using this code on 5m TF


declare hide_on_daily;

input DaysBack = 2;

def days = getday() >= getlastday() - daysback;

def marketOpen = SecondsTillTime(930) == 0;

def vw = if marketOpen then reference vwap() else vw[1];
plot vwap = if days then vw else double.nan;
vwap.setpaintingstrategy(paintingstrategy.horizontal);
AddChartBubble(SecondsTillTime(0930) == 0, vwap, "Open_VWAP", color.white, yes);
Alert(close crosses below vw, "Nearing VWAP OPEN Support", Alert.Bar, Sound.bell);

Alert(close crosses above vw, "Nearing VWAP OPEN Resistance", Alert.Bar, Sound.bell);
 
Ignore the alerts code....
i am trying to draw a VWAP OPEN line(from 9:30am) ..this does the job but the line is not getting drawn at right point of open...but almost close.

is there anything wrong with this script.... THANKS IN ADVANCE
I want to use this on MTF if possible..mostly using this code on 5m TF


declare hide_on_daily;

input DaysBack = 2;

def days = getday() >= getlastday() - daysback;

def marketOpen = SecondsTillTime(930) == 0;

def vw = if marketOpen then reference vwap() else vw[1];
plot vwap = if days then vw else double.nan;
vwap.setpaintingstrategy(paintingstrategy.horizontal);
AddChartBubble(SecondsTillTime(0930) == 0, vwap, "Open_VWAP", color.white, yes);
Alert(close crosses below vw, "Nearing VWAP OPEN Support", Alert.Bar, Sound.bell);

Alert(close crosses above vw, "Nearing VWAP OPEN Resistance", Alert.Bar, Sound.bell);

Your code is well scripted. It picks up the vwap where it is on the opening candle, and I seem to think you wanted the vwap open at the start of the day. Also, since you were looking at 'daysback', I assume you wanted those plotted on the current day.

The following code extended each days vwap from the vwap open for the day to the current day and plotted these starting at market open on the current day, extended to the right edge. I plotted the vwap so that you could test that the lines are what you wanted.

Capture.jpg

Code:
script v {
    input daysback = 2;
    def ymd = GetYYYYMMDD();
    def ok = !IsNaN(close);
    def capture = ok and ymd != ymd[1];
    def dayCount = CompoundValue(1, if capture
                                    then dayCount[1] + 1
                                    else dayCount[1], 0);
    plot thisDay = (HighestAll(dayCount) - dayCount) ;

    def marketOpen = SecondsTillTime(930) == 0;
    def vo = CompoundValue(1, if thisDay == daysback
                              then reference VWAP()
                              else vo[1] , reference VWAP());
    def vonan   = if IsNaN(close) then vonan[1] else vo;
    plot voplot = if thisDay <= daysback
                  then vonan
                  else Double.NaN;
}
def thisday = v().thisday;
plot vwap1 = if thisday > 0 or SecondsTillTime(0930) > 0 then Double.NaN else v(1).voplot;
vwap1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot vwap2 = if thisday > 0 or SecondsTillTime(0930) > 0 then Double.NaN else v(2).voplot;
vwap2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot vwap3 = if thisday > 0 or SecondsTillTime(0930) > 0 then Double.NaN else v(3).voplot;
vwap3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

input bubblemover = 5;
def n  = bubblemover;
def n1 = n + 1;
AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap1, "Open\nVWAP1", Color.WHITE, yes);
Alert(close crosses below vwap1, "Nearing VWAP1 OPEN Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap1, "Nearing VWAP1 OPEN Resistance", Alert.BAR, Sound.Bell);

AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap2, "Open\nVWAP2", Color.WHITE, yes);
Alert(close crosses below vwap2, "Nearing VWAP2 OPEN Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap2, "Nearing VWAP1 OPEN Resistance", Alert.BAR, Sound.Bell);

AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap3, "Open\nVWAP3", Color.WHITE, yes);
Alert(close crosses below vwap3, "Nearing VWAP OPEN3 Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap3, "Nearing VWAP OPEN3 Resistance", Alert.BAR, Sound.Bell);
 
Your code is well scripted. It picks up the vwap where it is on the opening candle, and I seem to think you wanted the vwap open at the start of the day. Also, since you were looking at 'daysback', I assume you wanted those plotted on the current day.

The following code extended each days vwap from the vwap open for the day to the current day and plotted these starting at market open on the current day, extended to the right edge. I plotted the vwap so that you could test that the lines are what you wanted.
Thank you so much..tested your script and working perfectly...but can we draw a line from market open time (9:30) instead of getting the line drawn from 4am.. i wanted to test which one is really useful...one from 4am or one from 9:30am for that day.


basically i am using/wanted to use previous close price, previous VWAP close , today open price and today's vwap open price as support/resis ......to understand the trend



if you look at tesla today (7/15) , it went up and rejected at your vwap open 1 and broke vwap open(9:30am) and re-tested the vwap open(9:30) and went down for 20 points....your thing really helps...but also trying to plot one that starts from 9:30 exaclty on all TFs. My above scripts is not 100% perfect.

Another example - NVDA today(7/15) - previous day closing price and open vwap price(9:30am) are exactly at same place(may be we can call it as confluence) and rejected there at 9:30am itself and went down by 38 points
 
Last edited:
Sure, since I was interested in your idea, I did both. I have renamed the bubbles to 'DAY' for the lines on the current day based upon the vwap at the start of the days and 'Open" for the vwaps based upon the 0930 bar.

Capture.jpg
Here is the code for the 'Open". The only change to the 'DAY' code posted above is the change to the bubble labeling 'DAY'
Code:
script v {
    input daysback = 2;
    def ymd = GetYYYYMMDD();
    def ok = !IsNaN(close);
    def capture = ok and ymd != ymd[1];
    def dayCount = CompoundValue(1, if capture
                                    then dayCount[1] + 1
                                    else dayCount[1], 0);
    plot thisDay = (HighestAll(dayCount) - dayCount) ;

    def marketOpen = SecondsTillTime(930) == 0;
    def vo = CompoundValue(1, if thisDay == daysback and marketopen
                              then reference VWAP()
                              else vo[1] , reference VWAP());
    def vonan   = if IsNaN(close) then vonan[1] else vo;
    plot voplot = if thisDay <= daysback
                  then vonan
                  else Double.NaN;
}
def thisday = v().thisday;
plot vwap1 = if thisday == 0 and SecondsTillTime(0930) > 0 then Double.NaN else v(0).voplot;
vwap1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot vwap2 = if thisday == 1 and SecondsTillTime(0930) > 0 then Double.NaN else  v(1).voplot;
vwap2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot vwap3 = if thisday == 2 and SecondsTillTime(0930) > 0 then Double.NaN else  v(2).voplot;
vwap3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

input bubblemover = 5;
def n  = bubblemover;
def n1 = n + 1;
AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap1, "Open\nVWAP1", Color.WHITE, yes);
Alert(close crosses below vwap1, "Nearing VWAP1 OPEN Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap1, "Nearing VWAP1 OPEN Resistance", Alert.BAR, Sound.Bell);

AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap2, "Open\nVWAP2", Color.WHITE, yes);
Alert(close crosses below vwap2, "Nearing VWAP2 OPEN Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap2, "Nearing VWAP1 OPEN Resistance", Alert.BAR, Sound.Bell);

AddChartBubble(IsNaN(close[n]) and !IsNaN(close[n1]), vwap3, "Open\nVWAP3", Color.WHITE, yes);
Alert(close crosses below vwap3, "Nearing VWAP OPEN3 Support", Alert.BAR, Sound.Bell);
Alert(close crosses above vwap3, "Nearing VWAP OPEN3 Resistance", Alert.BAR, Sound.Bell);
 
Sure, since I was interested in your idea, I did both. I have renamed the bubbles to 'DAY' for the lines on the current day based upon the vwap at the start of the days and 'Open" for the vwaps based upon the 0930 bar.
You the MAN...Thanks...will check

Update: just tested the OPEN VWAP line,...not 100% correct ...if you take nvda today, the line is supposed to be drawn when vwap touched 9:30am ( price was 791:28), but i see the line at 789.21 on 5mins chart....please correct me if I wrong in any sense.
 
Last edited:
You the MAN...Thanks...will check

Update: just tested the OPEN VWAP line,...not 100% correct ...if you take nvda today, the line is supposed to be drawn when vwap touched 9:30am ( price was 791:28), but i see the line at 789.21 on 5mins chart....please correct me if I wrong in any sense.
I am not aware of how one would determine with accuracy, the touch value. The best I can recommend is changing the following. I will leave it to you to test to determine whether it will work for you.

Code:
 def vo = CompoundValue(1, if thisDay == daysback and marketopen
                              then (reference vwap() + reference vwap()[1])/2
                              else vo[1] , reference VWAP());
 
Last edited:
I am not aware of how one would determine with accuracy, the touch value. The best I can recommend is changing the following. I will leave it to you to test to determine whether it will work for you.
thats fine..but your script also helps A LOT...used that on friday
 
Last edited:
Hello,

I am looking for a basic indicator like these but that only says the actual price of vwap and the total volume of the actual volume bar:

AMLH_1h.png
 
Here is the Vwap Script with Label.

# VWAP
# TD Ameritrade IP Company, Inc. (c) 2011-2020
# Added labels to show the VWAP values and change colors when price is above or below the upper or lower bands

input numDevDn = -2.0;
input numDevUp = 2.0;
input timeFrame = {default DAY, WEEK, MONTH};

def cap = getAggregationPeriod();
def errorInAggregation =
timeFrame == timeFrame.DAY and cap >= AggregationPeriod.WEEK or
timeFrame == timeFrame.WEEK and cap >= AggregationPeriod.MONTH;
assert(!errorInAggregation, "timeFrame should be not less than current chart aggregation period");

def yyyyMmDd = getYyyyMmDd();
def periodIndx;
switch (timeFrame) {
case DAY:
periodIndx = yyyyMmDd;
case WEEK:
periodIndx = Floor((daysFromDate(first(yyyyMmDd)) + getDayOfWeek(first(yyyyMmDd))) / 7);
case MONTH:
periodIndx = roundDown(yyyyMmDd / 100, 0);
}
def isPeriodRolled = compoundValue(1, periodIndx != periodIndx[1], yes);

def volumeSum;
def volumeVwapSum;
def volumeVwap2Sum;

if (isPeriodRolled) {
volumeSum = volume;
volumeVwapSum = volume * vwap;
volumeVwap2Sum = volume * Sqr(vwap);
} else {
volumeSum = compoundValue(1, volumeSum[1] + volume, volume);
volumeVwapSum = compoundValue(1, volumeVwapSum[1] + volume * vwap, volume * vwap);
volumeVwap2Sum = compoundValue(1, volumeVwap2Sum[1] + volume * Sqr(vwap), volume * Sqr(vwap));
}
def price = volumeVwapSum / volumeSum;
def deviation = Sqrt(Max(volumeVwap2Sum / volumeSum - Sqr(price), 0));

plot VWAP = price;
plot UpperBand = price + numDevUp * deviation;
plot LowerBand = price + numDevDn * deviation;

VWAP.setDefaultColor(getColor(0));
UpperBand.setDefaultColor(getColor(2));
LowerBand.setDefaultColor(getColor(4));

#Labels for showing where price is in relation to the VWAP lines
#---------------------------------------------------------------
input vwap_values_label = yes;
input price_location_label = yes;

DefineGlobalColor("Above UpperBand", color.red);
DefineGlobalColor("Between Bands", color.Light_green);
DefineGlobalColor("Below LowerBand", color.light_red);

AddLabel(vwap_values_label, if close > UpperBand then "VWAP HI: " + Round(UpperBand)
else if close >= LowerBand then "VWAP IN: " + Round(price) else "VWAP LO: " + Round(LowerBand),
(if close > UpperBand then GlobalColor("Above UpperBand") else if close >=
LowerBand then GlobalColor("Between Bands") else GlobalColor("Below LowerBand")));

AddLabel(price_location_label, if close > UpperBand then "Price Is Above UpperBand"
else if close >= LowerBand then "Price Is Between Bands" else "Price Is Below LowerBand",
(if close > UpperBand then GlobalColor("Above UpperBand") else if close >=
LowerBand then GlobalColor("Between Bands") else GlobalColor("Below LowerBand")));

#end code
 
Here is volume script. Turn off all indicator and use as lebels. Move it to upper chart

# Show total volume in gray. Buying volume in green. Sell Volume in red.
# Volume average is gray line.
# Specified percent over average volume is cyan triangles.
# Horserider 12/30/2019 derived from some already existing studies.


declare lower;

#Inputs

input Show30DayAvg = yes;
input ShowTodayVolume = yes;
input ShowPercentOf30DayAvg = yes;
input UnusualVolumePercent = 200;
input Show30BarAvg = yes;
input ShowCurrentBar = yes;
input ShowPercentOf30BarAvg = yes;
input ShowSellVolumePercent = yes;

def O = open;
def H = high;
def C = close;
def L = low;
def V = volume;
def buying = V*(C-L)/(H-L);
def selling = V*(H-C)/(H-L);

# Selling Volume

Plot SellVol = selling;
SellVol.setPaintingStrategy(PaintingStrategy.Histogram);
SellVol.SetDefaultColor(Color.Red);
SellVol.HideTitle();
SellVol.HideBubble();
SellVol.SetLineWeight(1);

# Total Volume

# Note that Selling + Buying Volume = Volume.
plot TV = volume;

TV.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
TV.SetDefaultColor(Color.GRAY);
#TV.HideTitle();
#TV.HideBubble();
TV.SetLineWeight(1);

Plot BuyVol = buying;
BuyVol.setPaintingStrategy(PaintingStrategy.Histogram);
BuyVol.SetDefaultColor(Color.Green);
BuyVol.HideTitle();
BuyVol.HideBubble();
BuyVol.SetLineWeight(5);

#Volume Data

def volLast30DayAvg = (volume(period = "DAY")[1] + volume(period = "DAY")[2] + volume(period = "DAY")[3] + volume(period = "DAY")[4] + volume(period = "DAY")[5] + volume(period = "DAY")[6] + volume(period = "DAY")[7] + volume(period = "DAY")[8] + volume(period = "DAY")[9] + volume(period = "DAY")[10] + volume(period = "DAY")[11] + volume(period = "DAY")[12] + volume(period = "DAY")[13] + volume(period = "DAY")[14] + volume(period = "DAY")[15] + volume(period = "DAY")[16] + volume(period = "DAY")[17] + volume(period = "DAY")[18] + volume(period = "DAY")[19] + volume(period = "DAY")[20] + volume(period = "DAY")[21] + volume(period = "DAY")[22] + volume(period = "DAY")[23] + volume(period = "DAY")[24] + volume(period = "DAY")[25] + volume(period = "DAY")[26] + volume(period = "DAY")[27] + volume(period = "DAY")[28] + volume(period = "DAY")[29] + volume(period = "DAY")[30]) / 30;
def today = volume(period = "DAY");
def percentOf30Day = Round((today / volLast30DayAvg) * 100, 0);
def avg30Bars = (volume[1] + volume[2] + volume[3] + volume[4] + volume[5] + volume[6] + volume[7] + volume[8] + volume[9] + volume[10] + volume[11] + volume[12] + volume[13] + volume[14] + volume[15] + volume[16] + volume[17] + volume[18] + volume[19] + volume[20] + volume[21] + volume[22] + volume[23] + volume[24] + volume[25] + volume[26] + volume[27] + volume[28] + volume[29] + volume[30]) / 30;
def curVolume = volume;
def percentOf30Bar = Round((curVolume / avg30Bars) * 100, 0);
def SellVolPercent = Round((Selling / Volume) * 100, 0);

# Labels

AddLabel(Show30DayAvg, "Avg 30 Days: " + Round(volLast30DayAvg, 0), Color.LIGHT_GRAY);

AddLabel(ShowTodayVolume, "Today: " + today, (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.LIGHT_GRAY));

AddLabel(ShowPercentOf30DayAvg, percentOf30Day + "%", (if percentOf30Day >= UnusualVolumePercent then Color.GREEN else if percentOf30Day >= 100 then Color.ORANGE else Color.WHITE) );

AddLabel(Show30BarAvg, "Avg 30 Bars: " + Round(avg30Bars, 0), Color.LIGHT_GRAY);

AddLabel(ShowCurrentBar, "Cur Bar: " + curVolume, (if percentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.LIGHT_GRAY));

AddLabel(ShowPercentOf30BarAvg, PercentOf30Bar + "%", (if PercentOf30Bar >= UnusualVolumePercent then Color.GREEN else if PercentOf30Bar >= 100 then Color.ORANGE else Color.WHITE) );

AddLabel(ShowSellVolumePercent, "Cur Bar Sell %: " + SellVolPercent, (if SellVolPercent > 51 then Color.RED else if SellVolPercent < 49 then Color.GREEN else Color.ORANGE));

input length = 20;
plot VolAvg = Average(volume, length);

VolAvg.SetDefaultColor(GetColor(7));


# hiVolume indicator
# source: http://tinboot.blogspot.com
# author: allen everhart


input type = { default SMP, EXP } ;
input length1 = 20 ;
input hotPct = 100.0 ;

def ma =
if type == type.SMP then
SimpleMovingAvg(volume, length)
else
MovAvgExponential(volume, length);

plot hv =
if 100 * ((volume / ma) - 1) >= hotPct then
ma
else
Double.NaN;

hv.SetDefaultColor( Color.CYAN);
hv.SetLineWeight(1) ;
hv.SetPaintingStrategy( PaintingStrategy.TRIANGLES);
 
Hello my friend s1111,
Thank you very much for the script! It works excellent but...

In the labels of volume, I dont see the total volume per each volume bar
 
Hello my friend s1111,
Thank you very much for the script! It works excellent but...

In the labels of volume, I dont see the total volume per each volume bar
On one of volume label it tells you current volume for that bar . There may be other volume script on here which might work better for what you looking for.
 
I am not aware of how one would determine with accuracy, the touch value. The best I can recommend is changing the following. I will leave it to you to test to determine whether it will work for you.
I dont know how to thank you but your/our script is printing money for me for last 3 days
i dont need to draw support resis lines..these 3 lines along with my mentioned lines are doing perfect job with RSI
today i literally dictated the flow of tesla stock in my friends grp..

THANKS AGAIN,,,not using so many indicators anymore...i am a DT
 

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
389 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