100% found this document useful (1 vote)
525 views16 pages

Algoman NEXT Trading Dashboard Setup

Algoman NEXT

Uploaded by

katrin.k1394
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
525 views16 pages

Algoman NEXT Trading Dashboard Setup

Algoman NEXT

Uploaded by

katrin.k1394
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
  • Input Settings
  • Core Functions
  • Alert Conditions

//@version=5

indicator("Algoman NEXT", overlay=true, max_lines_count=500, max_labels_count=500,


max_boxes_count=350)

// Get user input


enableDashboard = input(true, "Enable Dashboard", group="DASHBOARD SETTINGS")
locationDashboard = [Link]("Middle right", "Location", ["Top right", "Top
left", "Middle right", "Middle left", "Bottom right", "Bottom left"],
group="DASHBOARD SETTINGS")
sizeDashboard = [Link]("Tiny", "Size", ["Tiny", "Small", "Normal"],
group="DASHBOARD SETTINGS")
colorBackground = input(#2A2E39, "Bg color", group="DASHBOARD SETTINGS")
colorFrame = input(#2A2E39, "Frame color", group="DASHBOARD SETTINGS")
colorBorder = input(#363A45, "Border color", group="DASHBOARD SETTINGS")
showSignals = input(true, "Show signals", group="BUY AND SELL SIGNALS
SETTINGS")
strategy = [Link]("Normal", "Strategy", ["Normal", "Confirmed",
"Trend scalper"], group="BUY AND SELL SIGNALS SETTINGS")
sensitivity = [Link](1.8, "Sensitivity", 0.1, step=0.1, group="BUY AND
SELL SIGNALS SETTINGS")
consSignalsFilter = input(false, "Consolidation signals filter", group="BUY AND
SELL SIGNALS SETTINGS")
smartSignalsOnly = input(false, "Smart signals only", group="BUY AND SELL SIGNALS
SETTINGS")
candleColors = input(false, "Candle colors", group="BUY AND SELL SIGNALS
SETTINGS")
momentumCandles = input(false, "Momentum candles", group="BUY AND SELL SIGNALS
SETTINGS")
highVolSignals = input(false, "High volume signals only", group="BUY AND SELL
SIGNALS SETTINGS")
enableTrailingSL = input(false, "Enable trailing stop-loss", group="RISK
MANAGEMENT SETTINGS")
usePercSL = input(false, "% Trailing sl", inline="2", group="RISK
MANAGEMENT SETTINGS")
percTrailingSL = [Link](1, "", 0, step=0.1, inline="2", group="RISK
MANAGEMENT SETTINGS")
enableSwings = input(false, "Enable Swing High's & Swing's Low's", inline="3",
group="RISK MANAGEMENT SETTINGS")
periodSwings = [Link](10, "", 2, inline="3", group="RISK MANAGEMENT
SETTINGS")
enableTpSlAreas = input(false, "Enable take profit/stop-loss areas", group="RISK
MANAGEMENT SETTINGS")
useTP1 = input(true, "", inline="4", group="RISK MANAGEMENT SETTINGS")
multTP1 = [Link](1, "TP 1", 0, inline="4", group="RISK MANAGEMENT
SETTINGS")
useTP2 = input(true, "", inline="5", group="RISK MANAGEMENT SETTINGS")
multTP2 = [Link](2, "TP 2", 0, inline="5", group="RISK MANAGEMENT
SETTINGS")
useTP3 = input(true, "", inline="6", group="RISK MANAGEMENT SETTINGS")
multTP3 = [Link](3, "TP 3", 0, inline="6", group="RISK MANAGEMENT
SETTINGS")
tpLabels = input(true, "Take profit labels", group="RISK MANAGEMENT
SETTINGS")
showTrendCloud = input(true, "Show Trend cloud", group="TREND CLOUD SETTINGS")
periodTrendCloud = [Link]("New", "Trend cloud period", ["Short term", "Long
term", "New"], group="TREND CLOUD SETTINGS")
signalsTrendCloud = input(false, "Trend only signals", group="TREND CLOUD
SETTINGS")
fastTrendCloud = input(false, "Fast trend cloud", group="TREND CLOUD SETTINGS")
fastTrendCloudLen = [Link](55, "Fast trend cloud", 2, group="TREND CLOUD
SETTINGS")
enableAutoTrend = input(false, "Enable Auto Trendlines", group="AUTO TRENDLINES
SETTINGS")
srcTrendChannel = input(close, "Trend channel source", group="AUTO TRENDLINES
SETTINGS")
lenTrendChannel = [Link](200, "Trend channel loopback", 2, group="AUTO
TRENDLINES SETTINGS")
enableSR = input(false, "Enable support and resistance", group="AUTO
SUPPORT AND RESISTANCE SETTINGS")
lineSrStyle = [Link]("Dashed", "Line Style", ["Solid", "Dotted",
"Dashed"], group="AUTO SUPPORT AND RESISTANCE SETTINGS")
lineSrWidth = [Link](2, "Line Width", 1, 4, group="AUTO SUPPORT AND
RESISTANCE SETTINGS")
showCons = input(false, "Consolidation Zones", group="CONSOLIDATION
ZONES")
lbPeriod = [Link](10, "Loopback Period", 2, 50, group="CONSOLIDATION
ZONES")
lenCons = [Link](5, "Min Consolidation Length", 2, 20,
group="CONSOLIDATION ZONES")
paintCons = input(true, "Paint Consolidation Area", group="CONSOLIDATION
ZONES")
colorZone = input([Link]([Link], 70), "Zone Color",
group="CONSOLIDATION ZONES")
box_ob = [Link](false, "Toggle Order Block", group="ORDER BLOCK")
box_hide_gray = [Link](false, "Hide gray boxes", group="ORDER BLOCK")
bos_type = [Link]("High and Low", "MSB trigger", ["High and Low",
"Close and Open"], group="ORDER BLOCK")
box_sv = [Link](true, "Plot demand boxes", group="ORDER BLOCK")
box_test_delay = [Link](3, "Delay to count test of demand box", 1,
group="ORDER BLOCK")
box_fill_delay = [Link](3, "Delay to count fill of demand box", 1,
group="ORDER BLOCK")
box_test_sv = [Link](true, "Dim tested demand boxes", group="ORDER
BLOCK")
box_stop_sv = [Link](true, "Stop plotting filled demand boxes",
group="ORDER BLOCK")
algomanVP = input(false, "algoman volume profile", group="algoman VOLUME
PROFILE")
colorBorderVP = input([Link]([Link], 80), "Border color",
group="algoman VOLUME PROFILE")
colorBuyVP = input(#7F1623, "Buy volume", group="algoman VOLUME PROFILE")
colorSellVP = input(#00DD00, "Sell volume", group="algoman VOLUME PROFILE")
offset = [Link](2, "Offset", 2, 20, group="algoman VOLUME PROFILE")
lookback = [Link](100, "Lookback", 14, 10000, group="algoman VOLUME
PROFILE")
levelNum = [Link](100, "Number of levels", 10, 1000, group="algoman
VOLUME PROFILE")
levelWidth = [Link](50, "Level width", 2, 100, group="algoman VOLUME
PROFILE")
// Functions
f_chartTfInMinutes() =>
float _resInMinutes = [Link] * (
[Link] ? 1. / 60 :
[Link] ? 1. :
[Link] ? 60. * 24 :
[Link] ? 60. * 24 * 7 :
[Link] ? 60. * 24 * 30.4375 : na)
atr(len) =>
tr = [Link]
atr = 0.0
atr := nz(atr[1] + (tr - atr[1]) / len, tr)
supertrend(src, factor, len) =>
atr = [Link](len)
upperBand = src + factor * atr
lowerBand = src - factor * atr
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ?
lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ?
upperBand : prevUpperBand
int direction = na
float superTrend = na
prevSuperTrend = superTrend[1]
if prevSuperTrend == prevUpperBand
direction := close > upperBand ? 1 : -1
else
direction := close < lowerBand ? -1 : 1
superTrend := direction == 1 ? lowerBand : direction == -1 ? upperBand : na
dchannel(len)=>
hh = [Link](len)
ll = [Link] (len)
trend = 0
trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1])
trendScalper(show, len1, len2, len3, colorBull, colorBear, colorBarBull,
colorBarBear) =>
avgOC = [Link](open, close)
ha_o = 0.0, ha_o := na(ha_o[1]) ? avgOC : (ha_o[1] + ohlc4[1]) / 2
ema1 = [Link](ha_o, len1), ema2 = [Link](ha_o, len2), ema3 = [Link](ha_o, len3)
ris1 = ema1 > ema1[1], ris2 = ema2 > ema2[1], ris3 = ema3 > ema3[1]
fal1 = ema1 < ema1[1], fal2 = ema2 < ema2[1], fal3 = ema3 < ema3[1]
colorEma1 = ris1 ? colorBull : fal1 ? colorBear : na, colorEma2 = ris2 ?
colorBull : fal2 ? colorBear : na, colorEma3 = ris3 ? colorBull : fal3 ?
colorBear : na
fillEma1 = avgOC > ema1 ? colorBull : avgOC < ema1 ? colorBear : na, fillEma2 =
ema1 > ema2 ? colorBull : ema1 < ema2 ? colorBear : na, fillEma3 = ema2 > ema3 ?
colorBull : ema2 < ema3 ? colorBear : na
colorBar = close < ema1 and close < ema2 ? colorBarBear : colorBarBull
[avgOC, show ? ema1 : na, show ? ema2 : na, show ? ema3 : na,
[Link](colorEma1, 55), [Link](colorEma2, 45), [Link](colorEma3, 35),
[Link](fillEma1, 85), [Link](fillEma2, 80), [Link](fillEma3, 75),
colorBar]
candlesMom() =>
[_, _, macd] = [Link](close, 12, 26, 9)
(macd > 0 and macd > macd[1]) or (macd < 0 and macd < macd[1])
trailingSL(buy, sell, factor, len, usePerc, perc) =>
atr = atr(len)
upperBand = high + (usePerc ? high * (perc / 100) : factor * atr)
lowerBand = low - (usePerc ? low * (perc / 100) : factor * atr)
prevLowerBand = nz(lowerBand[1])
prevUpperBand = nz(upperBand[1])
lowerBand := lowerBand > prevLowerBand or buy ? lowerBand : prevLowerBand
upperBand := upperBand < prevUpperBand or sell ? upperBand : prevUpperBand
int direction = na
float stop = na
prevSuperTrend = stop[1]
if prevSuperTrend == prevUpperBand
direction := buy ? 1 : -1
else
direction := sell ? -1 : 1
stop := direction == 1 ? lowerBand : direction == -1 ? upperBand : na
add_to_zz(zz, val, bi) =>
[Link](zz, bi)
[Link](zz, val)
if [Link](zz) > 12
[Link](zz)
update_zz(zz, val, bi, dir) =>
if [Link](zz) == 0
add_to_zz(zz, val, bi)
else
if dir == 1 and val > [Link](zz, 0) or dir == -1 and val < [Link](zz,
0)
[Link](zz, 0, val)
[Link](zz, 1, bi)
0
float ph = [Link](high, 10, 10)
float pl = [Link] (low , 10, 10)
LSRstyle = lineSrStyle == "Dashed" ? line.style_dashed : lineSrStyle == "Solid" ?
line.style_solid : line.style_dotted
prdhighest = [Link](300)
prdlowest = [Link] (300)
cwidth = (prdhighest - prdlowest) * 10 / 100
var pivotvals = array.new_float(0)
if ph or pl
[Link](pivotvals, ph ? ph : pl)
if [Link](pivotvals) > 20
[Link](pivotvals)
get_sr_vals(ind) =>
float lo = [Link](pivotvals, ind)
float hi = lo
int numpp = 0
for y = 0 to [Link](pivotvals) - 1 by 1
float cpp = [Link](pivotvals, y)
float wdth = cpp <= lo ? hi - cpp : cpp - lo
if wdth <= cwidth
lo := cpp <= lo ? cpp : lo
hi := cpp > lo ? cpp : hi
numpp += 1
numpp
[hi, lo, numpp]
var sr_up_level = array.new_float(0)
var sr_dn_level = array.new_float(0)
sr_strength = array.new_float(0)
find_loc(strength) =>
ret = [Link](sr_strength)
for i = ret > 0 ? [Link](sr_strength) - 1 : na to 0 by 1
if strength <= [Link](sr_strength, i)
break
ret := i
ret
ret
check_sr(hi, lo, strength) =>
ret = true
for i = 0 to [Link](sr_up_level) > 0 ? [Link](sr_up_level) - 1 : na by
1
if [Link](sr_up_level, i) >= lo and [Link](sr_up_level, i) <= hi or
[Link](sr_dn_level, i) >= lo and [Link](sr_dn_level, i) <= hi
if strength >= [Link](sr_strength, i)
[Link](sr_strength, i)
[Link](sr_up_level, i)
[Link](sr_dn_level, i)
ret
else
ret := false
ret
break
ret
// Get components
rsi = [Link](close, 14)
vosc = [Link] - [Link]([Link], 20)
bs = [Link](nz([Link]((open - close) / (high - low) * 100)), 3)
ema = [Link](close, 200)
emaBull = close > ema
equal_tf(res) => [Link](res) == f_chartTfInMinutes()
higher_tf(res) => [Link](res) > f_chartTfInMinutes()
too_small_tf(res) => ([Link] and res=="1") or ([Link] and
[Link](res) < 10)
securityNoRep(sym, res, src) =>
bool bull = na
bull := equal_tf(res) ? src : bull
bull := higher_tf(res) ? [Link](sym, res, src, barmerge.gaps_off,
barmerge.lookahead_on) : bull
bull_array = request.security_lower_tf([Link], higher_tf(res) ?
[Link](f_chartTfInMinutes()) : too_small_tf(res) ? ([Link] ?
"3" : "10") : res, src)
if [Link](bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull := [Link](bull_array)
[Link](bull_array)
bull
TF1Bull = securityNoRep([Link], "1" , emaBull)
TF3Bull = securityNoRep([Link], "3" , emaBull)
TF5Bull = securityNoRep([Link], "5" , emaBull)
TF10Bull = securityNoRep([Link], "10" , emaBull)
TF15Bull = securityNoRep([Link], "15" , emaBull)
TF30Bull = securityNoRep([Link], "30" , emaBull)
TF60Bull = securityNoRep([Link], "60" , emaBull)
TF120Bull = securityNoRep([Link], "120" , emaBull)
TF240Bull = securityNoRep([Link], "240" , emaBull)
TF720Bull = securityNoRep([Link], "720" , emaBull)
TFDBull = securityNoRep([Link], "1440", emaBull)
ema150 = [Link](close, 150)
ema250 = [Link](close, 250)
hma55 = [Link](close, 55 )
[_, _, macd] = [Link](close, 12, 26, 9)
supertrend = supertrend(ohlc4, sensitivity, 10)
maintrend = dchannel(30)
confBull = ([Link] (close, supertrend) or ([Link] (close, supertrend)
[1] and maintrend[1] < 0)) and macd > 0 and macd > macd[1] and ema150 > ema250 and
hma55 > hma55[2] and maintrend > 0
confBear = ([Link](close, supertrend) or ([Link](close, supertrend)
[1] and maintrend[1] > 0)) and macd < 0 and macd < macd[1] and ema150 < ema250 and
hma55 < hma55[2] and maintrend < 0
trendcloud = supertrend(ohlc4, periodTrendCloud == "Long term" ? 7 : 4, 10)
hma = fastTrendCloud ? [Link](close, fastTrendCloudLen) : na
none = close > 0
[_, _, adx] = [Link](14, 14)
consFilter = adx > 20
smartFilter = [Link](close, 200)
volFilter = ([Link](volume, 25) - [Link](volume, 26)) / [Link](volume, 26) > 0
trendFilter = trendcloud
bull = (strategy == "Normal" ? [Link] (close, supertrend) : confBull and not
confBull[1]) and strategy != "Trend scalper" and (smartSignalsOnly ? close >
smartFilter : none) and (consSignalsFilter ? consFilter : none) and (highVolSignals
? volFilter : none) and (signalsTrendCloud ? (periodTrendCloud == "New" ? ema150 >
ema250 : close > trendFilter) : none)
bear = (strategy == "Normal" ? [Link](close, supertrend) : confBear and not
confBear[1]) and strategy != "Trend scalper" and (smartSignalsOnly ? close <
smartFilter : none) and (consSignalsFilter ? consFilter : none) and (highVolSignals
? volFilter : none) and (signalsTrendCloud ? (periodTrendCloud == "New" ? ema150 <
ema250 : close < trendFilter) : none)
countBull = [Link](bull)
countBear = [Link](bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
[avgOC, ema5, ema9, ema21, colorEma5, colorEma9, colorEma21, fillEma5, fillEma9,
fillEma21, colorBar] = trendScalper(strategy == "Trend scalper" ? true : false, 5,
9, 21, [Link], [Link], #00DD00, #DD0000)
trailingStop = trailingSL(bull, bear, 2.2, 14, usePercSL, percTrailingSL)
float _ph = [Link](high, periodSwings) == 0 ? high : na
float _pl = [Link] (low, periodSwings) == 0 ? low : na
var _dir = 0, dir_ = _pl and na(_ph) ? -1 : _dir, _dir := _ph and na(_pl) ? 1 :
dir_, dirChg = [Link](_dir)
var zz = array.new_float(0), zzOld = [Link](zz)
float zzLive = _ph or _pl ? (dirChg ? add_to_zz(zz, _dir == 1 ? _ph : _pl,
bar_index) : update_zz(zz, _dir == 1 ? _ph : _pl, bar_index, _dir)) : na
a = [Link](srcTrendChannel, lenTrendChannel), b = [Link](srcTrendChannel,
lenTrendChannel)
A = 4 * b - 3 * a, B = 3 * a - 2 * b
m = (A - B) / (lenTrendChannel - 1)
d = 0., for i = 0 to lenTrendChannel - 1 by 1
l = B + m * i
d += [Link](srcTrendChannel[i] - l, 2)
rmse = [Link](d / (lenTrendChannel - 1)) * 2
float hb_ = [Link](lbPeriod) == 0 ? high : na
float lb_ = [Link] (lbPeriod) == 0 ? low : na
var int dir = 0
float zz_ = na
float pp = na
var int consCnt = 0
var float condHi = na
var float condLo = na
float H_ = [Link](lenCons)
float L_ = [Link] (lenCons)
var line lineUp = na
var line lineDn = na
bool breakUp = false
bool breakDn = false
var float[] pvh1_price = array.new_float(1000, na)
var int[] pvh1_time = array.new_int (1000, na)
var float[] pvl1_price = array.new_float(1000, na)
var int[] pvl1_time = array.new_int (1000, na)
var float[] pvh2_price = array.new_float(1000, na)
var int[] pvh2_time = array.new_int (1000, na)
var float[] pvl2_price = array.new_float(1000, na)
var int[] pvl2_time = array.new_int (1000, na)
var float htcmrll_price = na
var int htcmrll_time = na
var float ltcmrhh_price = na
var int ltcmrhh_time = na
var box[] long_boxes = array.new_box()
var box[] short_boxes = array.new_box()
var float temp_pv_0 = na
var float temp_pv_1 = na
var float temp_pv_2 = na
bool pvh = high < high[1] and high[1] > high[2]
bool pvl = low > low [1] and low [1] < low [2]
int pv1_time = bar_index[1]
float pv1_high = high[1]
float pv1_low = low [1]
float trigger_high = bos_type == "High and Low" ? high : [Link](open,
close)
float trigger_low = bos_type == "High and Low" ? low : [Link](open,
close)
rangeHigh = [Link](high, lookback)
rangeLow = [Link](low, lookback)
rangeHeight = rangeHigh - rangeLow
histogramHeight = rangeHeight / levelNum
histogramLowList = array.new_float(levelNum, na)
histogramHighList = array.new_float(levelNum, na)
histogramBuyVolumeList = array.new_float(levelNum, 0.0)
histogramSellVolumeList = array.new_float(levelNum, 0.0)
var buyBars = array.new_box(365, na)
for i = 0 to 364
[Link]([Link](buyBars, i))
var sellBars = array.new_box(365, na)
for i = 0 to 364
[Link]([Link](sellBars, i))
// Colors
green = #00DD00, green50 = [Link](green, 50), green20 = [Link](green,
80)
red = #DD0000, red50 = [Link](red, 50), red20 = [Link](red, 80)
silver = #B2B5BE, silver50 = [Link](silver, 50), silver20 = [Link](silver,
80)
// Plots
atrBand = usePercSL ? (trigger ? low : high) * (percTrailingSL / 100) : [Link](14)
* 2.2
atrStop = trigger ? low - atrBand : high + atrBand
lastTrade(src) => [Link](bull or bear, src, 0)
entry_y = lastTrade(close)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y-lastTrade(atrStop))*multTP1 + entry_y
tp2_y = (entry_y-lastTrade(atrStop))*multTP2 + entry_y
tp3_y = (entry_y-lastTrade(atrStop))*multTP3 + entry_y
labelTpSl(cond, y, txt, color) =>
label labelTpSl = enableTpSlAreas and cond ? [Link](bar_index + 1, y, txt,
xloc.bar_index, [Link], color, label.style_label_left, [Link],
[Link]) : na
[Link](labelTpSl[1])
labelTpSl(none, entry_y, "Entry : " + [Link](math.round_to_mintick(entry_y)),
[Link])
labelTpSl(none, stop_y , "Stop loss : " +
[Link](math.round_to_mintick(atrStop)), [Link])
labelTpSl(useTP1 and multTP1 != 0, tp1_y, "TP 1 : " +
[Link](math.round_to_mintick(tp1_y)), [Link])
labelTpSl(useTP2 and multTP2 != 0, tp2_y, "TP 2 : " +
[Link](math.round_to_mintick(tp2_y)), [Link])
labelTpSl(useTP3 and multTP3 != 0, tp3_y, "TP 3 : " +
[Link](math.round_to_mintick(tp3_y)), [Link])
lineTpSl(cond, y, color, style) =>
line lineTpSl = enableTpSlAreas and cond ? [Link](bar_index - (trigger ?
countBull : countBear), y, bar_index + 1, y, xloc.bar_index, [Link], color,
style) : na
[Link](lineTpSl[1])
lineTpSl(none, entry_y, [Link], line.style_dashed)
lineTpSl(none, stop_y , [Link] , line.style_solid )
lineTpSl(useTP1 and multTP1 != 0, tp1_y, [Link], line.style_dotted)
lineTpSl(useTP2 and multTP2 != 0, tp2_y, [Link], line.style_dotted)
lineTpSl(useTP3 and multTP3 != 0, tp3_y, [Link], line.style_dotted)
var dashboard_loc = locationDashboard == "Top right" ? position.top_right :
locationDashboard == "Top left" ? position.top_left : locationDashboard == "Middle
right" ? position.middle_right : locationDashboard == "Middle left" ?
position.middle_left : locationDashboard == "Bottom right" ?
position.bottom_right : position.bottom_left
var dashboard_size = sizeDashboard == "Tiny" ? [Link] : sizeDashboard == "Small"
? [Link] : [Link]
var dashboard = [Link](dashboard_loc, 2, 20, colorBackground, colorFrame,
3, colorBorder, 3)
dashboard_cell(column, row, txt) => [Link](dashboard, column, row, txt, 0, 0,
[Link], text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column,
row, col)
if [Link] and enableDashboard
dashboard_cell(0, 0 , "Current strategy")
dashboard_cell(0, 1 , "Current sensitivity")
dashboard_cell(0, 2 , "Current Position")
dashboard_cell(0, 3 , "Current trend")
dashboard_cell(0, 4 , "Trend strength")
dashboard_cell(0, 5 , "Volume")
dashboard_cell(0, 6 , "Volatility")
dashboard_cell(0, 7 , "Momentum")
dashboard_cell(0, 8 , "Timeframe trends📊"), table.merge_cells(dashboard, 0, 8,
1, 8)
dashboard_cell(0, 9 , "1 min")
dashboard_cell(0, 10, "3 min")
dashboard_cell(0, 11, "5 min")
dashboard_cell(0, 12, "10 min")
dashboard_cell(0, 13, "15 min")
dashboard_cell(0, 14, "30 min")
dashboard_cell(0, 15, "1 Hour")
dashboard_cell(0, 16, "2 Hour")
dashboard_cell(0, 17, "4 Hour")
dashboard_cell(0, 18, "12 Hour")
dashboard_cell(0, 19, "Daily")
dashboard_cell(1, 0 , strategy)
dashboard_cell(1, 1 , [Link](sensitivity))
dashboard_cell(1, 2 , strategy != "Trend scalper" ? (trigger ? "Buy" :
"Sell") : ""), dashboard_cell_bg(1, 2, strategy != "Trend scalper" ? (trigger ?
[Link] : [Link]) : colorBackground)
dashboard_cell(1, 3 , emaBull ? "Bullish" : "Bearish"), dashboard_cell_bg(1, 3,
emaBull ? [Link] : [Link])
dashboard_cell(1, 4 , [Link](bs, "0.0") + " %")
dashboard_cell(1, 5 , vosc > 0 ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
5, vosc > 0 ? [Link] : [Link])
dashboard_cell(1, 6 , adx > 20 ? "Trending ⚠️
" : "Ranging "),
dashboard_cell_bg(1, 6, adx > 20 ? [Link] : [Link])
dashboard_cell(1, 7 , rsi > 50 ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
7, rsi > 50 ? [Link] : [Link])
dashboard_cell(1, 9 , TF1Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
9 , TF1Bull ? [Link] : [Link])
dashboard_cell(1, 10, TF3Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
10, TF3Bull ? [Link] : [Link])
dashboard_cell(1, 11, TF5Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
11, TF5Bull ? [Link] : [Link])
dashboard_cell(1, 12, TF10Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
12, TF10Bull ? [Link] : [Link])
dashboard_cell(1, 13, TF15Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
13, TF15Bull ? [Link] : [Link])
dashboard_cell(1, 14, TF30Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
14, TF30Bull ? [Link] : [Link])
dashboard_cell(1, 15, TF60Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
15, TF60Bull ? [Link] : [Link])
dashboard_cell(1, 16, TF120Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
16, TF120Bull ? [Link] : [Link])
dashboard_cell(1, 17, TF240Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
17, TF240Bull ? [Link] : [Link])
dashboard_cell(1, 18, TF720Bull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
18, TF720Bull ? [Link] : [Link])
dashboard_cell(1, 19, TFDBull ? "Bullish" : "Bearish"), dashboard_cell_bg(1,
19, TFDBull ? [Link] : [Link])
l(css, k) =>
line lr = enableAutoTrend ? [Link](bar_index - lenTrendChannel + 1, A + k,
bar_index, B + k, extend=[Link], color=css) : na
[Link](lr[1])
l([Link], rmse), l([Link], 0), l([Link], -rmse)
buy = showSignals and bull ? [Link](bar_index, low , close > smartFilter ?
"Smart\nBuy" : "Buy" , xloc.bar_index, [Link], [Link],
label.style_label_up , [Link], [Link]) : na
sell = showSignals and bear ? [Link](bar_index, high, close < smartFilter ?
"Smart\nSell" : "Sell", xloc.bar_index, [Link], [Link] ,
label.style_label_down, [Link], [Link]) : na
tpLabels(tp) =>
tp1Bull = [Link] (rsi, 70), tp2Bull = [Link] (rsi, 75), tp3Bull =
[Link] (rsi, 80)
tp1Bear = [Link](rsi, 30), tp2Bear = [Link](rsi, 25), tp3Bear =
[Link](rsi, 20)
tp1Bull := tp1Bull and (nz([Link](tp1Bull)[1], 9999) > countBull),
tp2Bull := tp2Bull and ([Link](tp1Bull)[1] <= countBull), tp2Bull := tp2Bull
and (nz([Link](tp2Bull)[1], 9999) > countBull), tp3Bull := tp3Bull and
([Link](tp2Bull)[1] <= countBull), tp3Bull := tp3Bull and
(nz([Link](tp3Bull)[1], 9999) > countBull)
tp1Bear := tp1Bear and (nz([Link](tp1Bear)[1], 9999) > countBear),
tp2Bear := tp2Bear and ([Link](tp1Bear)[1] <= countBear), tp2Bear := tp2Bear
and (nz([Link](tp2Bear)[1], 9999) > countBear), tp3Bear := tp3Bear and
([Link](tp2Bear)[1] <= countBear), tp3Bear := tp3Bear and
(nz([Link](tp3Bear)[1], 9999) > countBear)
if strategy != "Trend scalper" and tpLabels
trigger ? (tp == 1 ? tp1Bull : tp == 2 ? tp2Bull : tp3Bull) : (tp == 1 ?
tp1Bear : tp == 2 ? tp2Bear : tp3Bear)
plotshape(tpLabels(1), "", [Link], [Link], trigger ? green : na ,
0, "TP 1", trigger ? green : na , false)
plotshape(tpLabels(2), "", [Link], [Link], trigger ? green : na ,
0, "TP 2", trigger ? green : na , false)
plotshape(tpLabels(3), "", [Link], [Link], trigger ? green : na ,
0, "TP 3", trigger ? green : na , false)
plotshape(tpLabels(1), "", [Link], [Link], trigger ? na : red,
0, "TP 1", trigger ? na : red, false)
plotshape(tpLabels(2), "", [Link], [Link], trigger ? na : red,
0, "TP 2", trigger ? na : red, false)
plotshape(tpLabels(3), "", [Link], [Link], trigger ? na : red,
0, "TP 3", trigger ? na : red, false)
var label zzLabel = na
if [Link](zz) > 12 and enableSwings
if [Link](zz, 0) != [Link](zzOld, 0) or [Link](zz, 1) !=
[Link](zzOld, 1)
if [Link](zz, 2) == [Link](zzOld, 2) and [Link](zz, 3) ==
[Link](zzOld, 3)
[Link](zzLabel)
zzLabel := [Link]([Link]([Link](zz, 1)), [Link](zz, 0), _dir
== 1 ? [Link](zz, 0) > [Link](zz, 4) ? (([Link](zz, 4) < [Link](zz, 8))
? "High" : "HH") : "LH" : [Link](zz, 0) < [Link](zz, 4) ? (([Link](zz, 4)
> [Link](zz, 8)) ? "Low" : "LL") : "HL", xloc.bar_index, [Link],
[Link]([Link], 100), _dir == 1 ? label.style_label_down :
label.style_label_up, _dir == 1 ? [Link] : [Link])
var sr_lines = array.new_line(11, na)
for x = 1 to 10 by 1
line.set_color([Link](sr_lines, x), color=line.get_y1([Link](sr_lines,
x)) >= close ? [Link] : [Link])
if ph or pl
[Link](sr_up_level)
[Link](sr_dn_level)
[Link](sr_strength)
for x = 0 to [Link](pivotvals) - 1 by 1
[hi, lo, strength] = get_sr_vals(x)
if check_sr(hi, lo, strength)
loc = find_loc(strength)
if loc < 5 and strength >= 2
[Link](sr_strength, loc, strength)
[Link](sr_up_level, loc, hi)
[Link](sr_dn_level, loc, lo)
if [Link](sr_strength) > (enableSR ? 5 : 0)
[Link](sr_strength)
[Link](sr_up_level)
[Link](sr_dn_level)
for x = 1 to 10 by 1
[Link]([Link](sr_lines, x))
for x = 0 to [Link](sr_up_level) > 0 ? [Link](sr_up_level) - 1 : na by
1
float mid = math.round_to_mintick(([Link](sr_up_level, x) +
[Link](sr_dn_level, x)) / 2)
rate = 100 * (mid - close) / close
[Link](sr_lines, x + 1, [Link](x1=bar_index, y1=mid, x2=bar_index - 1,
y2=mid, extend=[Link], color=mid >= close ? [Link] : [Link],
style=LSRstyle, width=lineSrWidth))
if showCons and [Link]
dir := hb_ and na(lb_) ? 1 : lb_ and na(hb_) ? -1 : dir
if hb_ and lb_
if dir == 1
zz_ := hb_
else
zz_ := lb_
else
zz_ := hb_ ? hb_ : lb_ ? lb_ : na
for x = 0 to 1000
if na(close) or dir != dir[x]
break
if zz_[x]
if na(pp)
pp := zz_[x]
else
if dir[x] == 1 and zz_[x] > pp
pp := zz_[x]
if dir[x] == -1 and zz_[x] < pp
pp := zz_[x]
if pp != pp[1]
if consCnt > lenCons
if pp > condHi
breakUp := true
if pp < condLo
breakDn := true
if consCnt > 0 and pp <= condHi and pp >= condLo
consCnt += 1
else
consCnt := 0
else
consCnt += 1
if consCnt >= lenCons
if consCnt == lenCons
condHi := H_
condLo := L_
else
[Link](lineUp)
[Link](lineDn)
condHi := [Link](condHi, high)
condLo := [Link](condLo, low )
lineUp := [Link](bar_index, condHi , bar_index - consCnt, condHi ,
color=[Link] , style=line.style_dashed)
lineDn := [Link](bar_index, condLo , bar_index - consCnt, condLo ,
color=[Link], style=line.style_dashed)
fill(plot(condHi, "", na, 1, plot.style_stepline, editable=false), plot(condLo, "",
na, 1, plot.style_stepline, editable=false), paintCons and consCnt > lenCons ?
colorZone : na, "", false)
if box_ob and [Link]
if pvh
[Link](pvh1_price)
[Link](pvh1_time)
[Link](pvh1_price, pv1_high)
[Link](pvh1_time, pv1_time)
if [Link](pvh1_price) > 2
temp_pv_0 := [Link](pvh1_price, 0)
temp_pv_1 := [Link](pvh1_price, 1)
temp_pv_2 := [Link](pvh1_price, 2)
if temp_pv_0 > temp_pv_1
for i = 0 to [Link](pvl1_time) - 1 by 1
temp_ltcmrhh_time = [Link](pvl1_time, i)
if temp_ltcmrhh_time < [Link](pvh1_time, 0)
ltcmrhh_price := [Link](pvl1_price, i)
ltcmrhh_time := temp_ltcmrhh_time
break
if temp_pv_0 < temp_pv_1 and temp_pv_1 > temp_pv_2
[Link](pvh2_price)
[Link](pvh2_time)
[Link](pvh2_price, temp_pv_1)
[Link](pvh2_time, [Link](pvh1_time, 1))
if pvl
[Link](pvl1_price)
[Link](pvl1_time)
[Link](pvl1_price, pv1_low)
[Link](pvl1_time, pv1_time)
if [Link](pvl1_price) > 2
temp_pv_0 := [Link](pvl1_price, 0)
temp_pv_1 := [Link](pvl1_price, 1)
temp_pv_2 := [Link](pvl1_price, 2)
if temp_pv_0 < temp_pv_1
for i = 0 to [Link](pvh1_time) - 1 by 1
temp_htcmrll_time = [Link](pvh1_time, i)
if temp_htcmrll_time < [Link](pvl1_time, 0)
htcmrll_price := [Link](pvh1_price, i)
htcmrll_time := temp_htcmrll_time
break
if temp_pv_0 > temp_pv_1 and temp_pv_1 < temp_pv_2
[Link](pvl2_price)
[Link](pvl2_time)
[Link](pvl2_price, temp_pv_1)
[Link](pvl2_time, [Link](pvl1_time, 1))
if trigger_high > htcmrll_price
if box_sv
loBox = [Link](left=[Link](pvl1_time, 0),
top=[Link](high[bar_index - [Link](pvl1_time, 0)], high[bar_index -
[Link](pvl1_time, 0) + 1]), right=bar_index, bottom=[Link](pvl1_price, 0),
bgcolor=[Link](0, 255, 0, 80), border_color=[Link](0, 255, 0, 80),
extend=[Link])
if [Link](long_boxes) >= 25
[Link]([Link](long_boxes))
[Link](long_boxes, loBox)
htcmrll_price := na
htcmrll_price
if trigger_low < ltcmrhh_price
if box_sv
hiBox = [Link](left=[Link](pvh1_time, 0), top=[Link](pvh1_price,
0), right=bar_index, bottom=[Link](low[bar_index - [Link](pvh1_time, 0)],
low[bar_index - [Link](pvh1_time, 0) + 1]), bgcolor=[Link](255, 0, 0, 80),
border_color=[Link](255, 0, 0, 80), extend=[Link])
if [Link](short_boxes) >= 25
[Link]([Link](short_boxes))
[Link](short_boxes, hiBox)
ltcmrhh_price := na
ltcmrhh_price
if [Link](short_boxes) > 0
for i = [Link](short_boxes) - 1 to 0 by 1
tbox = [Link](short_boxes, i)
top = box.get_top(tbox)
bottom = box.get_bottom(tbox)
if trigger_high > bottom and box.get_left(tbox) + box_test_delay <
bar_index and box_test_sv
if box_hide_gray
box.set_bgcolor(tbox, #00000000)
box.set_border_color(tbox, #00000000)
else
box.set_bgcolor(tbox, [Link](192, 192, 192, 80))
box.set_border_color(tbox, [Link](192, 192, 192, 80))
if trigger_high > top and box.get_left(tbox) + box_fill_delay <
bar_index
if box_stop_sv
box.set_right(tbox, bar_index)
box.set_extend(tbox, [Link])
[Link](short_boxes, i)
if [Link](long_boxes) > 0
for i = [Link](long_boxes) - 1 to 0 by 1
lbox = [Link](long_boxes, i)
top = box.get_top(lbox)
bottom = box.get_bottom(lbox)
if trigger_low < top and box.get_left(lbox) + box_test_delay <
bar_index and box_test_sv
if box_hide_gray
box.set_bgcolor(lbox, #00000000)
box.set_border_color(lbox, #00000000)
else
box.set_bgcolor(lbox, [Link](192, 192, 192, 80))
box.set_border_color(lbox, [Link](192, 192, 192, 80))
if trigger_low < bottom and box.get_left(lbox) + box_fill_delay <
bar_index
if box_stop_sv
box.set_right(lbox, bar_index)
box.set_extend(lbox, [Link])
[Link](long_boxes, i)
if [Link] and algomanVP
for i = 0 to levelNum - 1
histogramLow = rangeLow + histogramHeight * i
histogramHigh = rangeLow + histogramHeight * (i + 1)
[Link](histogramLowList, i, histogramLow)
[Link](histogramHighList, i, histogramHigh)
for i = 0 to lookback - 1
currentBarHeight = high[i] - low[i]
currentBuyVolume = high[i] == low[i] ? 0 : volume[i] * (close[i] - low
[i]) / currentBarHeight
currentSellVolume = high[i] == low[i] ? 0 : volume[i] * (high [i] -
close[i]) / currentBarHeight
for j = 0 to levelNum - 1
histogramLow = [Link](histogramLowList, j)
histogramHigh = [Link](histogramHighList, j)
target = [Link](histogramHigh, high[i]) - [Link](histogramLow,
low[i]) - ([Link](histogramHigh, high[i]) - [Link](histogramHigh, high[i])) -
([Link](histogramLow, low[i]) - [Link](histogramLow, low[i]))
histogramVolumePercentage = target / currentBarHeight
histogramBuyVolume = [Link](histogramBuyVolumeList, j)
histogramSellVolume = [Link](histogramSellVolumeList, j)
if histogramVolumePercentage > 0
[Link](histogramBuyVolumeList, j, histogramBuyVolume +
currentBuyVolume * histogramVolumePercentage)
[Link](histogramSellVolumeList, j, histogramSellVolume +
currentSellVolume * histogramVolumePercentage)
highestHistogramVolume = 0.0
for i = 0 to levelNum - 1
histogramBuyVolume = [Link](histogramBuyVolumeList, i)
histogramSellVolume = [Link](histogramSellVolumeList, i)
histogramVolume = histogramBuyVolume + histogramSellVolume
highestHistogramVolume := [Link](highestHistogramVolume, histogramVolume)
highestHistogramVolume
for i = 0 to levelNum - 1
histogramLow = [Link](histogramLowList, i)
histogramHigh = [Link](histogramHighList, i)
histogramBuyVolume = [Link](histogramBuyVolumeList, i)
histogramSellVolume = [Link](histogramSellVolumeList, i)
histogramVolume = histogramBuyVolume + histogramSellVolume
histogramWidth = levelWidth * histogramVolume / highestHistogramVolume
histogramBuyWidth = [Link](histogramWidth * histogramBuyVolume /
histogramVolume)
histogramSellWidth = [Link](histogramWidth * histogramSellVolume /
histogramVolume)
[Link](buyBars , i, [Link](bar_index + offset + levelWidth - 1 -
histogramBuyWidth, histogramHigh, bar_index + offset + levelWidth - 1
, histogramLow, colorBorderVP, bgcolor=colorBuyVP ))
[Link](sellBars, i, [Link](bar_index + offset + levelWidth - 1 -
histogramBuyWidth, histogramHigh, bar_index + offset + levelWidth - 1 -
histogramBuyWidth - histogramSellWidth, histogramLow, colorBorderVP,
bgcolor=colorSellVP))
barcolor(momentumCandles and candlesMom() ? [Link] : candleColors ? (strategy
== "Trend scalper" ? colorBar : na(countBull) and na(countBear) ? [Link] :
trigger ? green : red) : na, editable=false)
fill(plot(showTrendCloud and periodTrendCloud == "New" ? ema150 : na, "", na,
editable=false), plot(showTrendCloud and periodTrendCloud == "New" ? ema250 : na,
"", na, editable=false), ema150 > ema250 ? [Link]([Link], 70) : ema150 <
ema250 ? [Link]([Link], 70) : na)
plot(enableTrailingSL and trigger and nz([Link](low < trailingStop),
bar_index) > countBull ? trailingStop : na, "", green, 1, plot.style_linebr,
editable=false)
plot(enableTrailingSL and not trigger and nz([Link](high > trailingStop),
bar_index) > countBear ? trailingStop : na, "", red , 1, plot.style_linebr,
editable=false)
p0 = plot(avgOC, "", na , editable=false)
p1 = plot(ema5 , "", colorEma5 , editable=false)
p2 = plot(ema9 , "", colorEma9 , editable=false)
p3 = plot(ema21, "", colorEma21, editable=false)
fill(p0, p1, fillEma5 )
fill(p1, p2, fillEma9 )
fill(p2, p3, fillEma21)
fill(plot(showTrendCloud and periodTrendCloud != "New" and trendcloud != 0 and
close > trendcloud ? trendcloud : na, "", [Link], 1, plot.style_linebr,
editable=false), p0, [Link]([Link], 90))
fill(plot(showTrendCloud and periodTrendCloud != "New" and trendcloud != 0 and
close < trendcloud ? trendcloud : na, "", [Link] , 1, plot.style_linebr,
editable=false), p0, [Link]([Link] , 90))
fill(plot(hma, "", hma > hma[2] ? green : hma < hma[2] ? red : na, editable=false),
plot(hma[2], "", hma > hma[2] ? green : hma < hma[2] ? red : na, editable=false),
hma > hma[2] ? green : hma < hma[2] ? red : na)
// Alerts
f_crossed_over() =>
ret = false
for x = 0 to [Link](sr_up_level) > 0 ? [Link](sr_up_level) - 1 : na by
1
float mid = math.round_to_mintick(([Link](sr_up_level, x) +
[Link](sr_dn_level, x)) / 2)
if close[1] <= mid and close > mid
ret := true
ret
ret
f_crossed_under() =>
ret = false
for x = 0 to [Link](sr_up_level) > 0 ? [Link](sr_up_level) - 1 : na by
1
float mid = math.round_to_mintick(([Link](sr_up_level, x) +
[Link](sr_dn_level, x)) / 2)
if close[1] >= mid and close < mid
ret := true
ret
ret
f_sl_crossed() =>
ret = false
stop = enableTrailingSL ? trailingStop : stop_y
crossBull = low [1] >= stop[1] and low < stop[1] and [Link](low [1] >=
stop[1] and low < stop[1])[1] >= countBull - 1
crossBear = high[1] <= stop[1] and high > stop[1] and [Link](high[1] <=
stop[1] and high > stop[1])[1] >= countBear - 1
ret := trigger[1] ? crossBull : crossBear
f_tp_crossed(tp) =>
ret = false
profit = tp
crossBull = high[1] <= profit[1] and high > profit[1] and [Link](high[1]
<= profit[1] and high > profit[1])[1] >= countBull - 1
crossBear = low [1] >= profit[1] and low < profit[1] and [Link](low [1]
>= profit[1] and low < profit[1])[1] >= countBear - 1
ret := trigger[1] ? crossBull : crossBear
alert01 = (bull and close <= smartFilter) or (bear and close >= smartFilter)
alert02 = bull or bear
alert03 = (bull and close > smartFilter) or (bear and close < smartFilter)
alert04 = bull and close <= smartFilter
alert05 = f_crossed_over()
alert06 = bear and close >= smartFilter
alert07 = bull and close > smartFilter
alert08 = bear and close < smartFilter
alert09 = f_sl_crossed()
alert10 = f_crossed_under()
alert11 = f_tp_crossed(tp1_y)
alert12 = f_tp_crossed(tp2_y)
alert13 = f_tp_crossed(tp3_y)
alert14 = periodTrendCloud == "New" ? [Link](ema150, ema250) : (close <
trendcloud) and (close > trendcloud)[1]
alert15 = periodTrendCloud == "New" ? [Link] (ema150, ema250) : (close >
trendcloud) and (close < trendcloud)[1]
alerts(sym) =>
if alert01 or alert02 or alert03 or alert04 or alert05 or alert06 or alert07 or
alert08 or alert09 or alert10 or alert11 or alert12 or alert13 or alert14 or
alert15
alert("NEW ALERT", alert.freq_once_per_bar_close)
alerts([Link])
alertcondition(alert01, "Any Signal Buy / sell", "Buy or Sell")
alertcondition(alert02, "Any signal Buy/Smart Buy or Sell/Smart Sell", "Buy/Smart
Buy or Sell/Smart Sell")
alertcondition(alert03, "Any signal Smart Buy / Smart Sell", "Smart Buy or Smart
Sell")
alertcondition(alert04, "Buy alert", "Buy")
alertcondition(alert05, "Resistance Broken", "Resistance Broken")
alertcondition(alert06, "Sell alert", "Sell")
alertcondition(alert07, "Smart Buy", "Smart Buy")
alertcondition(alert08, "Smart Sell", "Smart Sell")
alertcondition(alert09, "Stop loss", "Stop loss")
alertcondition(alert10, "Support Broken", "Support Broken")
alertcondition(alert11, "Target 1", "Target 1")
alertcondition(alert12, "Target 2", "Target 2")
alertcondition(alert13, "Target 3", "Target 3")
alertcondition(alert14, "Trend cloud Bearish Alert", "Trend cloud Bearish")
alertcondition(alert15, "Trend cloud Bullish Alert", "Trend cloud Bullish")

Common questions

Powered by AI

The Swing High and Low feature allows traders to capitalize on minor market fluctuations within a broad trend in Algoman NEXT. Strategies include using swing highs and lows as dynamic support and resistance levels to gauge potential reversals and validate trend continuation. Traders might combine these with other indicators like volume profile or MACD to reinforce their decision. By monitoring swing points for significant price reactions, they can optimally place entry orders nearby swing lows in bullish trends or swing highs in bearish trends, or use them as pivot points for trailing stop-loss orders .

Within the Algoman NEXT system, the trend channel function effectively identifies and leverages directional market trends by plotting channels based on recent historical highs and lows. This facilitates the visualization of probable price trajectories within a defined range and provides anchors for setting profit targets or stop-losses. Users can specify the number of historical bars to consider and select the source of the trend channel. This method enables traders to confirm trend strength and direction by observing consistent price movements within or breaking out from these prescribed channels, thereby customizing their strategy to prevailing market trends .

The order block feature in Algoman NEXT enhances trading analysis by marking significant price areas where buy or sell orders are aggregated. Order blocks are identified by plotting demand boxes that highlight regions of substantial buying (green boxes) or selling pressure (red boxes). Additional settings allow traders to adjust how these blocks are tested and filled, and provide options to dim or stop plotting after testing, which helps in visually determining potential price reversals or continuations based on order flow dynamics .

The MACD (Moving Average Convergence Divergence) plays a critical role in assessing market momentum within Algoman NEXT by calculating the difference between two moving averages, typically the 12-period and 26-period EMA, with a 9-period EMA as the signal line. When the MACD crosses above the signal line, it may suggest a bullish momentum, whereas crossing below can indicate bearish trends. This tool aids traders in capturing strong directional movements and validating trend reversals, making it a powerful component for confirming trade signals or the strength of an ongoing trend .

The Algoman NEXT indicator offers several stop-loss management options, including enabling a trailing stop-loss, using percentage-based trailing stop-loss settings, and setting specific take-profit and stop-loss areas. Users can enable a trailing stop-loss, control its behavior with a percentage setting, and define three different take-profit levels (TP1, TP2, TP3) through multipliers. Additionally, the indicator allows for enabling swing high and low detection, which can also inform stop-loss placements .

Trend clouds in the Algoman NEXT indicator provide visual clues about the market trend by highlighting areas above or below which prices tend to trend. Users can customize these trend clouds by choosing the trend cloud period (short-term, long-term, new), enabling trend-only signals, and configuring fast trend cloud settings such as length, to match their trading strategy .

When using the Trend Scalper strategy in Algoman NEXT, traders must consider the interactions between various EMA lengths to identify potential entry and exit points. The strategy measures short to intermediate trend changes by using a series of exponentially moving averages (EMAs) to determine market direction through rising or falling EMA signals. Additionally, users can personalize color settings for bullish and bearish trends to enhance visual clarity during rapidly changing market conditions .

The consolidation zones feature in the Algoman NEXT indicator identifies and highlights price areas where the market is consolidating. Users can define consolidation zones by setting a loopback period and a minimum consolidation length. The consolidation area can be visually painted on the chart, helping traders to identify potential breakout zones or areas of price stability. This feature is useful for decision-making about entering or exiting trades based on market stability .

The Algoman Volume Profile provides insights into trading opportunities by displaying a detailed histogram of traded volumes across different price levels. This helps traders recognize at which prices significant trading activity occurred, allowing them to pinpoint levels of high liquidity and potential support or resistance. By examining the distribution of buy and sell volumes, traders can make informed decisions about entry and exit points, especially around pivotal price levels with high volume interaction, potentially indicating strong market interest .

In Algoman NEXT, support and resistance levels are automatically generated by analyzing historical price pivots and calculating their strength methodically. The system allows for personalization such as choosing line style (dashed, solid, dotted) and width. The analysis considers the number of pivot points within a given width and adjusts levels based on recent highs and lows. This data informs traders of significant price levels that could influence future price movements, assisting in the strategic placement of trades clustering near these levels .

You might also like