Chart Labels: Wide/Narrow range bars, Gaps, Overlapping bars, Counts

TheAlchemist17

New member
Hello, I am looking for help creating an indicator. I have searched the website threads but have not been able to find anything that accomplishes what I am looking for. Unfortunately, I do not have any coding skills but I have tried to communicate the details as clearly as possible. Hopefully, someone out there can help me to create the code for this. Thank you!

Narrow Range Bar Up/Down (NRU / NRD)
  • Current period range < 30% the average true range over the past 10 periods
  • Adjustable parameters for % and period count
  • Mark the bar as "NR"
  • When volume is 120% > average volume past 30 periods
  • Adjustable parameters for % and average period lookback
  • Mark the bar as "NRUV" "NRDV"
  • Default = on
Wide Range Bars Up/Down (WRU / WRD)
  • Must be at least greater than a recent NR bar
  • Must be >60% (make this number an adjustable parameter) the average true range
  • Mark the bar as "WRU" and "WRD"
  • When volume is 120% > average volume past 30 periods
  • Adjustable parameters for % and average period lookback
  • Mark the bar as "WRUV" and "WRDV"
  • Default = on
Gap Down (GD)
  • High of the period < close of the previous period
    • Mark the period as "GD"
  • Consecutive Down Gap count: "Consecutive" means that there has not been an Up Gap since the last Down Gap. The count would start again after it was interrupted by an Up Gap. If there was a Down Gap on bar 1 and then there were no gaps for several bars and then another down gap occurred, this down gap would count as number 2.
  • High of the current period < close of the previous period
    • Mark the bar as "GD?"
  • Adjustable parameter to display/not display count
  • Default=on
Gap Up (GU)
  • Low of the period > High of the previous period
    • Mark the period as "GU"
  • Consecutive Up Gap count (same concept as Consecutive Down Gap count)
  • Low of the current period > High of the previous period
    • Mark the bar as "GU?"
  • Adjustable parameter to display/not display count
  • Default=on
Overlapping bars up (LU)
  • Open > previous period Close and Open < previous period High
  • Mark as "LU"
  • Default=on
Overlapping bars down (LD)
  • Open < previous period Close and Open > previous period Low
  • Mark as "LD"
  • Default=on
Strong Close Up/Down (SCU / SCD)
  • Mark the period as "SCU" if the Close is within 25% of the High of the period
  • Mark the period as "SCD" if the Close is within 25% of the Low of the period
  • Default=on
Thanks

@BenTen @MerryDay Any chance you might have an idea where to begin on this? I did not find any similar existing script on the website.

@halcyonguy I noticed that you have done some beautiful work with Gaps. Do you think some of that coding could be slightly modified to capture what I am trying to do with Gap Ups and Gap Downs? I believe your current work looks like a pretty good fit, would it be possible to add the consecutive gap count?
 
Last edited:
@halcyonguy I noticed that you have done some beautiful work with Gaps. Do you think some of that coding could be slightly modified to capture what I am trying to do with Gap Ups and Gap Downs? I believe your current work looks like a pretty good fit, would it be possible to add the consecutive gap count?

just want to let you know , i am reading and thinking about your post. it might be a day or 2. since you have many rules, i think i will make a lower study, of rows of dots, to see when the conditions are true or false ( and verify logic). then change it to be an upper study.
if anyone else has an idea for this, go for it.


you did a great job in listing out rules for a program to follow.
but, you didn't mention what you want to see on the chart.

labels, floating bubbles , arrows, dots, lines, shading, ?
https://tlc.thinkorswim.com/center/reference/thinkScript/Constants/PaintingStrategy

you want to count things. those numbers could be in labels. a label will display data based on data on the last bar on the chart.
it is possible to put a number just above or below a specific candle.
https://tlc.thinkorswim.com/center/...aintingStrategy/PaintingStrategy-VALUES-ABOVE
 
Thank you for your reply and interest @halcyonguy.

