Errore su TIMEFRAME

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #248631 quote
    occhiostanco
    Participant
    New

    Buongiorno
    trovo difficile evitare che l’utente riceva l’errore:
    “Tutti i timeframe usati nel codice devono essere multipli di quello nel grafico”

    — Vorrei poter configurare il mio indicatore in modo che venga utilizzato solo
    in certi Timeframes
    — oppure vorrei che la funzione TIMEFRAME potesse essere utilizzata dentro un IF, in moda da poter testare
    prima se il timeframe del grafico è compatibile
    — oppure vorrei poter uscire dal programma se il timeframe del grafico nonè compatibile
    per esempio
    IF GetTimeFrame > 3600 * 24 THEN
    EXIT
    ENDIF

    Qualche idea?

    Grazie

    #248643 quote
    robertogozzi
    Moderator
    Master

    Come indicato nel messaggio “Tutti i timeframe usati nel codice devono essere multipli di quello nel grafico”.

    Significa che, se utilizzi un Timeframe a 15 minuti potrai usare solo timeframes (minori o uguali a 15 minuti) le cui candele chiudano OGNI 15 minuti, quindi vanno bene 1, 2, 3, 5 15 minuti o 20 secondi, ma NON 10 minuti, perché quando chiude una candela a 15 minuti, quella a 10 minuti NON chiude (chiudono tutte e tue alla scadenza di 30 minuti, ma deve valere SEMPRE, non alcune candele si ed altre no). NON puoi usare nemmeno, ad esempio un timeframe a 27 secondi, perché non c’è nessuna candela a 27 secondi che chiude ogni 15 minuti., mentre puoi usare un timeframe a 5, 10, 15, 20 25 secondi.

    Iván González thanked this post
    #248648 quote
    occhiostanco
    Participant
    New

    Grazie Roberto,

    questo mi è chiaro. Quello che ho chiesto è un’altra cosa: siccome

    l’utilizzatore del grafico può scegliere a suo piacimento il TF senza essere a

    conoscenza di quali TF il software può supportare, e se ne sceglie uno non supportato

    viene sollevato l’errore  e l’indicatore viene brutalmente disassociato dal grafico

    (per cui dopo va reinserito, eccetera, eccetera)

    Chiedo se sia possibile in qualche modo evitare questo problema n uno dei modi seguenti o un altro che

    non mi viene in mente:

    • limitare da software la scelta del TF da parte dell’utente del grafico
    • limitare da impostazioni della piattaforma la scelta del TF per il grafico cui viene associato l’indicatore
    • far un test nel software che faccia terminare l’esecuzione dell’indicatore se il TF non è supportato, senza dare l’errore e soprattutto senza “staccare” l’indicatore dal grafico

    Grazie!

    #248650 quote
    robertogozzi
    Moderator
    Master

    NON si può usare una variable  per indicare la grandezza di un timeframe:

    TF = 60
    Timeframe(TF minute)
    Sma20 = average[20,0]
    RETURN Sma20 AS "Sma20"

    NON si può inserire l’istruzione TIMEFRAME all’interno di un blocco IF…ENDIF:

    IF GetTimeFrame > (3600 * 24) THEN
       DrawText("ERRORE: il Timeframe deve essere <= Daily",BarIndex,highest[20](high + range))
       Sma20 = 0
    ELSE
       Timeframe(1h)
       Sma20 = average[20,0]
    ENDIF
    RETURN Sma20 AS "Sma20"

    l’istruzione TIMEFRAME deve essere su una riga unica, da sola, dove non ci sia altro (tranne eventuali commenti alla fine della riga):

    Timeframe(1h,default) //è identica a Timeframe(1h)

    Speriamo nella versione 13 (credo sia già in fase di test per essere pronta nel 2026, secondo informazioni non ufficiali), qualcosa cambi, magari in relazione a quanto ho detto nella prima riga circa la possibilità di usare variabili.

    #248655 quote
    occhiostanco
    Participant
    New

    Vabbeh ho capito che si fa un po’ di fatica a rispondere a domande precise, anche se formulate in un elenco puntato.

    Grazie comunque del tuo tempo

    #248656 quote
    robertogozzi
    Moderator
    Master

    Rispondo ai tuoi punti, con la speranza di essere più chiaro:

    • limitare da software la scelta del TF da parte dell’utente del grafico
      NO, perché, come spiegato, non si possono usare variabili, quindi ogni TF deve essere hard-coded
    • limitare da impostazioni della piattaforma la scelta del TF per il grafico cui viene associato l’indicatore
      NO, la piattaforma si limita a respingere indicatori NON compatibili con il timeframe attualmente in uso
    • far un test nel software che faccia terminare l’esecuzione dell’indicatore se il TF non è supportato, senza dare l’errore e soprattutto senza “staccare” l’indicatore dal grafico
      NO, la piattaforma si limita a respingere indicatori NON compatibili con il timeframe attualmente in uso. Se l’indicatore è tra quelli supportati, puoi usare IF…ENDIF per scegliere quali, tra essi, vuoi consentire oppure no, con GETTIMEFRAME.
    #248657 quote
    occhiostanco
    Participant
    New

    Ok grazie, forse devo studiare un po’

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

Errore su TIMEFRAME


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by occhiostanco
7 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 07/02/2025
Status: Active
Attachments: No files
Logo Logo
Loading...