IZAKI 0.618 TRADING ZONE
Advertisement

Modjoy-Open Intrest / Volume / Liquidations (Suite) [BigBeluga]

Modjoy-Open Intrest / Volume / Liquidations (Suite) [BigBeluga]

Unlocking Trading Potential with Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga]

The world of trading is constantly evolving, with new tools and strategies emerging to help traders gain a competitive edge. One such innovation is the Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga], a comprehensive trading suite that provides real-time insights into market dynamics. In this article, we will delve into the core logic and trading strategy behind this powerful tool, exploring its potential to revolutionize the way traders approach the markets.

Understanding the Core Logic

The Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga] is built on a robust framework that analyzes three key components of market activity: open interest, volume, and liquidations. By examining these factors in tandem, traders can gain a deeper understanding of market sentiment and make more informed decisions.

  • Open Interest: This metric measures the number of outstanding contracts or positions held by traders in a particular market. High open interest indicates a strong level of participation and commitment from traders, while low open interest may suggest a lack of conviction.
  • Volume: Volume represents the amount of trading activity occurring in a market, with high volumes often indicating strong buying or selling pressure. By analyzing volume patterns, traders can identify trends and potential breakouts.
  • Liquidations: Liquidations occur when traders are forced to close their positions due to margin calls or other factors. This metric provides valuable insights into market stress and potential areas of support or resistance.

Trading Strategy

The Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga] offers a range of trading strategies that leverage these metrics to identify profitable opportunities. Some key approaches include:

Mean Reversion Strategy

This strategy involves identifying markets with high open interest and volume, but low liquidations. This combination may indicate a strong trend, and traders can use mean reversion techniques to capitalize on potential pullbacks or reversals.

Breakout Strategy

By analyzing volume and open interest, traders can identify potential breakouts and trend reversals. High volume and increasing open interest may indicate a strong move, while low volume and decreasing open interest may suggest a false breakout.

Liquidation-Based Strategy

Traders can use liquidation data to identify areas of support or resistance, as well as potential trend reversals. High liquidations may indicate a market extreme, while low liquidations may suggest a lack of conviction among traders.

Conclusion

The Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga] offers a powerful toolkit for traders seeking to gain a deeper understanding of market dynamics. By analyzing open interest, volume, and liquidations, traders can develop a range of strategies to capitalize on market trends and potential breakouts. Whether you're a seasoned trader or just starting out, this comprehensive suite has the potential to revolutionize your trading approach and help you achieve your financial goals.

Key Takeaways:

  • The Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga] provides real-time insights into market dynamics.
  • The suite analyzes open interest, volume, and liquidations to identify profitable trading opportunities.
  • Traders can use the suite to develop mean reversion, breakout, and liquidation-based strategies.

Stay ahead of the curve with the Modjoy-Open Interest/Volume/Liquidations (Suite) [BigBeluga]. Discover the power of data-driven trading and unlock your full potential in the markets.


Modjoy Exclusive Source Code:

MODJOY-OPEN INTREST / VOLUME / LIQUIDATIONS (SUITE) [BIGBELUGA] SOURCE CODE
// This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International  

//@version=5
indicator("Modjoy-Open Intrest / Volume / Liquidations (Suite) [BigBeluga]", "Open Intrest / Volume / Liquidations [BigBeluga]", overlay = false)

visiOI = input.bool(false, "Visible Range", inline = "0", group = "Open Intrest")
chanOI = input.bool(false, "Reset OI", "Reset OI on timeframe change", "z", group = "Open Intrest")
tfchOI = input.timeframe("D", "", inline = "z", group = "Open Intrest")
dispOI = input.bool (true, "Display", "Display Open Intrest Style", inline = "1", group = "Open Intrest")
modeOI = input.string("OI", "", ["OI", "OI ▲ - OI ▼", "OI ▲", "OI ▼", "OI RSI", "DELTA"], inline = "1", group = "Open Intrest")
stylOI = input.string("Candle", "", ["Candle", "Line"], inline = "1", group = "Open Intrest")