I would like to be able to choose the painting strategy to "Draw as" Values Below or Values Above with the defaults being:
  • "Values Above" - NRD, NRDV, WRD, WRDV, SCD, LD1 / LD2 / LD3..., GD1 / GD2 / GD3...
  • "Values Below" - NRU, NRUV, WRU, WRUV, SCU, LU1 / LU2 / LU3..., GU1 / GU2 / GU3...
If possible it would be nice to be able to assign colors to each

If it is easier we can simplify the Narrow Range Bar to be non-directional (NRU / NRD) and just call them "NR" and we can also remove the volume parameters for now.
 
Last edited:
Thank you for your reply and interest @halcyonguy.

I would like to be able to choose the painting strategy to "Draw as" Values Below or Values Above with the defaults being:
  • "Values Above" - NRD, NRDV, WRD, WRDV, SCD, LD1 / LD2 / LD3..., GD1 / GD2 / GD3...
  • "Values Below" - NRU, NRUV, WRU, WRUV, SCU, LU1 / LU2 / LU3..., GU1 / GU2 / GU3...
If possible it would be nice to be able to assign colors to each

If it is easier we can simplify the Narrow Range Bar to be non-directional (NRU / NRD) and just call them "NR" and we can also remove the volume parameters for now.

regarding post3, i don't know what this means,

.."Values Above" - NRD, NRDV, WRD, WRDV, SCD, LD1 / LD2 / LD3..., GD1 / GD2 / GD3...
.."Values Below" - NRU, NRUV, WRU, WRUV, SCU, LU1 / LU2 / LU3..., GU1 / GU2 / GU3...

you want to see all of those , somewhere?
when they are true ?
that would have to be bubble(s)
valueabove can only display 1 number


---------------------

