Oscillatore atr% 0-100

Viewing 15 posts - 1 through 15 (of 23 total)
  • Author
    Posts
  • #61350 quote
    Jim8137Jim8137
    Participant
    Junior

    Ciao a tutti,

    avrei bisogno di un semplice oscillatore atr% —  ((AverageTrueRange[n](Close) / (Close)) * 100) — che oscilli tra 0 e 100 un pò come fa un RSI.

    Se potete aiutarmi ve ne sarei grato.

    Jim

    #61361 quote
    maximus78maximus78
    Participant
    Senior

    Ciao Jim, prova questo….in pratica è l’RSI a cui ho sostituito al prezzo close e close[1], il valore dell’ATR e ATR[1]

    P è il periodo della media mobile di Wilder per il calcolo dell’oscillatore mentre N è il periodo dell’ATR.

    Maxx

    P=14
    N=14
    ATR=AverageTrueRange[N](Close)
    
    rialzo = MAX(0, ATR - ATR[1])
    ribasso = MAX(0, ATR[1] - ATR)
    
    mmRialzo = WILDERAVERAGE[p](rialzo)
    mmRibasso = WILDERAVERAGE[p](ribasso)
    
    RS = mmRialzo / mmRibasso
    
    mioATR = 100 - 100 / (1 + RS)
    
    RETURN mioATR AS "ATROSCILLATOR", 30, 70, 50, 100,0
    Nicolas thanked this post
    #61414 quote
    Jim8137Jim8137
    Participant
    Junior

    Ti ringrazio Maximus, sempre gentile come sempre. Ottimo il sistema proposto e ti ringrazio ma ero più interessato ad una formula di questo tipo:

    [(valorore attuale dell’atr – minimo a n barre dell’atr)/range dell’atr]*100

    Io non riesco proprio a metterla giù correttamente, riusciresti a farmi una mano per favore?

    Jim

    #61448 quote
    maximus78maximus78
    Participant
    Senior

    Ciao Jim, non ho capito bene cosa intendi comunque prova con questo codice.

    Mette in rapporto l’ATR[p](close) corrente con il massimo valore registrato di ATR[p](close) di N periodi, puoi mettere 100 o 1000 per esempio.

    Penso sia quello che vuoi tu.

    Max

    N=1000
    P=14
    
    a=averagetruerange[P](close)
    b=highest[N](a)
    c=(100/b)*a
    
    return c
    #61496 quote
    Jim8137Jim8137
    Participant
    Junior

    Ottimo Max, questo va bene.

    ti ringrazio molto.

    #61510 quote
    maximus78maximus78
    Participant
    Senior

    Di niente!

    Max

    #63287 quote
    Jim8137Jim8137
    Participant
    Junior

    Ciao Max, ho ripreso in mano questo codice e volevo fare una cosa del genere:

    • per esempio se io ho un valore attuale al close di oggi dell’atr a 21giorni = 300    quindi a=300
    • minimo dell’atr a 21 giorni = 220   quindi b= 220
    • massimo dell’atr a 21 giorni = 350  quindi c = 350

    e faccio la formula [(a-b)/(c-b)]*100 = 61,53

    Io ci ho provato utilizzando i codici ma non mi torna qualcosa, mi puoi aiutare?

    Ti ringrazio molto.

    #63325 quote
    maximus78maximus78
    Participant
    Senior

    Ciao, cosa intendi con i periodi a “21 giorni”, in a,b e c?:

    nella variabile a intendi averagetruerange[21](close), quindi è il periodo dell’ATR nella barra corrente?

    nella variabile b e c intendi il valore più alto e più basso raggiunto da averagetruerange[21](close) negli ultimi 21 giorni, oppure il valore più alto e più basso dell’averagetruerange[21](close) raggiunto in giornata in un timeframe intraday?

    E’ importante definire bene queste variabili.

    Max

    Nicolas thanked this post
    #63358 quote
    NicolasNicolas
    Keymaster
    Legend

    Stai creando un oscillatore stocastico ma con ATR al posto del prezzo.

    p=21
    REM Computes the highest and lowest ATR on p bars
    atr = averagetruerange[p]
    
    hi = highest[p](atr)
    lo = lowest[p](atr)
    
    REM Let's build the oscillator
    
    oscillator = ((close - lo) / (hi - lo) * 100)
    
    RETURN oscillator
    

    L’unica differenza è che l’oscillatore non è levigato e non ha alcun segnale come lo stocastico originale.

    stochastic-of-ATR.png stochastic-of-ATR.png
    #63367 quote
    Jim8137Jim8137
    Participant
    Junior

    Intanto grazie Nicolas,

    due cose, non capisco come mai inserendo il codice da te espresso non oscilli tra 0 e 100 ma mi va anche a sopra i 200.

    Seconda cosa al posto del close nella formula finale vorrei inserire il close dell’atr e non il close del valore del prezzo.

     

    Ti ringrazio per la pazienza

    #63369 quote
    Jim8137Jim8137
    Participant
    Junior

    Ciao Max. Intendevo questo:

    nella variabile a intendo averagetruerange[21](close), quindi è il periodo dell’ATR nella barra corrente.

    nella variabile b e c intendo il valore più alto e più basso raggiunto da averagetruerange[21](close) negli ultimi 21 giorni.

    E quindi   [(a-b)/(c-b)]*100

    e in teoria dovrei avere un indicatore che  mi oscilli tra 0-100.

     

     

     

    #63371 quote
    Jim8137Jim8137
    Participant
    Junior

    Forse sono arrivato al dunque:

    p=21

    atr = averagetruerange[p]

    hi = highest[p](atr)
    lo = lowest[p](atr)
    atrx =averagetruerange[21](close)

    oscillator = ((atrx – lo) / (hi – lo) * 100)

    RETURN oscillator

    Dovrebbe essere questo, ovviamente ci sono arrivato grazie a voi 🙂

    #63373 quote
    maximus78maximus78
    Participant
    Senior

    Allora era come lo intendevo io, esatto…puoi semplificare così,

    in questo modo P=periodo ATR(close), N=numero giorni per considerare il massimo e il minimo dell’ATR, nel tuo caso entrambi i valori sono 21

        p=21
        N=21
        atr = averagetruerange[p](close)
    
        hi = highest[N](atr)
        lo = lowest[N](atr)
    
        oscillator = ((atr – lo) / (hi – lo) * 100)
    
        RETURN oscillator
    Nicolas thanked this post
    #63389 quote
    NicolasNicolas
    Keymaster
    Legend

    sì! scusa per l’errore nel mio codice, ho dimenticato di sostituire “Close” con una variabile atr …

    #63401 quote
    Jim8137Jim8137
    Participant
    Junior

    Perfetto!

    Ottimo ragazzi vi ringrazio per la pazienza.Ben fatto Nicolas.

Viewing 15 posts - 1 through 15 (of 23 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

Oscillatore atr% 0-100


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
Jim8137 @jim8137 Participant
Summary

This topic contains 22 replies,
has 4 voices, and was last updated by Marcot18Marcot18
8 years, 4 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 02/03/2018
Status: Active
Attachments: 2 files
ProRealCode ProRealCode
Loading...