Canale di donchian automatico

Forums ProRealTime forum Italiano Supporto ProBuilder Canale di donchian automatico

Viewing 15 posts - 1 through 15 (of 27 total)
  • #239167

    Buonasera a tutti, avrei bisogno di un aiuto:

    voglio impostare un indicatore sul prezzo automatico che segnali massimi e minimi di periodo (canale di donchian) anche di diversi valori secondo i seguenti parametri:

    a=highest[HH](high)
    b=lowest[LL](low)
    c= a=a[1] // massimi di periodo = a quelli precedenti
    d= b=b[1] // minimi di periodo = a quelli precedenti

    – deve trovare automaticamente:
    – il più basso valore di HH (quindi più recente) in cui la linea del massimo rimane orizzontale fino al prezzo corrente (per più barre possibile)
    – il più basso valore di LL (quindi più recente) in cui la linea del minimo rimane orizzontale fino al prezzo corrente (per più barre possibile)

    In pratica, trova i massimi e minimi di periodo senza impostare nulla.
    Se il prezzo è in uptrend cioè, se High>high[1] dovrebbe risultare HH=1

    Se low<low[1] dovrebbe segnare in automatico LL=1

    Nell’allegato ad esempio impostato manualmente, la linea del massimo è HH=1, mentre quella del minimo LL=3.

    Vi ringrazio in anticipo!

    Max

     

    #239193

    Grazie per la tua spiegazione. Ora ho compreso che quello che desideri è un indicatore che conti il numero di barre consecutive in cui il massimo o il minimo rimangono orizzontali (invariati). Con questo in mente, ti propongo il seguente codice, che dovrebbe soddisfare il tuo requisito.

    Spiegazione:

    maxOrizzontale e minOrizzontale sono contatori che aumentano di 1 ogni volta che il massimo o il minimo rimangono uguali durante una nuova barra.
    Quando il massimo o il minimo cambiano, i contatori vengono resettati a 0.
    RETURN visualizza i contatori come un istogramma: uno per i massimi (in verde) e uno per i minimi (in rosso).

    Questo dovrebbe funzionare come desiderato.

    1 user thanked author for this post.
    #239252

    Ciao Ivan, ti ringrazio per la tua celere e comunque utilissima risposta,

    ma non volevo un contatore di barre che conti le barre in cui il prezzo di highest[20](high) e lowest[20](low) rimane orizzontale.

    Vorrei che in automatico, senza impostare un periodo di riferimento, nel tuo caso HH e LL [20], l’indicatore trovi in automatico highest[HH](high) e lowest[LL](low) per i quali le linee rimangano orizzontali per almeno due barre o più partendo

    dall’ultima barra (più recente) cioè high[0] e low[0].

    Come in quest’altro esempio che ti allego, la linea lowest[LL](low) copre almeno 2 barre orizzontali di minimo, ed il valore di LL risulta 7, quindi è lowest[7](low).

    Mentre quella del massimo è highest[1](high) perchè è un massimo storico del titolo, e quindi non c’è nessun valore di HH maggiore di 1, partendo dall’ultima barra più recente (high[0] ) per la quale la linea di massimo copra almeno 2 barre.

    Spero di essermi spiegato….non so se è possibile fare un indicatore del genere, ma spero tu mi possa essere di aiuto.

    Ti ringrazio ancora per il tuo tempo. Attendo tue….

    Max

    #239361

    Posso provare ad aiutarti, ma ad essere sincero non ho capito che tipo di canale Donchian vuoi e che linee deve stampare.

     

    #239382

    Ciao Roberto, grazie per la disponibilità….la logica è più semplice di quanto sembra….per spiegarmi meglio ti allego un esempio e te lo descrivo….

    E’ un titolo a caso, vedi nel jpg cattura 1, le linee di donchian.

    Nel pannello che vedi sotto il grafico, i periodi da settare li chiamo HH per highest[HH](high) e LL per lowest[LL](low), quindi sono i massimi e minimi di diversi periodi.

    NN che nel nostro caso è sempre settato a 0 equivale a highest[HH](high)[NN], cioè i periodi precedenti……. Lascia perdere la variabile “perc”.

    Per trovare i valori di HH e LL, che vorrei si settassero in automatico, cioè che me li trovi l’indicatore stesso….lo posso fare manualmente muovendo i valori HH e LL da 1, cioè

    highest[1](high) e lowest[1](low) in su fino a trovare i primi valori utili in modo che le due linee siano orizzontali.

    In questo caso i primi valori utili per cui le linee siano flat sono HH=6 cioè Highest[6](high) per 5 barre (ultima compresa), e LL=3, cioè lowest[3](low) per 3 barre (ultima compresa).

    In pratica l’indicatore dovrebbe disegnare automaticamente il canale di donchian con valori diversi per il massimo e il minimo in base ai più recenti supporti e resistenze possibili.

    Nel JPG 2 ti faccio vedere la condizione appena prima che si verifichino le condizioni ricercate. Vedi che highest[5](high) e lowest[2](low) piegano e non sono flat.

    Ovviamente se il titolo sta facendo un massimo o un minimo storico, il valore che trova sarà highest[1](high) o lowest[1](low) perchè non avrà massimi o minimi precedenti che permetteranno di fare una linea orizzontale.

    Spero di essermi spiegato e che sia possibile concretizzarlo, se hai dubbi scrivimi pure.

    Grazie mille Roberto.

     

     

     

     

     

    #239473

    Non sono ancora riuscito a capire bene.

    Ti allego una foto con due copie dello stesso grafico, su un grafico c’è il comune Canale Donchian, l’altro è vuoto e vorrei che, cominciando dalla prima candela sulla sinistra tu tracciassi le due linee, candela per candela, spiegandomi in quale posizione le disegni (a quale livello di prezzo, sia HH che LL).

    Questo dovrebbe aiutarmi a capire.

     

    #239496

    Non riesco a segnartelo sul grafico da te allegato, anche perchè le linee del canale di donchian che voglio vedere si impostano in base agli alti/bassi dell’ultima candela, quindi cambiano in continuazione.

    Ma ti posso scrivere dei codici in modo da capire ciò che vorrei, e ti scrivo anche gli errori che mi risultano:

    Quello che devo trovare:

    – Highest[HH](high)                                     // i valori di HH alla barra corrente che soddisfi la condizione:

    Highest[HH](high) [N]=Highest[HH](high) [N+1]:

    Highest[HH](high)[0] =Highest[HH](high) [1], Highest[HH](high)[1] =Highest[HH](high) [2], Highest[HH](high)[2] =Highest[HH](high) [3]……

    e così via fino a quando la linea dei massimi del canale è flat, orizzontale….per il maggior numero di barre possibili.

    Quindi l’indicatore deve scansire i periodi di HH, da 1 in su, fino a che non trova che la condizione sopra è vera, cioè la linea highest di donchian rimane costante. (CICLO FOR)

    -stessa cosa per Lowest[LL](low)          // i valori di LL alla barra corrente.

    Deve trovare le stesse condizioni, quindi, il valore di LL può essere diverso da HH, e crea due linee di donchian con valori indipendenti tra loro, non come il normale canale di donchian che ha lo stesso periodo per highest e lowest.

    Quindi l’indicatore deve scansire i valori di LL fino a quando rimane vero : Lowest[LL](low) [N]=Lowest[LL](low) [N+1]:

    Lowest[LL](low) [0]=Lowest[LL](low) [1], Lowest[LL](low) [1]=Lowest[LL](low) [2], Lowest[LL](low)[2] =Lowest[LL](low) [3]…..ecc…

    Eccezioni:

    Se il titolo sta facendo un massimo/minimo storico i valori di HH e/o LL devono dare [1]:

    if high[0]>=Highest[barindex](high)[1] then

    HH=1

    endif

    if low<=lowest[barindex](low) [1]then

    LL=1

    endif

    In questo caso, mi da un errore perchè dice che un parametro di tipo intero positivo è atteso con con highest[barindex](high)

    Non capisco il perchè visto che barindex da il numero di barre nel grafico ed è sempre un valore intero positivo.

    #239530

    Non mi servono le righe del codice. Ho bisogno di una dscrizione testuale di quello che fai manualmente e mentalmente quando vedi un grafico vuoto e vuoi iniziare a vedere quello che tu desideri, candela per candela, partendo da un punto a tua scelta e andando verso destra, spiegandomi ad ogni candela cosa occorre calcolare, cosa occorre visualizzare e perché.

    Se non vuoi usare il grafico che avevo allegato, usane uno tuo, magari ricostruiscilo con eXcel e facci delle annotazioni.

     

     

    #239531

    forse vuoi una cosa cosi ?

     

    #239537

    Si effettivamente è meglio allegare il grafico con i passaggi dall’1 al 5 in PDF.

    Spero sia chiaro adesso.

    No Alessandro non è quello che cerco, ti ringrazio comunque.

    Allego qui sotto.

    Grazie mille a tutti.

    #239547

    Si, stavolta penso di avere capito.

    Te lo farò appena possibile.

     

    #239577

    Vediamo se ho ben capito:

     

    #239580

    Ciao Roberto, ti ringrazio per il tuo tempo ed il tuo aiuto, ma purtroppo non è quello che intendevo…i parametri 5 e 3 del mio esempio e che hai impostato tu, li deve trovare l’indicatore, non vanno impostati a priori.

    Ma forse ho trovato il modo migliore di spiegarlo.

    Date le formule di partenza del canale di donchian:

    Massimo=highest[H](high)  // H è l’incognita

    Minimo= lowest[L](low) // L è l’incognita

    Per trovare H, l’indicatore deve analizzare i periodi di H da 1 a barindex (totale delle barre) fino a che trova la condizione massimo[0]=massimo[1] vera.

    Per trovare L, deve analizzare i periodi di L da 1 a barindex fino a che trova la condizione minimo[0]=minimo [1] vera.

    Inoltre, se H risulta = barindex, cioè se è ad un massimo storico, va sostituito con valore =1, quindi solo in questo caso H=1

    lo stesso con L, se L = barindex, va sostituito con valore=1, L=1

    Forse in questo modo è più semplice.

    Scusami se non riesco a spiegarmi bene.

     

    #239583

    //Zigo
    defparam calculateonlastbars=1000
    timeframe(default, updateonclose)

    once n =0
    once m=0
    n=n+1
    m=m+1

    HH=Highest[n](high)
    LL=lowest[m](low)
    if high < hh then
    DRAWTEXT(“-“, barindex, HH)
    endif
    if low >LL then
    DRAWTEXT(“-“, barindex, LL)
    endif
    return

    #239612

    Ho leggermente modificato l’indicatore di Zigo cambiando il disegno dei segmenti.

    In allegato il codice.

    Mi spieghi come vuoi usarlo ?

    Grazie

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

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