IZAKI 0.618 TRADING ZONE
Advertisement

Modjoy-Jurik Price Bands and Range Box [BigBeluga]

Modjoy-Jurik Price Bands and Range Box [BigBeluga]

Unlocking Trading Potential with Modjoy-Jurik Price Bands and Range Box: A Comprehensive Guide

Technical analysis is a crucial aspect of trading, and traders are continually seeking innovative tools to refine their strategies. The Modjoy-Jurik Price Bands and Range Box, also known as BigBeluga, is a cutting-edge technical indicator designed to help traders navigate complex market dynamics. In this article, we will delve into the core logic and trading strategy behind this powerful tool, exploring its potential to enhance trading performance.

Introduction to Modjoy-Jurik Price Bands

The Modjoy-Jurik Price Bands are a type of volatility-based indicator that combines the principles of the Bollinger Bands and the Jurik Volatility Band. Developed by Mark Jurik, a renowned trading expert, this indicator aims to provide a more accurate representation of price movements and volatility. The Modjoy-Jurik Price Bands consist of three main components:

  • Upper Band: represents the upper limit of price movement, calculated based on historical volatility and a moving average.
  • Lower Band: represents the lower limit of price movement, calculated based on historical volatility and a moving average.
  • Median Line: represents the midpoint of the upper and lower bands, serving as a reference point for price movements.

Range Box: A Key Component of BigBeluga

The Range Box, also known as the "BigBeluga," is a complementary tool designed to work in conjunction with the Modjoy-Jurik Price Bands. The Range Box is a visual representation of the price range, providing traders with a clear understanding of the market's current state. The Range Box consists of four main components:

  • High: the highest price reached during a specific period.
  • Low: the lowest price reached during a specific period.
  • Midpoint: the midpoint of the high and low prices.
  • Range: the difference between the high and low prices.

Core Logic and Trading Strategy

The core logic behind the Modjoy-Jurik Price Bands and Range Box lies in their ability to identify key levels of support and resistance, as well as changes in market volatility. By combining these two tools, traders can develop a robust trading strategy that incorporates the following key elements:

  • Trend Identification: the Modjoy-Jurik Price Bands help traders identify the overall trend, while the Range Box provides insight into the market's current state.
  • Support and Resistance: the upper and lower bands of the Modjoy-Jurik Price Bands serve as dynamic support and resistance levels, while the Range Box helps traders identify key levels of support and resistance within the current price range.
  • Volatile Breakouts: the Modjoy-Jurik Price Bands and Range Box can be used to identify potential breakouts, as changes in volatility and price movements often precede significant market moves.

Trading Example: Long and Short Positions

To illustrate the trading strategy, let's consider the following example:

Assume the price is trading within the upper and lower bands of the Modjoy-Jurik Price Bands, with the Range Box indicating a bullish trend. As the price approaches the upper band, traders may consider taking a long position, anticipating a potential breakout. Conversely, if the price approaches the lower band, traders may consider taking a short position, anticipating a potential breakdown.

Traders can also use the Range Box to set stop-loss levels and take-profit targets, based on the current price range and volatility. For example, a stop-loss level can be set at the lower end of the Range Box, while a take-profit target can be set at the upper end of the Range Box.

Conclusion

The Modjoy-Jurik Price Bands and Range Box, also known as BigBeluga, offer a powerful combination of technical analysis tools for traders. By understanding the core logic and trading strategy behind these indicators, traders can refine their approach to the markets and make more informed decisions. Whether you're a seasoned trader or just starting out, incorporating the Modjoy-Jurik Price Bands and Range Box into your trading arsenal can help you navigate complex market dynamics and unlock new trading potential.

Remember to always use proper risk management techniques and combine these indicators with other forms of technical and fundamental analysis to maximize their effectiveness. With practice and experience, you can harness the power of the Modjoy-Jurik Price Bands and Range Box to take your trading to the next level.


Modjoy Exclusive Source Code:

MODJOY-JURIK PRICE BANDS AND RANGE BOX [BIGBELUGA] SOURCE CODE
//@version=5
indicator("Modjoy-Jurik Price Bands and Range Box [BigBeluga]", overlay=true)

//#region ———————————————————— Inputs
// @variable Range Box Length for price analysis
int  box_len     = input.int(200, "Range Box Length", group = "PRICE RANGE")
// @variable Boolean to use adaptive mid-range calculation
bool avg_bool    = input.bool(true, "Adaptive Mid Range", group = "PRICE RANGE")
// @variable Toggle to show/hide Jurik bands
bool show_bands  = input.bool(true, "", inline = "1", group = "Macro Bands")
// @variable Length parameter for Jurik Moving Average
int  length      = input.int(350, "Length", minval=1, inline = "1", group = "Macro Bands")
// @variable Phase parameter for Jurik Moving Average
int  phase       = 100
// @variable Deviation multiplier for band calculation
int  deviation   = input.int(9, "Deviation", group = "Macro Bands")

// @variable Color for upper band
color u_col  = #5ce4b0
// @variable Color for lower band
color l_col  = #e4ae5c
// @variable Color for mid line
color m_col  = chart.fg_color

