valori costanti in un indicatore

Forums ProRealTime forum Italiano Supporto ProBuilder valori costanti in un indicatore

Viewing 15 posts - 1 through 15 (of 18 total)
  • #210717

    Buongiorno,

    sto creando un’indicatore di trend che segue il prezzo (da sopra o da sotto a seconda della dinamica dei prezzi). Vorrei codificare la seguente logica: se il mese precedente non vengono aggiornati i minimi di 2 mesi fa, oppure se la chiusura del mese precedente è superiore a quella di 2 mesi fa, il valore del mio indicatore, nel mese corrente, non cambi rispetto al valore che ha assunto il in T – 1. Questa logica deve rimanere tale per tutto il periodo in cui “close < indicator and ((low[1] > low[2]) or (close[1] > close[2]))”. Purtroppo riesco solo a codificare quanto segue:

    indicator1 = (max(high[2], max(high[1], high)) + min(low[2], min(low[1], low)))/2
    indicator2 = max(high[2], max(high[1], high))
    indicator3 = AverageTrueRange[10](close)
    indicator4 = indicator1 + indicator3
    indicator5 = max(indicator2, indicator4)
    indicator6 = indicator5[1]
    indicator7 = max(high[1], indicator6)

    if close < indicator7 and ((low[1] > low[2]) or (close[1] > close[2])) then
    indicator8 = indicator7[1]
    else
    indicator8 = indicator7
    Endif

    return indicator8

     

    Allego un’immagino in cui è presente l’errore.

     

    Grazie per il supporto

    #210722

    T sta per…?

    Su quali timeframe vuoi utilizzarlo?

     

    #210728

    Grazie Roberto,

    con “T – 1” intendevo la barra precedente. Vorrei che l’indicatore, verificate le condizioni, mantenesse il valore che aveva alla barra precedente. Questo valore potrebbe non coincidere necessariamente con il calcolo dell’indicatore alla barra precedente, se le condizioni si verificano.

    #210729

    relativamente al time frame, lo sto utilizzando sul mensile ma vorrei fosse valido per tutti i time frames..

    #210785

    Non capisco la logica delle  righe che hai scritto.

    Comunque questo è il codice che calcola i dati desiderati, Massimo e Chiusura, del 2° mese precedente (HH2 e CL2), del 1° mese precedente (HH1 e CL1) e di quello corrente (HH e CL):

    integra te il tuo indicatore con i dati di cui sopra.

    Tieni presente che TUTTE le variabili mantengono il valore che avevano nella barra precedente, a meno che quel valore non venga intenzionalmente cambiato. Per cui devi cambiare il valore del tuo indicatore solo quando necessario, non importa che tu metta INDICATORE = INDICATORE[1], anche se non è un errore, ovviamente.

     

     

    #211489

    Grazie Roberto,

    purtroppo non mi è semplice orientarmi in quanto mi hai proposto.

    Data la seguente logica:

    indicator1 = (max(high[2], max(high[1], high)) + min(low[2], min(low[1], low)))/2
    indicator2 = AverageTrueRange[10](close)
    indicator3 = indicator1 + indicator2
    indicator4 = indicator3[1]
    indicator5 = max(high[1], indicator4)

    la cui formula fa effettivamente quello che deve, come posso integrare il tuo codice per evitare che l’indicatore, nella barra corrente, si aggiorni con le formule sopra se e solo se (low[1] > low[2] and close[1] < indicator5[1]) OR (close[1] > close[2] and close[1] < indicator5[1])?

     

    Grazie

    #211493

    Puoi scriverlo così:

     

    #211512

    Grazie. Se ho capito bene il codice che mi hai riportato andrebbe inserito tale e quale sull’editor. tuttavia la condizione “if” sull’indicatore viene verificata prima del calcolo dell’indicatore stesso e quindi alla fine l’indicatore non viene plottato sul grafico. Ho provato a prendere comunque spunto e codificare quanto segue (tralasciando la condizione sulla close riportata nei messaggi precedenti):

    indicator1 = (max(high[2], max(high[1], high)) + min(low[2], min(low[1], low)))/2
    indicator2 = AverageTrueRange[10](close)
    indicator3 = indicator1 + indicator2
    indicator4 = indicator3[1]
    indicator5 = max(high[1], indicator4)

    IF (low[1] > low[2] and close[1] < indicator5[1]) THEN

    indicator6 = min(indicator5, indicator5[1])

    ENDIF

    return(indicator6)

     

    tuttavia non funziona. riporto screen dove ho individuato l’errore.

     

    Grazie

     

    Nicola

     

    #211599

    Prova questo:

     

    #211601

    Ho spostato la tua richiesta da ProScreener a ProOrder in quanto si tratta di un indicatore.

     

    #211615

    Grazie di cuore Roberto per il supporto.

    Provato anche con questa ma l’errore persiste. Allego screenshot.

     

    #211617

    Scusa, puoi dettagliare meglio in cosa consiste l’errore?

     

    #211829

    Grazie Roberto.

    se dal calcolo matematico risulta un valore superiore, vorrei che l’indicatore mantenesse il valore che aveva alla barra precedente se soddisfatta la seguente condizione: low[1] > low[2]. Altrimenti se low[1] > low[2] e matematicamente l’indicatore è minore rispetto alla barra precedente, va calcolato l’indicatore  normalmente.

    Nicola

    #212060

    Ciao Roberto,

     

    hai per caso avuto modo di leggere il mio messaggio sopra? Grazie e perdona il disturbo

    Nicola

    #212072

    No, perché non riesco a capire qual’è l’errore.

    Spiegamelo per favore ed allega una foto da cui si veda lo strumento, forex, indice o altro, il timeframe, data ed ora della candela con l’errore.

     

Viewing 15 posts - 1 through 15 (of 18 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login