Relative Volatility Intelligent index conversion

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #226162 quote
    Alessandro Furlani
    Participant
    Average

    I need to convert an MT4 indicator to PRT. The indicator measure the volatility in a more intelligent mode than the classic indicator so, i think it could be interesting for many users.

    The code is released for free.

    The indicator contains also some push Alarm feature that can be discarded to the conversion. It is important to respect the flexibility of the configuration parameters because it’s very important to adapt the indicator to the strategy wanted.

    Let me know

    Thanks

    RVLII1.0-1.mq4
    #232177 quote
    Iván González
    Moderator
    Master
    Ciao, puoi incollare il codice qui? e alcuni screenshot
    #258951 quote
    Iván González
    Moderator
    Master

    Here’s the indicator:

    //--------------------------------------------
    // PRC_Relative Volatility Intelligent Index
    // version = 0
    // 12.03.2026
    // Iván González @ www.prorealcode.com
    // Sharing ProRealTime knowledge
    //--------------------------------------------
    // Parameters:
    //   volPeriod   = StdDev and Wilder averaging period (14)
    //   volSmooth   = Final EMA smoothing period (10)
    //   flPeriod    = Floating levels lookback (50), 0 = fixed levels
    //   zoneUp      = Upper zone (80), zoneDown = Lower zone (20)
    //   colorMode   = 1: slope, 2: middle cross, 3: level cross
    //--------------------------------------------
    // --- Parameters ---
    //--------------------------------------------
    volPeriod = 14
    volSmooth = 10
    flPeriod = 50
    zoneUp = 80
    zoneDown = 20
    colorMode = 3
    //--------------------------------------------
    // --- Source ---
    //--------------------------------------------
    src = close
    //--------------------------------------------
    // --- Standard Deviation ---
    //--------------------------------------------
    dev = STD[volPeriod](src)
    //--------------------------------------------
    // --- Directional volatility split ---
    //--------------------------------------------
    IF barindex > 0 THEN
    IF src > src[1] THEN
    uVol = dev
    dVol = 0
    ELSIF src < src[1] THEN
    uVol = 0
    dVol = dev
    ELSE
    uVol = 0
    dVol = 0
    ENDIF
    ELSE
    uVol = 0
    dVol = 0
    ENDIF
    //--------------------------------------------
    // --- Wilder (SMMA) averaging of each side ---
    //--------------------------------------------
    avgU = WilderAverage[volPeriod](uVol)
    avgD = WilderAverage[volPeriod](dVol)
    //--------------------------------------------
    // --- RVI raw: ratio 0-100 ---
    //--------------------------------------------
    IF (avgU + avgD) <> 0 THEN
    rviRaw = 100 * avgU / (avgU + avgD)
    ELSE
    rviRaw = 50
    ENDIF
    //--------------------------------------------
    // --- Final EMA smoothing ---
    //--------------------------------------------
    rviSmooth = ExponentialAverage[volSmooth](rviRaw)
    //--------------------------------------------
    // --- Floating levels (dynamic OB/OS) ---
    // When flPeriod > 0: scale zoneUp/zoneDown within the recent RVI range
    // When flPeriod = 0: use zoneUp/zoneDown as fixed values
    //--------------------------------------------
    IF flPeriod > 0 THEN
    hiRvi = highest[flPeriod](rviSmooth)
    loRvi = lowest[flPeriod](rviSmooth)
    levUp = loRvi + (hiRvi - loRvi) * zoneUp / 100
    levDn = loRvi + (levUp - loRvi) * zoneDown / 100
    ELSE
    levUp = zoneUp
    levDn = zoneDown
    ENDIF
    
    
    levMid = (levUp + levDn) / 2
    //--------------------------------------------
    // --- Trend detection (3 modes) ---
    //--------------------------------------------
    IF colorMode = 3 THEN
    // Level cross: colored above upper / below lower, neutral between
    IF rviSmooth > levUp THEN
    trd = 1
    ELSIF rviSmooth < levDn THEN
    trd = -1
    ELSE
    trd = 0
    ENDIF
    ELSIF colorMode = 2 THEN
    // Middle line cross
    IF rviSmooth > levMid THEN
    trd = 1
    ELSIF rviSmooth < levMid THEN
    trd = -1
    ELSE
    trd = 0
    ENDIF
    ELSE
    // Slope change
    IF rviSmooth > rviSmooth[1] THEN
    trd = 1
    ELSIF rviSmooth < rviSmooth[1] THEN
    trd = -1
    ELSE
    trd = 0
    ENDIF
    ENDIF
    //--------------------------------------------
    // --- Colors: green=bullish, red=bearish, gray=neutral ---
    //--------------------------------------------
    IF trd = 1 THEN
    // LimeGreen
    rr = 50
    gg = 205
    bb = 50
    ELSIF trd = -1 THEN
    // OrangeRed
    rr = 255
    gg = 69
    bb = 0
    ELSE
    // Neutral silver
    rr = 192
    gg = 192
    bb = 192
    ENDIF
    //--------------------------------------------
    RETURN rviSmooth COLOURED(rr, gg, bb) style(line, 3) AS "RVII", levUp COLOURED(192, 192, 192) style(dottedline, 1) AS "Upper", levMid COLOURED(192, 192, 192) style(dottedline, 1) AS "Middle", levDn COLOURED(192, 192, 192) style(dottedline, 1) AS "Lower"
    
Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

TradingView to ProRealTime Translation Center

New Reply
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by Iván González
5 hours, 27 minutes ago.

Topic Details
Forum: TradingView to ProRealTime Translation Center Forum
Started: 01/09/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...