// @variable Array to store historical prices
var H = array.new(box_len)
//#endregion

//#region ———————————————————— Calculations
//@function Calculates Jurik Moving Average
//@param src (float) Source series
//@param len (int) Length parameter
//@param ph (int) Phase parameter
//@returns (float) Jurik Moving Average value
jma(src, len, ph) =>
    var float jma = na
    var float e0 = 0.0
    var float e1 = 0.0
    var float e2 = 0.0
    phaseRatio = ph < -100 ? 0.5 : ph > 100 ? 2.5 : ph / 100 + 1.5
    beta = 0.45 * (len - 1) / (0.45 * (len - 1) + 2)
    alpha = math.pow(beta, phaseRatio)
    e0 := (1 - alpha) * src + alpha * nz(e0[1])
    e1 := (src - e0) * (1 - beta) + beta * nz(e1[1])
    e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * math.pow(1 - alpha, 2) + math.pow(alpha, 2) * nz(e2[1])
    jma := e2 + nz(jma[1])
    jma

// Calculate smooth price using Jurik MA
smooth_price = jma(close, length, phase)

// Calculate range using Jurik MA on ATR
range_ = jma(ta.atr(200), 200, phase) * deviation

// Calculate upper and lower bands
upper_band = smooth_price + range_
lower_band = smooth_price - range_

// Store historical prices in array on the last bar
if barstate.islast
    for i = 0 to box_len
        H.push(close[i])

// Calculate high, low, and mid prices from the historical array
h = H.max()
l = H.min()
m = avg_bool ? H.avg() : (h+l) /2

// Calculate percentage difference and mid price
float diff  = (close-m) / close * (timeframe.isintraday ? 1000 : 100)
float mid   = (close + m) /2

// Determine colors based on price position
color color       = close > m ? u_col : l_col
color mid_col     = last_bar_index - bar_index < box_len 
                     ? (bar_index % 8 == 0 ? color.new(m_col, 50) : na) 
                     : (bar_index % 2 == 0 ? color.new(m_col, 20) : na)
color color_upper = last_bar_index - bar_index < box_len 
                     ? (bar_index % 8 == 0 ? color.new(u_col, 50) : na) 
                     : u_col

color color_lower = last_bar_index - bar_index < box_len 
                     ? (bar_index % 8 == 0 ? color.new(l_col, 50) : na) 
                     : l_col

//#endregion

//#region ———————————————————— Plotting
// Plot Jurik bands and smooth price with fills at extreams
plot(show_bands ? smooth_price : na, "Smooth Price", mid_col, 1)
up    = plot(show_bands ? upper_band : na, "Upper Band", color_upper, 2)
lw    = plot(show_bands ? lower_band : na, "Lower Band", color_lower, 2)
price = plot(hl2, display = display.none, editable = false)

fill(up, price, hl2, upper_band, hl2 > upper_band ? color.new(u_col, 50) : na, na)
fill(lw, price, lower_band, hl2, na, hl2 < lower_band ? color.new(l_col, 50) : na)


// Draw Range Box, Bar Direction, and Dashboard on the last bar
if barstate.islast
    // Create and delete Range Box
    box.delete(box.new(bar_index[box_len], h, bar_index, l, na, 1, line.style_solid, extend.none, xloc.bar_index, color.new(m_col, 90))[1])

    // Create and delete visual elements
    line.delete(line.new(bar_index+10, l, bar_index+10, h, xloc.bar_index, extend.none, color.new(m_col, 30))[1])
    line.delete(line.new(bar_index[box_len], m, bar_index, m, xloc.bar_index, extend.none, color.new(m_col, 50))[1])
    line.delete(line.new(bar_index+10, m, bar_index+10, close, xloc.bar_index, extend.none, color, width = 7)[1])

    // Create and delete label for percentage difference
    label.delete(label.new(bar_index+10, mid, str.tostring(diff, format.percent),
                 color      = #00000000, 
                 style      = label.style_label_left, 
                 textcolor  = diff > 0 ? u_col : l_col)[1])
    
    // Create Dashboard
    var dash = table.new(position.top_right, 10, 10, na, na, 0, color.new(m_col, 90), 1)
    dash.cell(0, 0, syminfo.ticker, text_color = m_col)    
    dash.cell(1, 0, str.tostring(close), text_color = m_col)
    
    dash.cell(0, 1, "High Range:", text_color = m_col)
    dash.cell(1, 1, str.tostring(h), text_color = u_col)

    dash.cell(0, 2, "Mid Range:", text_color = m_col)
    dash.cell(1, 2, str.tostring(math.round(m, 2)), text_color = m_col)

    dash.cell(0, 3, "Low Range:", text_color = m_col)
    dash.cell(1, 3, str.tostring(l), text_color = l_col)

    dash.cell(0, 4, "Trend Direction:", text_color = m_col)
    dash.cell(1, 4, close > m ? "Up" : "Down", text_color = color)
    
//#endregion


⚠️ High Risk Warning

Trading Forex and Futures involves a very high degree of risk and may not be suitable for all investors. The high degree of leverage can result in the complete loss of your funds. These indicators are educational tools and do not guarantee profits. Please trade responsibly with capital you can afford to lose.