Massimi, minimi e apertura a richiesta

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #202491 quote
    luxrun
    Participant
    Master

    Gentile Roberto, ho creato un indicatore molto basico che mi cerca i valori di massimo, minimo  e apertura a richiesta. Ti chiedo se è possibile inserirgli delle date fisse, tipo inizio anno, inizio mese e inizio settimana in modo che la piattaforma conti da sola le barre necessarie e mi restituisca i valori automaticamente. Grazie (di seguito il mio indicatore)

    // indicatore di minimi, massimi e apertura a richiesta
    
    nbarre=var //default 5
    
    massimo=highest [nbarre](high)
    
    minimo=lowest [nbarre](low)
    
    apertura= open [var]
    
    return massimo as "massimo", minimo as "minimo", apertura as "apertura"
    
    #202506 quote
    luxrun
    Participant
    Master

    Il codice della riga 9 va corretto;

    apertura= open [nbarre]
    #202537 quote
    robertogozzi
    Moderator
    Master

    Eccolo:

    // indicatore di minimi, massimi e apertura a richiesta
    DataRiferimento = 20220712    //12 Luglio 2022
    nbarre = 0
    for i = 0 to BarIndex
       if OpenDate[i] < DataRiferimento then
          nbarre = i - 1
          if OpenDate[i] > DataRiferimento then
             nbarre = 0
          endif
       endif
    next
    nbarre   = max(1,nbarre)
    massimo  = highest[nbarre](high)
    minimo   = lowest[nbarre](low)
    apertura = open[nbarre]
    return massimo as "massimo", minimo as "minimo", apertura as "apertura"

    Se la data è errata (non corrisponde a nessuna candela), verrà restituita la barra 1 (la precedente perché HIGHEST e LOWEST non possono avere valori < 1). Però trovui l'open della data indicata, ma il minimo/massimo partendo dalla barra corrente, qualemMinimo/Massimo desideri?

    #202545 quote
    luxrun
    Participant
    Master

    I valori che mi occorrono sono in effetti dinamici, nel senso che partendo da diverse date si aggiornano continuamente. L’open è l’unico fisso relativo alla data impostata (inizio anno, inizio mese e inizio settimana), mentre i massimi e minimi sono, rispettivamente, il massimo e minimo da inizio anno, poi quello da inizio mese e  quello da inizio settimana che aggiorno poi su un foglio online per determinare una formula di performance del titolo in analisi. Grazie ancora!

    #202563 quote
    luxrun
    Participant
    Master

    Allego una foto col mio basico indicatore per evidenziarti cosa mi serve trovare (es. i valori da inizio anno, quindi l’open, il massimo e il minimo di periodo a oggi). Cambiando il numero delle barre cerco i valori di inizio mese, poi di inizio trimestre etc.[attachment file=”immagine_2022-10-14_152328624.png”]

    #202564 quote
    luxrun
    Participant
    Master

    [attachment file=”immagine_2022-10-14_152504187.png”]
    Comunque grazie, ma la tua modifica non funziona correttamente!

    immagine_2022-10-14_152632489.png immagine_2022-10-14_152632489.png
    #202585 quote
    robertogozzi
    Moderator
    Master

    Risolto (almeno sembra).

    C’era un errore di codice, per cui non indicava correttamente le barre.

    C’era anche il problema che avevo scritto una ricerca che prendesse un considerazione una data ESATTA, in cui esistesse una candela, quindi dovevi prima verificare che i mercati fossero aperti quel giorno. Adesso l’ho cambiato ed ho stabilito che se il mercato è chiuso (quindi non c’è nessuna candela), prende la prima disponibile che non sia minore della data indicata. Se indichi il 9 Luglio (20220709), che è Sabato,  prenderà come valida la data di Lunedì 11 Luglio 2022. Ovviamente se vuoi posso anche prendere la data minore di quella indicata, oppure fare come prima e non prenderla affatto, restituendo 0:

    // indicatore di minimi, massimi e apertura a richiesta
    DataRiferimento = 20220712    //12 Luglio 2022
    nbarre = 0
    for i = 1 to BarIndex
       if OpenDate[i] = DataRiferimento then
          nbarre = barindex - barindex[i] + 1
          break
       elsif OpenDate[i] < DataRiferimento then
          nbarre = barindex - barindex[i - 1] + 1
          break
       endif
    next
    nbarre   = max(1,nbarre)
    massimo  = highest[nbarre](high)
    minimo   = lowest[nbarre](low)
    apertura = open[nbarre]
    return massimo as "massimo", minimo as "minimo", apertura as "apertura"
    #202592 quote
    luxrun
    Participant
    Master

    Un breve report, Roberto, sull’ultimo suggerimento di codice. Funziona, anche se con una particolarità, infatti mi restituisce l’open del giorno prima rispetto alla data che inserisco nel codice. Ma conoscendo la particolarità basta digitare il giorno prima e voilà il gioco è fatto. Piuttosto ho notato che non è possibile avere le date tra le impostazioni dell’indicatore in piattaforma, ma è necessario entrare e modificare il codice con l’editor.  Una richiesta infine: è possibile avere il codice di un conteggio barre, tipo il righello, semplicemente? Così potrei abbinare al mio codice basico e variare gli asset con facilità. Grazie e buon we (allego foto dei due lavori)

    conteggio-barre-2.png conteggio-barre-2.png
    #202730 quote
    robertogozzi
    Moderator
    Master

    Si, l’ho corretto. ti ho anche aggiunto la data da modificare dalle proprietà (senza variare il codice):

    // indicatore di minimi, massimi e apertura a richiesta
    //
    //DataRiferimento = 20220712    //12 Luglio 2022
    nbarre = 0
    for i = 1 to BarIndex
       if OpenDate[i] = DataRiferimento then
          nbarre = barindex - barindex[i]// + 1
          break
       elsif OpenDate[i] < DataRiferimento then
          nbarre = barindex - barindex[i - 1]// + 1
          break
       endif
    next
    nbarre   = max(1,nbarre)
    massimo  = highest[nbarre](high)
    minimo   = lowest[nbarre](low)
    apertura = open[nbarre]
    IF OpenDate < DataRiferimento THEN
       massimo  = 0
       minimo   = 0
       apertura = 0
    ENDIF
    return massimo as "massimo", minimo as "minimo", apertura as "apertura"

    ho tolto le linee PRIMA della data indicata, se vuoi rimetterle come prima basta che metti le doppie barre iniziali alle righe 19, 20 e 21.

    Il-Mio-Indicatore14.itf
    #202775 quote
    luxrun
    Participant
    Master

    Grazie, Roberto, ora funziona tutto bene!

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

Massimi, minimi e apertura a richiesta


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
luxrun @luxrun Participant
Summary

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

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