durata candela VOLUME

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #100676 quote
    Gabriele BattistaGabriele Battista
    Participant
    Senior

    ciao ho scritto il codice di un indicatore che mi desse per grafici a volume la durata temporale di ogni candela. il codice è:

    if intradaybarindex>1 then
    
    durata=opentime-opentime[1]
    
    else
    
    durata=durata[1]
    
    endif
    
    return durata

    In alcuni casi da dei valori anomali, mi sai spiegare? Allego un grafico per spiegazione

    DAXXXXX_8-250-volumi.png DAXXXXX_8-250-volumi.png
    #100682 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Per scrivere il codice , utilizza il pulsante <> “insert PRT code”.

    Grazie.

    #100692 quote
    Gabriele BattistaGabriele Battista
    Participant
    Senior

    perdonami non ho capito dove devo mettere “insert PRT code”

    #100695 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    E’ il pulsante evidenziato, cliccalo e poi scrivi il codice nell’apposita finestra che si apre.

    Insert-PRT-Code-IT.jpg Insert-PRT-Code-IT.jpg
    #100697 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Per la durata, attendi un pò, ci sto lavorando.

    #100708 quote
    Gabriele BattistaGabriele Battista
    Participant
    Senior
    if intradaybarindex>1 then
    
    durata=opentime-opentime[1]
    
    else
    
    durata=durata[1]
    
    endif
    
    return durata
    
    #100713 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Il tuo codice potrebbe essere scritto semplicemente:

    RETURN opentime-opentime[1]

    ma non fa quello che vuoi, il calcolo tra i due orari è fatto in modo numerico, per cui le ore 16:01:30 – le ore 15:59:45 diventa 160130 – 155945 = 14985, che è un numero senza senso. PRT supporta il solo tipo di dati numerico reale (in virgola mobile), non ha interi, date, stringhe, ecc…

    Per cui è necessario estrapolare i singoli valori delle ore, minuti e secondi facendo delle operazioni matematiche, molto semplici, ma numerose (rspetto alla semplice riga a cui tu avevi pensato):

    Ora1 = OpenTime                          //ORA attuale
    x    = round((Ora1 / 100) - 0.5) * 100   //trovi l'ora ed i minuti, senza secondi
    ss1  = Ora1 - x                          //trovi i secondi
    y    = round((x / 10000) - 0.5) * 10000  //trovi l'ora senza secondi e senza minuti
    mm1  = (x - y) / 100                     //trovi i minuti
    hh1  = round((Ora1 / 10000) - 0.5)
    //////////////////////////////////////////////////////////////////////
    Ora2 = OpenTime[1]                       //ORA della candela precedente
    x    = round((Ora2 / 100) - 0.5) * 100   //trovi l'ora ed i minuti, senza secondi
    ss2  = Ora2 - x                          //trovi i secondi
    y    = round((x / 10000) - 0.5) * 10000  //trovi l'ora senza secondi e senza minuti
    mm2  = (x - y) / 100                     //trovi i minuti
    hh2  = round((Ora2 / 10000) - 0.5)
    //////////////////////////////////////////////////////////////////////
    //     Calcolo delle differenze
    DiffH = hh1 - hh2       //Differenza tra le ore
    IF DiffH < 0 THEN
       DiffH = DiffH + 23
    ENDIF
    DiffM = mm1 - mm2       //Differenza tra i minuti
    IF DiffM < 0 THEN
       DiffM = DiffM + 59
    ELSIF ss1 < ss2 THEN
       DiffM = DiffM - 1
    ENDIF
    //ENDIF
    DiffS = ss1 - ss2       //Differenza tra i secondi
    IF DiffS < 0 THEN
       DiffS = DiffS + 59
    ENDIF
    //////////////////////////////////////////////////////////////////////
    //       Riportare tutto in SECONDI
    Diff = Diffs + (DiffM * 60) + (DiffH * 3600)
    RETURN Diff AS "Secondi"
    x-9.jpg x-9.jpg
    #100723 quote
    Gabriele BattistaGabriele Battista
    Participant
    Senior

    ci deve essere cmq qualcosa che non va ancora ci sono dei picchi di 70′ impossibili, anche nel tuo grafico

    DAXXXXX_8-250-volumi-1.png DAXXXXX_8-250-volumi-1.png
    #100729 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    I picchi ci sono perché le candele sono così distanti tra loro, specialmente al cambio giorno.

    Talvolta anche durante la giornata.

    Non saprei dirti, prova a confrontare i dati con altre piattaforme, utilizzando gli stessi parametri.

    #100739 quote
    Gabriele BattistaGabriele Battista
    Participant
    Senior

    ho controllato e c’era un errore nel codice al cambio di ora, ho corretto ed adesso funziona.

    Ora1 = OpenTime //ORA attuale
    x = round((Ora1 / 100) - 0.5) * 100 //trovi l'ora ed i minuti, senza secondi
    ss1 = Ora1 - x //trovi i secondi
    y = round((x / 10000) - 0.5) * 10000 //trovi l'ora senza secondi e senza minuti
    mm1 = (x - y) / 100 //trovi i minuti
    hh1 = round((Ora1 / 10000) - 0.5)
    //////////////////////////////////////////////////////////////////////
    Ora2 = OpenTime[1] //ORA della candela precedente
    x = round((Ora2 / 100) - 0.5) * 100 //trovi l'ora ed i minuti, senza secondi
    ss2 = Ora2 - x //trovi i secondi
    y = round((x / 10000) - 0.5) * 10000 //trovi l'ora senza secondi e senza minuti
    mm2 = (x - y) / 100 //trovi i minuti
    hh2 = round((Ora2 / 10000) - 0.5)
    //////////////////////////////////////////////////////////////////////
    // Calcolo delle differenze
    DiffH = hh1 - hh2 //Differenza tra le ore
    IF DiffH < 0 THEN
    DiffH = DiffH + 23
    ELSIF DiffH=1 THEN
    DiffH=0
    m1=m1+60
    ENDIF
    DiffM = mm1 - mm2 //Differenza tra i minuti
    IF DiffM < 0 THEN
    DiffM = DiffM + 59
    ELSIF ss1 < ss2 THEN
    DiffM = DiffM - 1
    ENDIF
    DiffS = ss1 - ss2 //Differenza tra i secondi
    IF DiffS < 0 THEN
    DiffS = DiffS + 59
    ENDIF
    //////////////////////////////////////////////////////////////////////
    //Riportare tutto in SECONDI
    Diff = Diffs + (DiffM * 60) + (DiffH * 3600)
    RETURN Diff AS "Secondi"
    robertogozzi thanked this post
    DAXXXXX_8-250-volumi-2.png DAXXXXX_8-250-volumi-2.png
Viewing 10 posts - 1 through 10 (of 10 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

durata candela VOLUME


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Summary

This topic contains 9 replies,
has 2 voices, and was last updated by Gabriele BattistaGabriele Battista
7 years, 3 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 06/14/2019
Status: Active
Attachments: 5 files
ProRealCode ProRealCode
Loading...