this is a lower study, that draws 5 rows of colored dots,
and 1 row for combining them ( 3 or more true's)
use it to verify the signals,
. strong close
. overlap
. gap
. wide range
. narrow range

the top row is a combination of the 5 rows. if 3 or more rows , have the same signal, then show a dot.

there is a label to show gap count

Code:
# gaps_narrow_wide_bars_01

#https://usethinkscript.com/threads/chart-labels-wide-narrow-range-bars-gaps-overlapping-bars-counts.12984/


#Chart Labels: Wide/Narrow range bars, Gaps, Overlapping bars, Counts
#TheAlchemist17
#Hello, I am looking for help creating an indicator. I have searched the website threads but have not been able to find anything that accomplishes what I am looking for. Unfortunately, I do not have any coding skills but I have tried to communicate the details as clearly as possible. Hopefully, someone out there can help me to create the code for this. Thank you!

declare lower;


def na = double.nan;
def bn = barnumber();


def rng = high - low;
# nr = narrow range , bar has a small price range, from low to high
# nru = narrow range up
# nrd = narrow range down

def v = volume;
input vol_avg_len = 30;
def v_avg = average(v, vol_avg_len);

def up = close > open;
def down = close < open;


#-----------------------------
# ATR
# TD Ameritrade
input length = 10;
input averageType = AverageType.WILDERS;
#plot ATR = MovingAverage(averageType, TrueRange(high, close, low), length);
#ATR.SetDefaultColor(GetColor(8));
def ATR = MovingAverage(averageType, TrueRange(high, close, low), length);

def bar_atr_per = floor(100 * (rng/atr));

#-----------------------------

#-----------------------------
# Narrow Range Bar Up/Down (NRU / NRD)
#  Current period range < 30% the average true range over the past 10 periods
#  Adjustable parameters for % and period count
#  Mark the bar as "NR"
#=====  add nru , nrd
#  When volume is 120% > average volume past 30 periods
#  Adjustable parameters for % and average period lookback
#  Mark the bar as "NRUV" "NRDV"
#  Default = on

input nrx_vol_en = yes;
#hint nrx_vol_en: Enable , Narrow range UP or DOWN bars, with higher volume

#input narrow_range_max_per = 30;
input narrow_range_max_per = 60;
def nr = (rng < ( narrow_range_max_per/100 * atr));
def nru = (nr and up);
def nrd = (nr and down);

input narrow_vol_level1_per_min = 120;
def isnarrow_vol_level1 = (v >  narrow_vol_level1_per_min/100 * v_avg);

def nruv = (nrx_vol_en and nru and isnarrow_vol_level1);
def nrdv = (nrx_vol_en and nrd and isnarrow_vol_level1);



addchartbubble(0, 0,
rng + " rng\n" +
bar_atr_per + " atr%\n" +
nr + " NR\n" +
atr + " atr\n" +
(narrow_range_max_per/100 * atr) + " %#"
, color.yellow, no);

#-----------------------------
# Wide Range Bars Up/Down (WRU / WRD)
#  Must be at least greater than a recent NR bar
#  Must be >60% (make this number an adjustable parameter) the average true range
#  Mark the bar as "WRU" and "WRD"
#---- add WR
#  When volume is 120% > average volume past 30 periods
#  Adjustable parameters for % and average period lookback
#  Mark the bar as "WRUV" and "WRDV"
#  Default = on

input wrx_vol_en = yes;
#hint wrx_vol_en: Enable , Wide range UP or DOWN bars, with higher volume

#input wide_range_max_per = 60;
input wide_range_max_per = 140;
def wr = (rng > (wide_range_max_per/100 * atr));
def wru = (wr and up);
def wrd = (wr and down);

input wide_vol_level1_per_min = 120;
def iswide_vol_level1 = (v >  wide_vol_level1_per_min/100 * v_avg);

def wruv = (wrx_vol_en and wru and iswide_vol_level1);
def wrdv = (wrx_vol_en and wrd and iswide_vol_level1);


#-----------------------------
# Gap Down (GD)
#  High of the period < close of the previous period
#  Mark the period as "GD"
#  Consecutive Down Gap count: "Consecutive" means that there has not been an Up Gap since the last Down Gap. The count #would start again after it was interrupted by an Up Gap. If there was a Down Gap on bar 1 and then there were no gaps for #several bars and then another down gap occurred, this down gap would count as number 2.
#  ?? same thing--  High of the current period < close of the previous period
#  ?? same thing--  Mark the bar as "GD?"
#  Adjustable parameter to display/not display count
#  Default=on

# changed , from close to low.  gap up uses high and low
def gd = high < low[1];

#-----------------------------
# Gap Up (GU)
#  Low of the period > High of the previous period
#  Mark the period as "GU"
#  Consecutive Up Gap count (same concept as Consecutive Down Gap count)
#  ?? same thing--  Low of the current period > High of the previous period
#  ?? same thing--  Mark the bar as "GU?"
#  Adjustable parameter to display/not display count
#  Default=on

def gu = low > high[1];

#-----------------------------

def gap = gd or gu;

# gap counts
def gap_dir = if bn == 1 then 0
  else if gu then 1
  else if gd then -1
  else gap_dir[1];

def gap_cnt = if bn == 1 then 0
  else if gu and gap_dir[1] > 0 then gap_cnt[1] + 1
  else if gu and gap_dir[1] < 0 then 1
  else if gd and gap_dir[1] < 0 then gap_cnt[1] + 1
  else if gd and gap_dir[1] > 0 then 1
  else gap_cnt[1];

#-----------------------------
# Overlapping bars up (LU)
#  Open > previous period Close and Open < previous period High
#  Mark as "LU"
#  Default=on

def lu = open > close[1] and open < high[1];

#-----------------------------
# Overlapping bars down (LD)
#  Open < previous period Close and Open > previous period Low
#  Mark as "LD"
#  Default=on

def ld = open < close[1] and open > low[1];

#-----------------------------
def l = lu or ld;
#-----------------------------
# Strong Close Up/Down (SCU / SCD)
#  Mark the period as "SCU" if the Close is within 25% of the High of the period
#  Mark the period as "SCD" if the Close is within 25% of the Low of the period
#  Default=on

# 25% ? of the candle height ? , range

input near_close_per = 25;
def rng_near = (rng * near_close_per/100);
def scu = (close > (high - rng_near));
def scd = (close < (low + rng_near));

def sc = scu or scd;

#-----------------------------



# input signals
#def sig1 = nr;
#def sig2 = wr;
#def sig3 = gap;
#def sig4 = l;

plot z = 0;
z.SetDefaultColor(Color.gray);

input row_spacing = 1.0;
def plotz = !isnan(close);

#============================================================
#  1   NR
def row1 = 1;
plot zsig1 = if plotz then row1/row_spacing else na;
zsig1.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig1.AssignValueColor(if nru then color.green else if nrd then color.red else color.black);
zsig1.setlineweight(4);


#  2   WR
def row2 = 2;
plot zsig2 = if plotz then row2/row_spacing else na;
zsig2.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig2.AssignValueColor(if wru then color.green else if wrd then color.red else color.black);
zsig2.setlineweight(4);


#  3   GAP
def row3 = 3;
plot zsig3 = if plotz then row3/row_spacing else na;
zsig3.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig3.AssignValueColor(if gu then color.green else if gd then color.red else color.black);
zsig3.setlineweight(4);


#  4  l
def row4 = 4;
plot zsig4 = if plotz then row4/row_spacing else na;
zsig4.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig4.AssignValueColor(if lu then color.green else if ld then color.red else color.black);
zsig4.setlineweight(4);


#  5  sc
def row5 = 5;
plot zsig5 = if plotz then row5/row_spacing else na;
zsig5.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig5.AssignValueColor(if scu then color.green else if scd then color.red else color.black);
zsig5.setlineweight(4);

#------------------------------

# top row
# check if the quantity of up or down signals are more than n
def n = 3;
def xu2 = (nru + wru + gu + lu + scu);
def xd2 = (nrd + wrd + gd + ld + scd);
def xu = xu2 >= n;
def xd = xd2 >= n;

#--------------------------

addchartbubble(0, 0,
nru + "\n" +
wru + "\n" +
gu + "\n" +
lu + "\n" +
scu + "\n" +
xu2
, color.yellow, no);


addchartbubble(0, 0,
xu2 + "\n" +
xu + "\n" +
xd2 + "\n" +
xd
, color.yellow, yes);


#------------------------------
# draw a line above 5th row , below the combined output
plot e =  (row5/row_spacing) + (row_spacing/2);
#------------------------------

#  6
def row6 = 6;
plot zsig6 = if plotz then row6/row_spacing else na;
zsig6.SetPaintingStrategy(PaintingStrategy.POINTS);
zsig6.AssignValueColor(if xu then color.green else if xd then color.red else color.black);
zsig6.setlineweight(4);


addlabel(1, "Gap dir " + gap_dir, color.yellow);
addlabel(1, "Gap count " + gap_cnt, color.yellow);


# draw a legend bubble, after the last bar
input bubble_bars = 3;
def x = (!isnan(close[bubble_bars+1]) and isnan(close[bubble_bars]));

addchartbubble(x, (0.5/row_spacing),
"3 or more" + "\n" +
"strong close" + "\n" +
"overlap" + "\n" +
"GAP\n" +
"Wide range " + wide_range_max_per + "%\n" +
"Narrow range " + narrow_range_max_per + "%\n"
, color.yellow, yes);
#

DN01Io2.jpg
 
@halcyonguy I was thinking that the indicator would be able to select where the values for the count display. If they can only display numbers using the "value above" and "value below" drawn as options then as you mentioned we can use bubbles.

Initially, I overcomplicated this request by asking for too many customizable parameters, (volume, period length, directional notations etc.) Maybe we can take a step back? Can we just identify the:

  • We can omit:
    • Overlapping labels (LU, LD)
    • Directional considerations (NRU, NRD, WRU, WRD)
    • Volume considerations (NRUV, NRDV, WRUV, WRDV)
    • Counting
This is intended for use on daily charts.

Thanks!
 
@halcyonguy I was thinking that the indicator would be able to select where the values for the count display. If they can only display numbers using the "value above" and "value below" drawn as options then as you mentioned we can use bubbles.

Initially, I overcomplicated this request by asking for too many customizable parameters, (volume, period length, directional notations etc.) Maybe we can take a step back? Can we just identify the:

  • We can omit:
    • Overlapping labels (LU, LD)
    • Directional considerations (NRU, NRD, WRU, WRD)
    • Volume considerations (NRUV, NRDV, WRUV, WRDV)
    • Counting
This is intended for use on daily charts.

Thanks!

here is an upper chart version.
i kept all the formulas.
the bubbles for each type can be turned on/off
a colored label shows the gap count

Code:
# gaps_narrow_wide_bars_01_upper

#https://usethinkscript.com/threads/chart-labels-wide-narrow-range-bars-gaps-overlapping-bars-counts.12984/


#Chart Labels: Wide/Narrow range bars, Gaps, Overlapping bars, Counts
#TheAlchemist17  
#Hello, I am looking for help creating an indicator. I have searched the website threads but have not been able to find anything that accomplishes what I am looking for. Unfortunately, I do not have any coding skills but I have tried to communicate the details as clearly as possible. Hopefully, someone out there can help me to create the code for this. Thank you!


def na = double.nan;
def bn = barnumber();

def rng = high - low;
# definitions
#  nr = narrow range , bar has a small price range, from low to high
#  nru = narrow range up
#  nrd = narrow range down

def v = volume;
input vol_avg_len = 30;
def v_avg = average(v, vol_avg_len);

def up = close > open;
def down = close < open;

#-----------------------------
# ATR
# TD Ameritrade
input length = 10;
input averageType = AverageType.WILDERS;
#plot ATR = MovingAverage(averageType, TrueRange(high, close, low), length);
#ATR.SetDefaultColor(GetColor(8));
def ATR = MovingAverage(averageType, TrueRange(high, close, low), length);

def bar_atr_per = floor(100 * (rng/atr));

#-----------------------------

# bubble vertical offset from bars
def vert = 0.004;

#-----------------------------
# Narrow Range Bar Up/Down (NRU / NRD)
#  Current period range < 30% the average true range over the past 10 periods
#  Adjustable parameters for % and period count
#  Mark the bar as "NR"
#=====  add nru , nrd
#  When volume is 120% > average volume past 30 periods
#  Adjustable parameters for % and average period lookback
#  Mark the bar as "NRUV" "NRDV"
#  Default = on

input show_narrow_range = yes;
input show_narrow_range_volume_up = yes;

#input narrow_range_max_per = 30;
input narrow_range_max_per = 60;
def nr = (rng < ( narrow_range_max_per/100 * atr));
def nru = (nr and up);
def nrd = (nr and down);

input narrow_vol_level1_per_min = 120;
def isnarrow_vol_level1 = (v >  narrow_vol_level1_per_min/100 * v_avg);

def nruv = (nru and isnarrow_vol_level1);
def nrdv = (nrd and isnarrow_vol_level1);

addchartbubble(show_narrow_range and nru, high*(1+vert), "NRU", color.green, yes);
addchartbubble(show_narrow_range and nrd, low*(1-vert), "NRD", color.red, no);
addchartbubble(show_narrow_range_volume_up and nruv, high*(1+vert), "NRUV", color.green, yes);
addchartbubble(show_narrow_range_volume_up and nrdv, low*(1-vert), "NRDV", color.red, no);


#-----------------------------
# Wide Range Bars Up/Down (WRU / WRD)
#  Must be at least greater than a recent NR bar
#  Must be >60% (make this number an adjustable parameter) the average true range
#  Mark the bar as "WRU" and "WRD"
#---- add WR
#  When volume is 120% > average volume past 30 periods
#  Adjustable parameters for % and average period lookback
#  Mark the bar as "WRUV" and "WRDV"
#  Default = on

input show_wide_range = yes;
input show_wide_range_volume_up = yes;

#input wide_range_max_per = 60;
input wide_range_max_per = 140;
def wr = (rng > (wide_range_max_per/100 * atr));
def wru = (wr and up);
def wrd = (wr and down);

input wide_vol_level1_per_min = 120;
def iswide_vol_level1 = (v >  wide_vol_level1_per_min/100 * v_avg);

def wruv = (wru and iswide_vol_level1);
def wrdv = (wrd and iswide_vol_level1);

addchartbubble(show_wide_range and wru, high*(1+vert), "WRU", color.green, yes);
addchartbubble(show_wide_range and wrd, low*(1-vert), "WRD", color.red, no);
addchartbubble(show_wide_range_volume_up and wruv, high*(1+vert), "WRUV", color.green, yes);
addchartbubble(show_wide_range_volume_up and wrdv, low*(1-vert), "WRDV", color.red, no);



#-----------------------------
# Gap Down (GD)
#  High of the period < close of the previous period
#  Mark the period as "GD"
#  Consecutive Down Gap count: "Consecutive" means that there has not been an Up Gap since the last Down Gap. The count #would start again after it was interrupted by an Up Gap. If there was a Down Gap on bar 1 and then there were no gaps for #several bars and then another down gap occurred, this down gap would count as number 2.
#  ?? same thing--  High of the current period < close of the previous period 
#  ?? same thing--  Mark the bar as "GD?"
#  Adjustable parameter to display/not display count
#  Default=on

input show_gaps = yes;
# changed , from close to low.  gap up uses high and low
def gd = high < low[1];
addchartbubble(show_gaps and gd, low*(1-vert), "GD", color.red, no);

#-----------------------------
# Gap Up (GU)
#  Low of the period > High of the previous period
#  Mark the period as "GU"
#  Consecutive Up Gap count (same concept as Consecutive Down Gap count)
#  ?? same thing--  Low of the current period > High of the previous period
#  ?? same thing--  Mark the bar as "GU?"
#  Adjustable parameter to display/not display count
#  Default=on

def gu = low > high[1];
addchartbubble(show_gaps and gu, high*(1+vert), "GU", color.green, yes);

#-----------------------------

def gap = gd or gu;

# gap counts
def gap_dir = if bn == 1 then 0
  else if gu then 1
  else if gd then -1
  else gap_dir[1];

def gap_cnt = if bn == 1 then 0
  else if gu and gap_dir[1] > 0 then gap_cnt[1] + 1
  else if gu and gap_dir[1] < 0 then 1
  else if gd and gap_dir[1] < 0 then gap_cnt[1] + 1
  else if gd and gap_dir[1] > 0 then 1
  else gap_cnt[1];

#-----------------------------
# Overlapping bars up (LU)
#  Open > previous period Close and Open < previous period High
#  Mark as "LU"
#  Default=on

input show_overlapping_bars = yes;
def lu = open > close[1] and open < high[1];
addchartbubble(show_overlapping_bars and lu, high*(1+vert), "LU", color.green, yes);


#-----------------------------
# Overlapping bars down (LD)
#  Open < previous period Close and Open > previous period Low
#  Mark as "LD"
#  Default=on

def ld = open < close[1] and open > low[1];
addchartbubble(show_overlapping_bars and ld, low*(1-vert), "LD", color.red, no);

#-----------------------------
def l = lu or ld;
#-----------------------------
# Strong Close Up/Down (SCU / SCD)
#  Mark the period as "SCU" if the Close is within 25% of the High of the period
#  Mark the period as "SCD" if the Close is within 25% of the Low of the period
#  Default=on

# 25% ? of the candle height ? , range

input show_strong_close = yes;
input near_close_per = 25;
def rng_near = (rng * near_close_per/100);
def scu = (close > (high - rng_near));
def scd = (close < (low + rng_near));
def sc = scu or scd;

addchartbubble(show_strong_close and scu, high*(1+vert), "SCU", color.green, yes);
addchartbubble(show_strong_close and scd, low*(1-vert), "SCD", color.red, no);

#-----------------------------

#addlabel(1, "Gap dir " + gap_dir, color.yellow);
addlabel(1, "Gap count " + gap_cnt, (if gap_dir > 0 then color.green else color.red));
#

h6ZHMQa.jpg
 
I’m looking to build a script that different time frames (weekly, daily, hourly….) can be input and will paint a candle yellow if it is the narrow range bar of last seven bars. I would also like to paint the widest range bar of the last 7 orange. Along with this I would like the mid point of all candles marked on the candle with a line. Can anyone help me with this?
 

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