nLcss = input.color(#70ccbd, "Longs   ►  ", inline = "2", group = "Open Intrest")
lLcss = input.color(#089981, " ● ", inline = "2", group = "Open Intrest")
nScss = input.color(#faa1a4, "Short   ►  ", inline = "3", group = "Open Intrest")
lScss = input.color(#f23645, " ● ", inline = "3", group = "Open Intrest")
duocs = input.color(#388e3c, "Delta   ►  ", inline = "4", group = "Open Intrest")
dnocs = input.color(#b22833, " ● ", inline = "4", group = "Open Intrest")
loics = input.color(#ffffff, " ● ", inline = "4", group = "Open Intrest")

rsioi = input.int(14, "RSI     ►  ", inline = "5", group = "Open Intrest", minval = 2)
rsisc = input.string("Close", "", ["Close", "Open", "High", "Low"], inline = "5", group = "Open Intrest")
rsima = input.int(14, "RSI MA  ►  ", inline = "6", group = "Open Intrest", minval = 2)
masrc = input.string("EMA", "", ["EMA", "SMA", "WMA", "VWMA", "RMA"], inline = "6", group = "Open Intrest")
usema = input.bool(false, "", inline = "6", group = "Open Intrest")

binanceUSDT = input.bool(true, 'Binance USDT', inline = 'a1', group = "Open Intrest")
binanceUSD  = input.bool(true, 'Binance USD' , inline = 'a1', group = "Open Intrest")
binanceBUSD = input.bool(true, 'Binance BUSD', inline = 'b1', group = "Open Intrest")
krakenUSD   = input.bool(true, 'Kraken USD'  , inline = 'b1', group = "Open Intrest")
bitmexUSDT  = input.bool(true, 'BitMEX USDT ', inline = 'c1', group = "Open Intrest")
bitmexUSD   = input.bool(true, 'BitMEX USD'  , inline = 'c1', group = "Open Intrest")

dispVOL = input.bool(false, "Display", inline = "1", group = "INTRADAY VOLUME")
modeVOL = input.string("▲δ - ▼δ", "", ["▲δ - ▼δ", "▲δ", "▼δ", "DELTA", "CVD"], inline = "1", group = "INTRADAY VOLUME")
ltfVOL  = input.timeframe("1", "", inline = "1", group = "INTRADAY VOLUME")
cssupv  = input.color(#d1d4dc, "", inline = "1", group = "INTRADAY VOLUME")
cssdnv  = input.color(#787b86, "", inline = "1", group = "INTRADAY VOLUME")
smlVOL  = input.bool(true, "     >", inline = "2", group = "INTRADAY VOLUME")
thrsml  = input.float(1.5, "", inline = "2", group = "INTRADAY VOLUME", minval = 1)
smlupc  = input.color(#70ccbd, " ● ", inline = "2", group = "INTRADAY VOLUME")
smldnc  = input.color(#faa1a4, "", inline = "2", group = "INTRADAY VOLUME")
medVOL  = input.bool(true, "     >", inline = "3", group = "INTRADAY VOLUME")
medsml  = input.float(2.5, "", inline = "3", group = "INTRADAY VOLUME", minval = 1)
medupc  = input.color(#42bda8, " ● ", inline = "3", group = "INTRADAY VOLUME")
meddnc  = input.color(#f77c80, "", inline = "3", group = "INTRADAY VOLUME")
higVOL  = input.bool(true, "     >", inline = "4", group = "INTRADAY VOLUME")
higsml  = input.float(3.5, "", inline = "4", group = "INTRADAY VOLUME", minval = 1)
higupc  = input.color(#056656, " ● ", inline = "4", group = "INTRADAY VOLUME")
higdnc  = input.color(#b22833, "", inline = "4", group = "INTRADAY VOLUME")

normVOL = input.bool(false, "Normalize Volume       ", inline = "q", group = "LIQUIDATIONS")
normLEN = input.int(14, "", inline = "q", group = "LIQUIDATIONS", minval = 1)
dispLIQ = input.bool(false, "Display", inline = "1", group = "LIQUIDATIONS")
modeLIQ = input.string("Total Liquidations", "", ["Total Liquidations", "Long Liquidations", "Short Liquidations", "Cumulative Liquidations"], inline = "1", group = "LIQUIDATIONS")
ltfLIQ  = input.timeframe("", "", inline = "1", group = "LIQUIDATIONS")
lLIQcss = input.color(#22ab94, "Longs        ►  ", inline = "2", group = "LIQUIDATIONS")
sLIQcss = input.color(#f7525f, "Shorts        ►  ", inline = "3", group = "LIQUIDATIONS")
cLIQcss = input.color(#b2b5be, "Cumulative   ►  ", inline = "4", group = "LIQUIDATIONS")


type oirsi
    float rsi
    float sma
    float o
    float h
    float l
    float c

type intrest
    float diff
    float o
    float h
    float l
    float c

type oipositions
    float longs
    float shorts
    float delta

type oisuite
    intrest     aggregated
    oipositions position

type bar
    float o = open
    float h = high
    float l = low
    float c = close
    float v = volume
    int   n = bar_index
    int   t = time

bar b = bar.new()

// Liquidations

type cauge
    float uV = 0
    float dV = 0

dynamic_normalization(_x,_l,_m) =>
    n = _x+(_x*(_m-ta.sma(_x,_l))/ta.sma(_x,_l))


getLIQ() =>

    v = normVOL ? dynamic_normalization(b.v, normLEN, 1) : b.v

    uW = ((b.h - math.max(b.o, b.c)) / (b.h - b.l)) * 100
    dW = ((math.min(b.o, b.c) - b.l) / (b.h - b.l)) * 100

    cauge.new(v * (uW / 100), v * (dW / 100))

request() =>
    cauge out = 
         request.security(
               syminfo.tickerid
             , ltfLIQ
             , getLIQ()
             )
    na(out) ? cauge.new(0, 0) : out


plot(dispLIQ and (modeLIQ == "Total Liquidations" or modeLIQ == "Long Liquidations" ) ?                                                     request().dV  : na, "Longs Liquidations" , lLIQcss, 1, plot.style_columns)
plot(dispLIQ and (modeLIQ == "Total Liquidations" or modeLIQ == "Short Liquidations") ? (modeLIQ == "Shorts Liquidations" ? request().uV : -request().uV) : na, "Shorts Liquidations", sLIQcss, 1, plot.style_columns)
plot(dispLIQ and  modeLIQ == "Cumulative Liquidations" ? (request().uV.abs() + request().dV.abs()).abs() : na, "Cumulative Liquidations", cLIQcss, 1, plot.style_columns)

// Open Intrest

getOI(simple string prefix, simple string base, simple string p) =>

    intrest oi = request.security(
         prefix 
         + ":" 
         + base 
         + p
         , timeframe.period
         , intrest.new(
               b.c - b.c[1]
             , b.o
             , b.h
             , b.l
             , b.c
             )
         , ignore_invalid_symbol = true
         )

    na(oi) ? intrest.new(0, 0, 0, 0, 0) : oi


intrest oi1 = getOI("BINANCE", syminfo.basecurrency                                         , "USDT.P_OI")
intrest oi2 = getOI("BINANCE", syminfo.basecurrency                                         , "USD.P_OI" )
intrest oi3 = getOI("BINANCE", syminfo.basecurrency                                         , "BUSD.P_OI")
intrest oi4 = getOI("KRAKEN" , syminfo.basecurrency                                         , "USD.P_OI" )
intrest oi5 = getOI("BITMEX" , syminfo.basecurrency == "BTC" ? "XBT" : syminfo.basecurrency , "USDT.P_OI")
intrest oi6 = getOI("BITMEX" , syminfo.basecurrency == "BTC" ? "XBT" : syminfo.basecurrency , "USD.P_OI ")


method darkcss(color css) =>

    factor = 0.50

    _blue  = color.b(css) * (1 - factor)
    _red   = color.r(css) * (1 - factor)
    _green = color.g(css) * (1 - factor)

    color.rgb(_red, _green, _blue, 0)

method abs(float src) =>
    math.abs(src)


method cCH(float src, simple string tf) =>
    pass   = timeframe.change(tf)
    value  = request.security(
               syminfo.tickerid
             , ""
             , src
             , lookahead = barmerge.lookahead_on
             )
    start  = ta.valuewhen(pass, value, 0)
    change = (value - start) / start * 100
    pass ? na : change

getDeltaOI() =>
    deltaOI = 
           (binanceUSDT ? oi1.diff       : 0) 
         + (binanceUSD  ? oi2.diff / b.c : 0) 
         + (binanceBUSD ? oi3.diff       : 0) 
         + (krakenUSD   ? oi4.diff / b.c : 0) 
         + (bitmexUSDT  ? oi5.diff / b.c : 0) 
         + (bitmexUSD   ? oi6.diff / b.c : 0)

    intrest type = visiOI ? (time >= chart.left_visible_bar_time ? intrest.new(deltaOI, 0, 0, 0, 0) : intrest.new(0, 0, 0, 0, 0)) : intrest.new(deltaOI, 0, 0, 0, 0)
    na(type) or type.diff == 0 ? intrest.new(0, 0, 0, 0, 0) : type

getAggregatedOI() =>

    c = 
       (binanceUSDT ? oi1.c       : 0) 
     + (binanceUSD  ? oi2.c / b.c : 0) 
     + (binanceBUSD ? oi3.c       : 0) 
     + (krakenUSD   ? oi4.c / b.c : 0) 
     + (bitmexUSDT  ? oi5.c / b.c : 0) 
     + (bitmexUSD   ? oi6.c / b.c : 0)

    o = 
       (binanceUSDT ? oi1.o       : 0) 
     + (binanceUSD  ? oi2.o / b.c : 0) 
     + (binanceBUSD ? oi3.o       : 0) 
     + (krakenUSD   ? oi4.o / b.c : 0) 
     + (bitmexUSDT  ? oi5.o / b.c : 0) 
     + (bitmexUSD   ? oi6.o / b.c : 0)

    h = 
       (binanceUSDT ? oi1.h       : 0) 
     + (binanceUSD  ? oi2.h / b.c : 0) 
     + (binanceBUSD ? oi3.h       : 0) 
     + (krakenUSD   ? oi4.h / b.c : 0) 
     + (bitmexUSDT  ? oi5.h / b.c : 0) 
     + (bitmexUSD   ? oi6.h / b.c : 0)

    l = 
       (binanceUSDT ? oi1.l       : 0) 
     + (binanceUSD  ? oi2.l / b.c : 0) 
     + (binanceBUSD ? oi3.l       : 0) 
     + (krakenUSD   ? oi4.l / b.c : 0) 
     + (bitmexUSDT  ? oi5.l / b.c : 0) 
     + (bitmexUSD   ? oi6.l / b.c : 0)

    intrest type = visiOI ? (time >= chart.left_visible_bar_time ? intrest.new(0, o, h, l, c) : intrest.new(0, 0, 0, 0, 0)) : intrest.new(0, o, h, l, c)
    dispOI ? (na(type) or type.c == 0 ? intrest.new(0, 0, 0, 0, 0) : type) : intrest.new(0, 0, 0, 0, 0)

getNetOI() =>

    intrest deltaOI = getDeltaOI()

    nL = deltaOI.diff > 0 and b.c > b.o
    nS = deltaOI.diff > 0 and b.c < b.o

    lL = deltaOI.diff < 0 and b.c < b.o
    lS = deltaOI.diff < 0 and b.c > b.o

    eL = ta.cum(nL ? deltaOI.diff : 0)
    eS = ta.cum(nS ? deltaOI.diff : 0)

    xL = ta.cum(lL ? deltaOI.diff : 0)
    xS = ta.cum(lS ? deltaOI.diff : 0)

    cL = (eL - xL.abs())
    cS = (eS - xS.abs())

    gU = (cL - cL[1]).abs()
    gD = (cS - cS[1]).abs()

    dT = gU > gD ? gU : -gD

    oipositions type = visiOI ? (time >= chart.left_visible_bar_time ? oipositions.new(cL, cS, dT) : oipositions.new(0, 0, 0)) : oipositions.new(cL, cS, dT)
    dispOI ? (na(type) or type.longs == 0 ? oipositions.new(0, 0, 0) : type) : oipositions.new(0, 0, 0)

getMA(simple string mode, float src, simple int len) =>

    ma = switch mode
        "SMA"  => ta.sma (src, len)
        "EMA"  => ta.ema (src, len)
        "WMA"  => ta.wma (src, len)
        "VWMA" => ta.vwma(src, len)
        "RMA"  => ta.rma (src, len)

getRsiOI(intrest oi) =>

    src = switch rsisc
        "Close" => oi.c
        "Open"  => oi.o
        "High"  => oi.h
        "Low"   => oi.l
 
    rsi = ta.rsi(src, rsioi)
    sma = getMA(masrc, rsi, rsima)

    oirsi type = visiOI ? (time >= chart.left_visible_bar_time ? oirsi.new(rsi, sma, ta.rsi(oi.o, rsioi), ta.rsi(oi.h, rsioi), ta.rsi(oi.l, rsioi), ta.rsi(oi.c, rsioi)) : oirsi.new(0, 0, 0, 0, 0, 0)) : oirsi.new(rsi, sma, ta.rsi(oi.o, rsioi), ta.rsi(oi.h, rsioi), ta.rsi(oi.l, rsioi), ta.rsi(oi.c, rsioi))
    na(type) or type.rsi == 0 ? oirsi.new(0, 0, 0, 0, 0, 0) : type


oisuite     oibin = oisuite.new(getAggregatedOI(), getNetOI())
intrest     oi    = oibin.aggregated
oipositions oicum = oibin.position
oirsi       rsi   = getRsiOI(oi)

if chanOI

    oi.diff      := oi.diff     .cCH(tfchOI)
    oi.c         := oi.c        .cCH(tfchOI)
    oicum.longs  := oicum.longs .cCH(tfchOI)
    oicum.shorts := oicum.shorts.cCH(tfchOI)
    stylOI       := "Line"

color oicss  =  modeOI == "OI"                               ? (oi.c == 0        ? na : (oi.c         > oi.o            ? duocs : dnocs)) : na
color oiLcss = (modeOI == "OI ▲ - OI ▼" or modeOI == "OI ▲") ? (oicum.delta == 0 ? na : (oicum.longs  > oicum.longs [1] ? nLcss : lLcss)) : na
color oiScss = (modeOI == "OI ▲ - OI ▼" or modeOI == "OI ▼") ? (oicum.delta == 0 ? na : (oicum.shorts > oicum.shorts[1] ? nScss : lScss)) : na
color dltCSS =  modeOI == "DELTA"                            ? (oicum.delta == 0 ? na : (oicum.delta  > 0               ? lLcss : lScss)) : na
color rsiLVL =  modeOI == "OI RSI"                           ? (oi.c == 0        ? na :                                                             loics.darkcss())   : na
color rsiCSS =  modeOI == "OI RSI"                           ? (oi.c == 0        ? na : (stylOI == "Line" ? loics : (rsi.rsi > rsi.rsi[1] ? loics : loics.darkcss()))) : na


plot(modeOI == "OI RSI" and stylOI == "Line" and dispOI ? rsi.rsi : na, "OI RSI", rsiCSS, 1)
plot(modeOI == "OI RSI"                      and dispOI ?   70    : na, "RSI 70", rsiLVL, 2)
plot(modeOI == "OI RSI"                      and dispOI ?   30    : na, "RSI 30", rsiLVL, 1)
plot(modeOI == "OI RSI" and usema            and dispOI ? rsi.sma : na, "RSI MA", rsiLVL, 1)

switch modeOI
    "OI"          => oicum := oipositions.new(na, na, na)                                                               , rsi := oirsi.new(na, na, na, na, na, na)
    "OI ▲ - OI ▼" => oi    := intrest    .new(na, na, na, na)                                                           , rsi := oirsi.new(na, na, na, na, na, na)
    "OI ▲"        => oicum := oipositions.new(oicum.longs, na, na )                  , oi := intrest.new(na, na, na, na), rsi := oirsi.new(na, na, na, na, na, na)
    "OI ▼"        => oicum := oipositions.new(na, oicum.shorts, na)                  , oi := intrest.new(na, na, na, na), rsi := oirsi.new(na, na, na, na, na, na)
    "OI RSI"      => oicum := oipositions.new(na, na, na)                            , oi := intrest.new(na, na, na, na)
    "DELTA"       => oicum := oipositions.new(na, na, oicum.delta)                   , oi := intrest.new(na, na, na, na), rsi := oirsi.new(na, na, na, na, na, na)



plot(stylOI == "Line" and modeOI == "OI"           and oi.c         != 0 and dispOI ? oi.c         : na, "OI Line"       , loics , 1, plot.style_linebr)
plot(stylOI == "Line" and modeOI == "OI ▲"         and oicum.longs  != 0 and dispOI ? oicum.longs  : na, "OI Longs Line" , oiLcss, 1, plot.style_linebr)
plot(stylOI == "Line" and modeOI == "OI ▼"         and oicum.shorts != 0 and dispOI ? oicum.shorts : na, "OI Shorts Line", oiScss, 1, plot.style_linebr)
plot(stylOI == "Line" and modeOI == "OI ▲ - OI ▼"  and oicum.longs  != 0 and dispOI ? oicum.longs  : na, "OI Longs Line" , oiLcss, 1, plot.style_linebr)
plot(stylOI == "Line" and modeOI == "OI ▲ - OI ▼"  and oicum.shorts != 0 and dispOI ? oicum.shorts : na, "OI Shorts Line", oiScss, 1, plot.style_linebr)
plot(                     modeOI == "DELTA"        and oicum.delta  != 0 and dispOI ? oicum.delta  : na, "OI Delta"      , dltCSS, 1, plot.style_columns)


switch stylOI
    "Line" => oicum := oipositions.new(na, na, na), oi := intrest.new(na, na, na, na), rsi := oirsi.new(na, na, na, na, na, na)
    => na

switch dispOI
    false =>
        rsi.o   := na
        rsi.h   := na 
        rsi.l   := na
        rsi.c   := na
        rsi.rsi := na


plotcandle(oi.o, oi.h, oi.l, oi.c, "Open Interest", oicss, oicss, bordercolor = oicss, editable = true)
plotcandle(oicum.longs [1], oicum.longs , oicum.longs , oicum.longs , "Longs" , oiLcss, oiLcss, bordercolor = oiLcss, editable = true)
plotcandle(oicum.shorts[1], oicum.shorts, oicum.shorts, oicum.shorts, "Shorts", oiScss, oiScss, bordercolor = oiScss, editable = true)
plotcandle(rsi.o, rsi.h, rsi.l, rsi.rsi, "OI RSI", rsiCSS, rsiCSS, bordercolor = rsiCSS, editable = true)

bgcolor(timeframe.change(tfchOI) and chanOI and modeOI != "OI RSI" and modeOI != "DELTA" ? color.new(chart.fg_color, 95) : na)

// Intraday Volume

type ltfvolume
    float upvol
    float dnvol
    float delta
    float cvd
    float upavg
    float dnavg

[buyv, sellv] = request.security_lower_tf(syminfo.tickerid, ltfVOL, [b.c > b.o ? b.v : 0, b.c < b.o ? b.v : 0], true, ignore_invalid_timeframe = true)

getLTF() =>

    var float[] up = array.new()
    var float[] dn = array.new() 

    buy   = buyv .sum()
    sell  = sellv.sum()
    delta = buy - sell
    cvd   = ta.cum(delta)
    
    up.unshift( buy )
    dn.unshift(-sell)

    ltfvolume.new(buy, -sell, delta, cvd, up.avg(), dn.avg())


ltfvolume ltfvol = getLTF()


color smlup = switch
    higVOL and ltfvol.upvol >= (ltfvol.upavg * higsml) => higupc
    medVOL and ltfvol.upvol >= (ltfvol.upavg * medsml) => medupc
    smlVOL and ltfvol.upvol >= (ltfvol.upavg * thrsml) => smlupc
    => cssupv

color smldn = switch
    higVOL and ltfvol.dnvol <= (ltfvol.dnavg * higsml) => higdnc
    medVOL and ltfvol.dnvol <= (ltfvol.dnavg * medsml) => meddnc
    smlVOL and ltfvol.dnvol <= (ltfvol.dnavg * thrsml) => smldnc
    => cssdnv

plot((modeVOL == "▲δ - ▼δ" or modeVOL == "▲δ") and dispVOL ? (modeVOL == "▲δ" ? ltfvol.upvol.abs() : ltfvol.upvol) : na, "Bullish Volume", smlup, 1, plot.style_columns)
plot((modeVOL == "▲δ - ▼δ" or modeVOL == "▼δ") and dispVOL ? (modeVOL == "▼δ" ? ltfvol.dnvol.abs() : ltfvol.dnvol) : na, "Bearish Volume", smldn, 1, plot.style_columns)
plot( modeVOL == "CVD"                         and dispVOL ?                                          ltfvol.cvd   : na, "CVD"           , chart.fg_color, 1, plot.style_linebr)
plot( modeVOL == "DELTA" and dispVOL                       ?                                          ltfvol.delta : na, "Delta Volume"  , ltfvol.delta > 0 ? cssupv : cssdnv, 1, plot.style_columns)



⚠️ 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.