Indicatore Pidi_Trend

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • pidi10
    Senior Member
    • Apr 2008
    • 4076

    #31
    Originariamente Scritto da Cagalli Tiziano
    Si vede che sei giovane!

    Io ho passato un buon decennio nel forum di Tradestation e lì abbiamo creato grandissime cose.
    C\'era la cultura del condividere, del costruire, della analisi, poi si è spenta piano piano ed è iniziato il ciclo di quelli che vogliono tutto fatto ma solo copiando e quando scoprono qualche cosa la tengono per loro... e così sono 6 anni che non scrivo più nulla.

    Ora c\'è questo forum e sono sicuro che ci sono delle potenzialità enormi, aspetto di avere la versione N°1 di beeTrader e poi sono certo che con una buona dose di pubblicità anche gli utilizzatori di beeTrader si saranno in grado di fare cose magiche.

    Le grandi categorie di trader sono due a mio avviso:
    gli avidi, quelli che vogliono solo il numero su cui puntare
    i tecnici, questi invece vogliono prima il risultato con la prova del 9 e poi si mette a mercato.

    Per questo motivo ti ho chiesto di scrivere il tuo post nella sezione di beeTrader, per darlo in pasto ai tecnici!
    Sono stati bravi eh?!

    Loro si, ma più che loro tu!

    Comment

    • pernotron
      Senior Member
      • Nov 2009
      • 476

      #32
      Originariamente Scritto da Smash
      Ciao CIVT,

      così calcola le barre intraday indipendentemente dal time frame utilizzato: se ad esempio metti il time frame giornaliero conta sempre 1.


      Io per il momento ho partorito questo:

      Codice:
      #Media dei prezzi a 20 periodi 
      SET SMA20 = SMA(CLOSE, 20)
      
      #Media dei prezzi a 3 periodi 
      SET SMA3 = SMA(CLOSE, 3)
      
      #Detraggo dalla più veloce la più lenta
      SET Differenza = SMA3 - SMA20
      
      #Calcolo la deviazione standard dei prezzi da inizio giornata (a periodo variabile)
      SET ConditionDateChange = DATE > REF(DATE, 1)
      SET BarsOfDay = LASTIF(ConditionDateChange)
      SET Periods = BarsOfDay + 1
      #Inibisco il calcolo della deviazione standard dei prezzi per le prime 4 barre di giornata
      SET DevStd = IF(Periods < 5, 0, StandardDeviations(CLOSE, Periods, 1, SIMPLE) )
      #Modifica per evitare la divisione per zero
      SET DevStdModif = IF(DevStd = 0, 0.000001, DevStd)
       
      #Divido la differenza per la deviazione standard ottenendo una percentuale
      #imponendo valore zero per le prime 4 barre di giornata (E\' UNA SCELTA ARBITRARIA !!!)
      SET Percentuale = IF(Periods < 5, 0, Differenza / DevStdModif )
      
      SET PLOT1 = Percentuale
      SET PLOT2 = 2
      SET PLOT3 = 1
      SET PLOT4 = -1
      SET PLOT5 = -2
      
      SET PLOTCOLOR1 = COLOR_YELLOW
      SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
      SET PLOTCOLOR3 = COLOR_LIGHT_GREEN
      SET PLOTCOLOR4 = COLOR_LIGHT_RED
      SET PLOTCOLOR5 = COLOR_LIGHT_RED

      [ATTACH=CONFIG]12997[/ATTACH]


      Ci sono dentro un paio di artifizi mirati semplicemente ad evitare la generazione di errori nel calcolo (inibizione delle prime 4 barre di giornata e modifica artificiosa della deviazione standard quando vale zero).

      Inoltre ho l\'impressione che questo indicatore appesantisca un tantino beeTrader!
      Salve a tutti,
      come mai non funziona con tm ad 1 e a 5 minuti?
      Grazie

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #33
        Originariamente Scritto da pernotron
        Salve a tutti,
        come mai non funziona con tm ad 1 e a 5 minuti?
        Grazie
        Ciao Pernotron,

        non dovrebbe dipendere dal time frame (su certi sottostanti funziona e su altri no), mentre ho l\'impressione che dipenda dalla volatilità delle barre che quando è troppo bassa crea dei problemi nel calcolo della deviazione standard.

        Cerco di modificarlo per vedere se riesco a farlo funzionare sempre ...

        Comment

        • pernotron
          Senior Member
          • Nov 2009
          • 476

          #34
          Originariamente Scritto da Smash
          Ciao Pernotron,

          non dovrebbe dipendere dal time frame (su certi sottostanti funziona e su altri no), mentre ho l\'impressione che dipenda dalla volatilità delle barre che quando è troppo bassa crea dei problemi nel calcolo della deviazione standard.

          Cerco di modificarlo per vedere se riesco a farlo funzionare sempre ...
          grazie, gentilissimo !

          Comment

          • Smash
            Senior Member

            • Feb 2012
            • 351

            #35
            Originariamente Scritto da pernotron
            grazie, gentilissimo !
            Cambiamo la forzatura per evitare la divisione per zero: stavolta usiamo la funzione CHANGEIF,
            tanto pur sempre di un artifizio si tratta!


            Codice:
            #Media dei prezzi a 20 periodi 
            SET SMA20 = SMA(CLOSE, 20)
             
            #Media dei prezzi a 3 periodi 
            SET SMA3 = SMA(CLOSE, 3)
             
            #Detraggo dalla più veloce la più lenta
            SET Differenza = SMA3 - SMA20
             
            #Calcolo la deviazione standard dei prezzi da inizio giornata (a periodo variabile)
            SET ConditionDateChange = DATE > REF(DATE, 1)
            SET BarsOfDay = LASTIF(ConditionDateChange)
            SET Periods = BarsOfDay + 1
            #Inibisco il calcolo della deviazione standard dei prezzi per le prime 4 barre di giornata
            SET DevStd = IF(Periods < 5, 0, StandardDeviations(CLOSE, Periods, 1, SIMPLE) )
            #Modifica per evitare la divisione per zero
            SET DevStdModif = CHANGEIF(DevStd > 0, DevStd)
              
            #Divido la differenza per la deviazione standard ottenendo una percentuale
            #imponendo valore zero per le prime 4 barre di giornata (E\' UNA SCELTA ARBITRARIA !!!)
            SET Percentuale = IF(Periods < 5, 0, Differenza / DevStdModif )
             
            SET PLOT1 = Percentuale
            SET PLOT2 = 2
            SET PLOT3 = 1
            SET PLOT4 = -1
            SET PLOT5 = -2
             
            SET PLOTCOLOR1 = COLOR_YELLOW
            SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
            SET PLOTCOLOR3 = COLOR_LIGHT_GREEN
            SET PLOTCOLOR4 = COLOR_LIGHT_RED
            SET PLOTCOLOR5 = COLOR_LIGHT_RED

            Così mi sembra che funzioni !

            Comment

            • pernotron
              Senior Member
              • Nov 2009
              • 476

              #36
              Originariamente Scritto da Smash
              Cambiamo la forzatura per evitare la divisione per zero: stavolta usiamo la funzione CHANGEIF,
              tanto pur sempre di un artifizio si tratta!


              Codice:
              #Media dei prezzi a 20 periodi 
              SET SMA20 = SMA(CLOSE, 20)
               
              #Media dei prezzi a 3 periodi 
              SET SMA3 = SMA(CLOSE, 3)
               
              #Detraggo dalla più veloce la più lenta
              SET Differenza = SMA3 - SMA20
               
              #Calcolo la deviazione standard dei prezzi da inizio giornata (a periodo variabile)
              SET ConditionDateChange = DATE > REF(DATE, 1)
              SET BarsOfDay = LASTIF(ConditionDateChange)
              SET Periods = BarsOfDay + 1
              #Inibisco il calcolo della deviazione standard dei prezzi per le prime 4 barre di giornata
              SET DevStd = IF(Periods < 5, 0, StandardDeviations(CLOSE, Periods, 1, SIMPLE) )
              #Modifica per evitare la divisione per zero
              SET DevStdModif = CHANGEIF(DevStd > 0, DevStd)
                
              #Divido la differenza per la deviazione standard ottenendo una percentuale
              #imponendo valore zero per le prime 4 barre di giornata (E\' UNA SCELTA ARBITRARIA !!!)
              SET Percentuale = IF(Periods < 5, 0, Differenza / DevStdModif )
               
              SET PLOT1 = Percentuale
              SET PLOT2 = 2
              SET PLOT3 = 1
              SET PLOT4 = -1
              SET PLOT5 = -2
               
              SET PLOTCOLOR1 = COLOR_YELLOW
              SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
              SET PLOTCOLOR3 = COLOR_LIGHT_GREEN
              SET PLOTCOLOR4 = COLOR_LIGHT_RED
              SET PLOTCOLOR5 = COLOR_LIGHT_RED

              Così mi sembra che funzioni !
              Grazie Smash, ora funziona bene.

              Comment

              • pernotron
                Senior Member
                • Nov 2009
                • 476

                #37
                x Smash

                Salve Smash,
                ho riscontrato lo stesso problema per le Fasce Pidi , non le plotta su grafici a 1 e 5 minuti, hai una gentile ed apprezzata soluzione anche per questo ?
                Grazie per la pazienza e la disponibilità

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #38
                  Originariamente Scritto da pernotron
                  Salve Smash,
                  ho riscontrato lo stesso problema per le Fasce Pidi , non le plotta su grafici a 1 e 5 minuti, hai una gentile ed apprezzata soluzione anche per questo ?
                  Grazie per la pazienza e la disponibilità

                  Ciao pernotron,
                  il problema è che quando capita che deve fare anche una singola divisione per zero, beeTrader non plotta l\'indicatore senza dare messaggi di errore.
                  Potresti dirmi su quali titoli non ti funziona, così li provo anch\'io?

                  Comment

                  • pernotron
                    Senior Member
                    • Nov 2009
                    • 476

                    #39
                    Originariamente Scritto da Smash
                    Ciao pernotron,
                    il problema è che quando capita che deve fare anche una singola divisione per zero, beeTrader non plotta l\'indicatore senza dare messaggi di errore.
                    Potresti dirmi su quali titoli non ti funziona, così li provo anch\'io?
                    Il Cac40,
                    Grazie Smash

                    Comment

                    • Smash
                      Senior Member

                      • Feb 2012
                      • 351

                      #40
                      Originariamente Scritto da pernotron
                      Il Cac40,
                      Grazie Smash
                      A me con l\'ultima modifica fatta funziona anche il Cac40 a 1 minuto, mentre la versione precedente invece no.

                      Fai una prova:
                      plotta questo

                      Codice:
                      #Calcolo la deviazione standard dei prezzi da inizio giornata (a periodo variabile)
                      SET ConditionDateChange = DATE > REF(DATE, 1)
                      SET BarsOfDay = LASTIF(ConditionDateChange)
                      SET Periods = BarsOfDay + 1
                      #Inibisco il calcolo della deviazione standard dei prezzi per le prime 4 barre di giornata
                      SET DevStd = IF(Periods < 5, 0, StandardDeviations(CLOSE, Periods, 1, SIMPLE) )
                      #Modifica per evitare la divisione per zero
                      SET DevStdModif = CHANGEIF(DevStd > 0, DevStd) * 100000
                           
                      SET PLOT1 = DevStdModif
                        
                      SET PLOTCOLOR1 = COLOR_YELLOW
                      e magari verifica se l\'indicatore plottato assume valore zero da qualche parte ....


                      Altrimenti un\'altra possibile causa di errore potrebbe essere quella di non richiedere una quantità di dati sufficientemente grande quando carichi un grafico a 1 minuto oppure a 5 minuti.
                      Infatti per calcolare l\'indicatore Pidi-Trend viene calcolata una deviazione standard a periodi variabili a partire dall\'inizio di giornata, e se nel grafico non è presente almeno una barra del giorno prima beeTrader non sa mai a quanti periodi dovrebbe calcolarla.
                      Last edited by Smash; 12-03-14, 15:46.

                      Comment

                      Working...