AverageTrueRange su TimeFrame daily e il suo valore usato in altro Timeframe

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #192979 quote
    Antonio1976
    Participant
    New

    Buongiorno,

    ho scritto una programmino che lavora su TIMEFRAME 30 minuti che necessita del valore dell’ATR[5 daily](close).

    Per fare ciò alla fine della routine ho scritto questo codice che mi calcola correttamente l’ATR a 5 periodi su TimeFrame daily e lo memorizza nella Variabile ATR.

    TIMEFRAME(Daily)
    ATR=AverageTrueRange[5](close)
    TIMEFRAME(default)

    tuttavia quando il TimeFrame viene aggiornato, ossia crea la nuova candela, il valore della variabile ATR nel TimeFrame 30minuti diventa n/d. a questo punto per eliminare l’errore devo aprire le impostazioni del mio programmino cambiare un parametro e tutto si sistema. Poi alla formazione della candela successiva il problema ritorna.

    #192983 quote
    robertogozzi
    Moderator
    Master

    Il codice viene letto sequenzialmente, per cui se l’ATR daily l’hai messo alla fine, prima può prendere valori errati, oppure nessun valore.
    Sposta le righe che hai scritto all’inizio, o comunque PRIMA che la variabile ATR sia utilizzata.
    Verifica anche di avere un numero sufficiente di unità per il calcolo, in un giorno ci sono 48 candele (forse meno, se gli orari di trading non sono 24 ore) da 30 minuti, quindi ne servono circa 250.
    Forse in questo modo lo risolvi.

    #192989 quote
    Antonio1976
    Participant
    New

    Grazie per la risposta, ma il problema si presenta ogni volta che si crea una nuova candela.

    Ti allego il codice.

    Lo eseguo come indicatore sui prezzi e Time Frame a 30 minuti

    DEFPARAM DrawOnLastBarOnly = true
    IF IntraDayBarIndex = 0 THEN
    MaxIntDay = high
    MinIntDay = low
    ENDIF

    If Abilita then
    DrawText(“ATR[5]=#ATR#”,barindex+20,MaxIntDay ) coloured(0,0,255,150) //Blù
    endif

    TIMEFRAME(Daily)
    ATR=AverageTrueRange[5](close)
    TIMEFRAME(default)

    return

    #192992 quote
    robertogozzi
    Moderator
    Master

    A me funziona correttamente, sia spostando il codice in alto che lasciandolo invariato (però in alto stampa il dato fisso).

    N/D mi si ptesenta solo se ho un numero di unità insufficienti.

    #192995 quote
    Antonio1976
    Participant
    New

    Averi un’altra domanda se possibile.

    Vorrei un codice che mi permettesse di leggere il margine disponibile su uno strumento in modo da poterlo usare all’interno del programma per poter definire il numero di contratti massimi utilizzabili dato il capitale.

    Sapresti darmi indicazioni in merito

    #192999 quote
    robertogozzi
    Moderator
    Master

    Purtroppo non è possibile saperlo automaticamente.

    #193033 quote
    Edisone
    Participant
    Average

    Buongiorno, ho notato che nel TF 30 min (di oggi) il valore riportato del ATR del giorno precedente è leggermente diverso da quello rappresentato nel TF daily di ieri. Per esempio se guardo il TF daily ieri avevo un ATR di 127,17 mentre oggi nel TF 30 min mi riporta il valore di ieri pari a 128,49. E’ possibile far coincidere i valori ?.

    Grazie

    Allego file.

    capture_003_11052022_101046.jpg capture_003_11052022_101046.jpg
    #193566 quote
    robertogozzi
    Moderator
    Master

    Prova questa versione modificata, che ti fa vedere il valore aggiornato alla candela da 30 minuti precedente, mi sembra sia quasi identico, a parte alcuni decimali (che non hanno molta influenza):

    DEFPARAM DrawOnLastBarOnly = true
    
    IF IntraDayBarIndex = 0 THEN
    MaxIntDay = high
    MinIntDay = low
    ENDIF
    
    If Abilita then
    MyATR = ATR
    x     = MyATR[1]
    DrawText("ATR[5]=#x#",barindex+20,MaxIntDay ) coloured(0,0,255,150) //Blù
    endif
    
    TIMEFRAME(Daily)
    ATR=AverageTrueRange[5](close)
    TIMEFRAME(default)
    
    return
    #193838 quote
    Marcot18
    Participant
    Veteran

    Buonasera,

    a me dice di definire la variabile Abilita

    #193841 quote
    robertogozzi
    Moderator
    Master

    L’avevi tu nel tuo codice, in ogni caso scrivi alla riga 2:

    Abilita = 1

    oppure definiscila come variabile in modo da poterla cambiare con le proprietà.

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

AverageTrueRange su TimeFrame daily e il suo valore usato in altro Timeframe


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
Summary

This topic contains 9 replies,
has 4 voices, and was last updated by robertogozzi
3 years, 10 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 05/10/2022
Status: Active
Attachments: 1 files
Logo Logo
Loading...