Relative Strength Score

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #221708 quote
    GgmqGgmq
    Participant
    New

    buenos noches

    sería posible que tradujera este indicar sacado de TRADINGVIEW a PROREALTIME realizado por:

    Relative Strength Score por Lantzwat:

    // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // ©Lantzwat
    
    //@version=5
    indicator("RS - Relative Strength Score", "RS")
    
    src             = input(title='Source', defval=close)
    RefTickerId     = input.symbol("SP:SPX+NASDAQ_DLY:NDX+DJ:DWCPF", title="Reference index", tooltip = "e.g. SPX/NDX/RUT/DWCPF or combinations of it, or TOTAL for Crypto")
    bRSI            = input.bool(true, "Show Relative Strength - annual based (IBD Style)")
    bRSIQuarterly   = input.bool(true, "Show Relative Strength - quarterly based")
    
    // default lines
    p0 = plot(0, color = color.new(color.white,100))
    hline(0,  "0" , linestyle = hline.style_dotted, color = color.new(color.white,90) )
    hline(30, "30", linestyle = hline.style_dotted, color = color.new(color.white,70) )
    hline(60, "60", linestyle = hline.style_dotted, color = color.new(color.white,70) )
    
    var table infoTable = table.new(position.top_right, 1, 1, border_width = 0)
    f_fillCell(_table, _column, _row, _value) =>
    	_cellText = str.tostring(_value, "#.##")
    	table.cell(_table, _column, _row, _cellText, text_size = size.tiny, text_color = color.white)
    f_fillCelltext(_table, _column, _row, _value) =>
    	_cellText = _value
    	table.cell(_table, _column, _row, _cellText, text_size = size.tiny, text_color = color.white)
    
    // Calculate relative strength
    RS(tf, baseSymbol,comparativeSymbol, q) =>
        // RS Score (Additional Momentum Parameter IBD Style)
    
        // checking if traded 5 days a week (stock) or 7 days a week (crypto, forex)
        lb_day = dayofweek(time('D')) == dayofweek(time('D')[7]) ? 365 : 251
        lb_week = 52
    
        // calculate default values
        m3 = 0
        m6 = 0
        m9 = 0
        m12 = 0
        if tf == "W"
            m3  := int(lb_week / 4)        
            m6  := int(lb_week / 2)
            m9  := int((lb_week  * 3) / 4)
            m12 := lb_week
        else if tf == "D" // default
            m3  := int(lb_day / 4) 
            m6  := int(lb_day / 2) 
            m9  := int((lb_day * 3 )/ 4) 
            m12 := lb_day        
    
        rs_score = 0.
        if m3 != 0 
            rs_score_3m = (baseSymbol / baseSymbol[m3] / (comparativeSymbol / comparativeSymbol[m3]) - 1)
            rs_score_6m = (baseSymbol / baseSymbol[m6] / (comparativeSymbol / comparativeSymbol[m6]) - 1)
            rs_score_9m = (baseSymbol / baseSymbol[m9] / (comparativeSymbol / comparativeSymbol[m9]) - 1)
            rs_score_12m = (baseSymbol / baseSymbol[m12] / (comparativeSymbol / comparativeSymbol[m12]) - 1)
    
            if q == 4 
                rs_score := (0.4 * rs_score_3m + 0.2 * rs_score_6m + 0.2 * rs_score_9m + 0.2 * rs_score_12m) * 100
            if q == 1
                rs_score := (rs_score_3m) * 100
        else
            f_fillCelltext(infoTable, 0, 0, "Only valid in daily and weekly timeframe")
    
        rs_score
    
    reference_close = request.security(RefTickerId, timeframe.period, src)
    
    // plot RS quarterly
    relative_strength_quarter   = RS(timeframe.period, src,reference_close,1)
    RSQcolor                    = relative_strength_quarter <= 0 ? color.red : relative_strength_quarter < 10 ? color.from_gradient(relative_strength_quarter, 0, 10, color.yellow, color.yellow ) : relative_strength_quarter < 60 ? color.from_gradient(relative_strength_quarter, 10, 60, color.green , color.blue) : color.from_gradient(relative_strength_quarter, 60, 100, color.blue , color.navy)
    pRSq                        = plot(bRSIQuarterly ? relative_strength_quarter : na, color = RSQcolor, linewidth = 1)
    fill(p0,pRSq,color = color.new(RSQcolor,70))
    
    // plot RS annual (IBD style)
    relative_strength           = RS(timeframe.period, src,reference_close,4)
    RScolor                     = relative_strength <= 0 ? color.red : relative_strength < 10 ? color.from_gradient(relative_strength, 0, 10, color.yellow, color.yellow ) : relative_strength < 60 ? color.from_gradient(relative_strength, 10, 60, color.green , color.blue) : color.from_gradient(relative_strength, 60, 100, color.blue , color.navy)
    pRS                         = plot(bRSI ? relative_strength : na, color = RScolor, linewidth = 3)
    fill(p0,pRS,color = color.new(RScolor,70))
    f_fillCell(infoTable, 0, 0, relative_strength)
    
    

    gracias por su colaboración

     

    #221711 quote
    GgmqGgmq
    Participant
    New
    #221721 quote
    NicolasNicolas
    Keymaster
    Legend

    Lo sentimos, no es posible comparar instrumentos por código.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Relative Strength Score


ProBuilder: Indicadores y Herramientas

New Reply
Author
author-avatar
Ggmq @ggmq Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by NicolasNicolas
3 years ago.

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 09/27/2023
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...