Indicatore Pivot Points giornaliero

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • CIVT
    Senior Member
    • Dec 2009
    • 813

    #16
    Originariamente Scritto da Smash
    Salve a tutti,

    con la nuova Release 0.8.10.15 di beeTrader l\'indicatore Pivot Points è stato inserito bello e pronto tra gli indicatori disponibili, per cui il problema non si pone più!


    Tuttavia, dato che sono finalmente riuscito a calcolare il massimo ed il minimo del giorno precedente, sperando di fare cosa gradita per chi come me si sta cimentando nella programmazione in EasyScript, desidero postare a puro titolo di esempio il codice di questo indicatore che plotta rispettivamente la chiusura, il massimo ed il minimo del giorno precedente, ovvero i 3 vettori che servivano per poter calcolare i Pivot Points.


    Codice:
    # Individuazione del cambiamento di data
    SET ConditionDateChange = DATE > REF(DATE, 1)
    SET DateChange = IF(ConditionDateChange, 1, 0)
    
    # Individuazione numerica delle barre intraday giornaliere
    SET BarsOfDay = LASTIF(ConditionDateChange)
    SET Bars = BarsOfDay + 1
    
    # Calcolo della CHIUSURA del giorno precedente
    SET PreviousDayClose = CHANGEIF(DateChange, REF(CLOSE, 1))
    
    # Calcolo del MASSIMO del giorno precedente
    SET IntradayHigh = HighestHighValue(Bars)
    SET PreviousDayHigh = CHANGEIF(DateChange, REF(IntradayHigh, 1))
    
    # Calcolo del MINIMO del giorno precedente
    SET IntradayLow = LowestLowValue(Bars)
    SET PreviousDayLow = CHANGEIF(DateChange, REF(IntradayLow, 1))
    
    
    SET PLOT1 = PreviousDayClose
    SET PLOT2 = PreviousDayHigh
    SET PLOT3 = PreviousDayLow
    
    SET PLOTCOLOR1 = COLOR_LIGHT_YELLOW
    SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
    SET PLOTCOLOR3 = COLOR_LIGHT_RED

    [ATTACH=CONFIG]12429[/ATTACH]
    Smash SANTO SUBITO!!! Per voi sarà anche "facile" ma ti assicuro che io ho perso mezza giornata per tentare di costruirlo senza ottenere nulla di buono!!!

    GRAZIE!

    Comment

    • BMM
      Senior Member

      • Jan 2011
      • 1306

      #17
      Originariamente Scritto da CIVT
      Smash SANTO SUBITO!!! Per voi sarà anche "facile" ma ti assicuro che io ho perso mezza giornata per tentare di costruirlo senza ottenere nulla di buono!!!

      GRAZIE!
      tranquilli, quando ci saranno le funzioni per gestire il multitimeframe basteranno 3 righe, per ora complimenti a smash per l\'artifizio

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #18
        Grazie a tutti per gli apprezzamenti!

        Allora cercherò di postare qualche altro esempio scovando tra le problematiche che sono state citate sul Forum.

        Comment

        • maxmax68
          Senior Member

          • Sep 2013
          • 186

          #19
          Ciao Smash,
          mi accodo alla lista dei complimenti.
          In particolare mi è piaciuta l\'idea per contare le barre intraday.
          Non ci avevo pensato, e ne farò tesoro per i prossimi script,
          in attesa che venga aggiunta qualche funzione di conteggio barre.
          Grazie
          Massimo.

          Comment

          • Smash
            Senior Member

            • Feb 2012
            • 351

            #20
            Originariamente Scritto da maxmax68
            Ciao Smash,
            mi accodo alla lista dei complimenti.
            In particolare mi è piaciuta l\'idea per contare le barre intraday.
            Non ci avevo pensato, e ne farò tesoro per i prossimi script,
            in attesa che venga aggiunta qualche funzione di conteggio barre.
            Grazie
            Massimo.
            Grazie a te Massimo!

            In verità, ciò che mi ha permesso di fare funzionare l\'indicatore è stato il fatto che le due funzioni HighestHighValue() e LowestLowValue() possono accettare come argomento un intero vettore ("Bars" nel precedente esempio) anzichè un singolo valore numerico.

            Altrimenti ..... apriti cielo !!!

            Comment

            • Smash
              Senior Member

              • Feb 2012
              • 351

              #21
              Originariamente Scritto da Smash
              Salve a tutti,

              con la nuova Release 0.8.10.15 di beeTrader l\'indicatore Pivot Points è stato inserito bello e pronto tra gli indicatori disponibili, per cui il problema non si pone più!


              Tuttavia, dato che sono finalmente riuscito a calcolare il massimo ed il minimo del giorno precedente, sperando di fare cosa gradita per chi come me si sta cimentando nella programmazione in EasyScript, desidero postare a puro titolo di esempio il codice di questo indicatore che plotta rispettivamente la chiusura, il massimo ed il minimo del giorno precedente, ovvero i 3 vettori che servivano per poter calcolare i Pivot Points.


              Codice:
              # Individuazione del cambiamento di data
              SET ConditionDateChange = DATE > REF(DATE, 1)
              SET DateChange = IF(ConditionDateChange, 1, 0)
              
              # Individuazione numerica delle barre intraday giornaliere
              SET BarsOfDay = LASTIF(ConditionDateChange)
              SET Bars = BarsOfDay + 1
              
              # Calcolo della CHIUSURA del giorno precedente
              SET PreviousDayClose = CHANGEIF(DateChange, REF(CLOSE, 1))
              
              # Calcolo del MASSIMO del giorno precedente
              SET IntradayHigh = HighestHighValue(Bars)
              SET PreviousDayHigh = CHANGEIF(DateChange, REF(IntradayHigh, 1))
              
              # Calcolo del MINIMO del giorno precedente
              SET IntradayLow = LowestLowValue(Bars)
              SET PreviousDayLow = CHANGEIF(DateChange, REF(IntradayLow, 1))
              
              
              SET PLOT1 = PreviousDayClose
              SET PLOT2 = PreviousDayHigh
              SET PLOT3 = PreviousDayLow
              
              SET PLOTCOLOR1 = COLOR_LIGHT_YELLOW
              SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
              SET PLOTCOLOR3 = COLOR_LIGHT_RED

              [ATTACH=CONFIG]12429[/ATTACH]


              Una piccola precisazione:

              mi rendo conto solo adesso che nelle primissime righe

              Codice:
              # Individuazione del cambiamento di data
              SET ConditionDateChange = DATE > REF(DATE, 1)
              SET DateChange = IF(ConditionDateChange, 1, 0)
              le 2 istruzioni SET definiscono 2 vettori identici.


              Pertanto il codice dell\'indicatore poteva essere riscritto con un vettore in meno, come segue:

              Codice:
              # Individuazione del cambiamento di data
              SET ConditionDateChange = DATE > REF(DATE, 1)
              
              # Individuazione numerica delle barre intraday giornaliere
              SET BarsOfDay = LASTIF(ConditionDateChange)
              SET Bars = BarsOfDay + 1
              
              # Calcolo della CHIUSURA del giorno precedente
              SET PreviousDayClose = CHANGEIF(ConditionDateChange, REF(CLOSE, 1))
              
              # Calcolo del MASSIMO del giorno precedente
              SET IntradayHigh = HighestHighValue(Bars)
              SET PreviousDayHigh = CHANGEIF(ConditionDateChange, REF(IntradayHigh, 1))
              
              # Calcolo del MINIMO del giorno precedente
              SET IntradayLow = LowestLowValue(Bars)
              SET PreviousDayLow = CHANGEIF(ConditionDateChange, REF(IntradayLow, 1))
              
              
              SET PLOT1 = PreviousDayClose
              SET PLOT2 = PreviousDayHigh
              SET PLOT3 = PreviousDayLow
              
              SET PLOTCOLOR1 = COLOR_LIGHT_YELLOW
              SET PLOTCOLOR2 = COLOR_LIGHT_GREEN
              SET PLOTCOLOR3 = COLOR_LIGHT_RED

              Comment

              • maxmax68
                Senior Member

                • Sep 2013
                • 186

                #22
                Originariamente Scritto da Smash
                Grazie a te Massimo!

                In verità, ciò che mi ha permesso di fare funzionare l\'indicatore è stato il fatto che le due funzioni HighestHighValue() e LowestLowValue() possono accettare come argomento un intero vettore ("Bars" nel precedente esempio) anzichè un singolo valore numerico.

                Altrimenti ..... apriti cielo !!!

                Ciao Smash,
                mi sfugge il significato della tua risposta ?!?
                Avrebbe funzionato tutto ugualmente bene con una variabile
                al posto del vettore perché quello che gli passi è un singolo valore numerico.
                Saluti
                Massimo

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #23
                  Originariamente Scritto da maxmax68
                  Ciao Smash,
                  mi sfugge il significato della tua risposta ?!?
                  Avrebbe funzionato tutto ugualmente bene con una variabile
                  al posto del vettore perché quello che gli passi è un singolo valore numerico.
                  Saluti
                  Massimo

                  Ciao Massimo,

                  il problema (grosso) sarebbe stato: quale valore numerico singolo assegnare a quella variabile?

                  Di fatto per poter contare le barre di una giornata è stato necessario utilizzare la funzione LASTIF, la quale però non restituisce un singolo valore numerico, ma restituisce un vettore contenente numeri variabili ciclicamente da 0 al numero di barre di una giornata meno 1 (trasformati poi da 1 al numero di barre di una giornata dopo aver sommato 1 a tutti gli elementi i quel vettore).

                  Comment

                  Working...