Operazioni su range Daily

Viewing 11 posts - 16 through 26 (of 26 total)
  • Author
    Posts
  • #176371 quote
    robertogozzi
    Moderator
    Master

    Come ti ho detto TIME è l’ora di chiusura della barra, mentre OPENTIME è quella di apertura.

    Scegli te, se usi TIME indicando le 170000 farai riferimento alla chiusura della barra aperta alle 160000 (o 163000 sul 30 minuti), se invece usi OPENTIME (alla stessa ora)  farai riferimento alla barra aperta alle 170000 (uguale sul 30 minuti).

    In sostanza andava bene all’inizio, forse avevi interpretato male i dati visualizzati con GRAPH.

    Se vuoi avere la possibilità di tornare indietro di più giorni devi usare un vettore (array) in modo da conservare tutti gli orari delle 173000 di ogni giorno:

    ONCE $Prezzo1730[0] = 0
    ONCE Elemento       = 0
    IF Time = 173000 THEN    //Time è l'ora in cui una barra chiude
       Elemento              = Elemento + 1
       $Prezzo1730[Elemento] = close
    ENDIF

    quindi se fai riferimento a:

     $Prezzo1730[Elemento]

    farai riferimento sempre all’ultimo, mentre per fare riferimento a quello precedente devi scrivere:

     $Prezzo1730[Elemento - 1]

    e per il 5o precedente:

     $Prezzo1730[Elemento - 5]

    e così via.

    MauroPro thanked this post
    #176373 quote
    MauroPro
    Participant
    Veteran

    Grazie per la precisazione, proverò con calma gli array che mi sembrano meglio.

    Un chiarimento: con gli array il prezzo fissato, es 17 di ieri, rimane fisso anche se lo utilizzo DOPO le 17 di oggi? (le altre formule, che operano per sostituzione, non andrebbero bene in quanto il prezzo di ieri delle 17 , cambierebbe oggi dopo le 17)

    #176376 quote
    robertogozzi
    Moderator
    Master

    Si, ogni elemento resta invariato, a meno che tu non lo modifichi esplicitamente.

    #176403 quote
    MauroPro
    Participant
    Veteran

    Stò provando le formule sugli array.

    Per indicare (oggi, sabato 28) il prezzo di ieri (venerdi 27)  alle 17 (che corrisponde al prezzo della chiusura della barra oraria delle 16) scrivo (vd sotto) e funziona (verificato con i graph)

    ONCE $Prezzo1700[0] = 0
    ONCE Elemento       = 0
    IF Time = 170000 THEN
    Elemento              = Elemento + 1
    $Prezzo1700[Elemento-1] = close
    ENDIF

    che è uguale (verificato) alla formula:

    IF Time = 170000 THEN  // è il prezzo di ieri dato dalla chiusura della candela oraria delle 160000
    PrezzoIeriOre17 = close
    ENDIF

    PERO’ non mi funziona con gli array (probabilmente sbaglio qualcosa se puoi controllare) se provo ad avere il prezzo delle 17000 dell’altro ieri (giovedi 26).

    Mi ritorna sempre quello di ieri alle 17 = 15842.6, mentre dovrebbe essere 15782 (prezzo di chiusura della barra oraria delle 16 del giorno giovedi 26) .

    La formula con gli array che non mi funziona per indicare il prezzo delle 17 di giovedi 26 è questa (ho solo cambiato “elemento” da -1 a -2):

    ONCE $Prezzo1700[0] = 0
    ONCE Elemento       = 0
    IF Time = 170000 THEN
    Elemento              = Elemento + 1
    $Prezzo1700[Elemento-2] = close
    ENDIF
    #176404 quote
    MauroPro
    Participant
    Veteran

    Il prezzo di chiusura  della barra oraria delle 160000 di giovedi 26 è 15782, si vede dal grafico ed anche da questa formula “classica” (verificata):

    IF Time = 170000 THEN  // è il prezzo dell'altro ieri dato dalla chiusura della candela oraria delle 160000
    prezzoAltroIeri = prezzoIeri
    prezzoIeri = close
    ENDIF
    graph prezzoAltroIeri   coloured (0,0,0)    //nero
    #176478 quote
    MauroPro
    Participant
    Veteran

    Ho riprovato, ma confermo che questa formula degli array da -2 (compreso) in poi NON funziona, mentre se scrivo -1 mi riporta correttamente il valore di ieri.

    ONCE $Prezzo1700[0] = 0
    ONCE Elemento = 0
    IF Time = 170000 THEN
    Elemento = Elemento + 1
    $Prezzo1700[Elemento-2] = close
    ENDIF

    #176522 quote
    robertogozzi
    Moderator
    Master

    Nella riga

    $Prezzo1700[Elemento-1] = close

    del post 176403, perché la usi? A che ti serve cambiare il giorno precedente mettendoci il CLOSE di oggi?

    #176524 quote
    MauroPro
    Participant
    Veteran

    Perchè se tolgo close mi dà questo (vd immagine)

     

     

    In ogni caso non funzionano nemmeno con close valori da -2, -3 …

    Image-010.jpg Image-010.jpg
    #176528 quote
    robertogozzi
    Moderator
    Master

    No, il problema non è close, vorrei capire a cosa serve il -1.

    #176530 quote
    MauroPro
    Participant
    Veteran

    Non sono esperto di array. So solo:

    A) che questa formula funziona, individua il prezzo di ieri alle 17 (chiusura barra oraria delle 16)

    ONCE $Prezzo1700[0] = 0
    ONCE Elemento = 0
    IF Time = 170000 THEN
    Elemento = Elemento + 1
    $Prezzo1700[Elemento-1] = close
    ENDIF

    B) se tolgo close non funziona più.

    C) Non riesco ad ottenere il prezzo del close dell’altro ieri mettendo [Elemento -2] = close

    D) In ogni caso posso sempre utilizzare la vecchia formula che  funziona anche indietro di 5 candele

    #176532 quote
    robertogozzi
    Moderator
    Master

    La risposta C è quello che volevo sapere.
    Quando vuoi sapere il valore della chiusura del giorno prima è sufficiente usare $Prezzo1700[Elemento-1], senza asegnargli nessun valore, altrimenti lo cambi mettendoci il valore odierno.

Viewing 11 posts - 16 through 26 (of 26 total)
  • You must be logged in to reply to this topic.

Operazioni su range Daily


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
MauroPro @mauropro Participant
Summary

This topic contains 25 replies,
has 2 voices, and was last updated by robertogozzi
4 years, 5 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 08/26/2021
Status: Active
Attachments: 2 files
Logo Logo
Loading...