If-then-else, for loop, blocchi di istruzioni {}

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • maxmax68
    Senior Member

    • Sep 2013
    • 186

    #31
    Benissimo, grazie.
    Provvedo subito ad aggiornare la beeTrader.
    Saluti
    Massimo

    Comment

    • Cagalli Tiziano
      Senior Member
      • Dec 2007
      • 11252

      #32
      Originariamente Scritto da maxmax68
      Benissimo, grazie.
      Provvedo subito ad aggiornare la beeTrader.
      Saluti
      Massimo
      Grazie a te!
      ..se corri dietro a due lepri, non ne prendi nemmeno una.

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #33
        Originariamente Scritto da Francario Massimiliano
        Salve,
        nella prossima release di beeTrader saranno aggiunte alcune funzionalità al linguaggio EasyScript.

        - Nuova funzione CHANGEIF(CONDITION, VECTOR)
        Se la CONDITION è vera, resistituisce il valore di VECTOR, altrimenti restituisce il valore restituito per la barra precedente.

        .........
        .........

        Max Francario

        Con l\'implementazione della nuova funzione CHANGEIF adesso è possibile fare molte cose in più!

        Ma come si procede invece quando il valore restituito per la barra precedente potrebbe fare parte della CONDITION?
        Mi scuso se insisto con i problemi, ma sono situazioni che possono capitare!

        Comment

        • Francario Massimiliano
          Administrator
          • Jul 2008
          • 1033

          #34
          Salve,
          Originariamente Scritto da Smash
          Con l\'implementazione della nuova funzione CHANGEIF adesso è possibile fare molte cose in più!

          Ma come si procede invece quando il valore restituito per la barra precedente potrebbe fare parte della CONDITION?
          Mi scuso se insisto con i problemi, ma sono situazioni che possono capitare!
          mi può fare un esempio di una tale situazione ? Può andare bene sia un esempio di un altro linguaggio di programmazione che anche una descrizione dettagliata del problema da risolvere.
          Magari scomponendo il problema si trova una soluzione diversa....

          Max Francario
          Manuale di beeTrader
          Manuale di Fiuto Beta

          Comment

          • Smash
            Senior Member

            • Feb 2012
            • 351

            #35
            Originariamente Scritto da Francario Massimiliano
            Salve,


            mi può fare un esempio di una tale situazione ? Può andare bene sia un esempio di un altro linguaggio di programmazione che anche una descrizione dettagliata del problema da risolvere.
            Magari scomponendo il problema si trova una soluzione diversa....

            Max Francario

            Salve Max,

            allora ecco un esempio, e per il momento comincio con una spiegazione.

            Si voglia costruire una funzione per calcolare un indicatore che io chiamo la linea guida per individuare gli swing secondo le regole di Gann.

            Come prima regola (di base, ma non esaustiva purtroppo !!!), se una barra ha il massimo ed il minimo più alti rispetto alla barra precedente, allora l\'indicatore assume il valore del massimo di quella barra; viceversa se ha il massimo ed il minimo più bassi rispetto alla barra precedente, allora l\'indicatore assume il valore del minimo di quella barra.

            Click image for larger version

Name:	1.png
Views:	1
Size:	4.2 KB
ID:	148851




            In presenza di una o più barre inside, ovvero aventi massimo minore e minimo maggiore alla precedente, l\'indicatore mantiene il valore che aveva sulla barra precedente.

            Click image for larger version

Name:	2.png
Views:	1
Size:	4.6 KB
ID:	148852


            Questo indicatore ha un aspetto tipo quello mostrato nella figura che segue,

            Click image for larger version

Name:	3.png
Views:	1
Size:	2.9 KB
ID:	148853

            e lo si usa in questo modo:
            - fin quando sale o rimane in orizzontale dopo essere salito si è in presenza di uno swing rialzista (linee verdi)
            - fin quando scende o rimane in orizzontale dopo essere sceso si è in presenza di uno swing ribassista (linee rosse)


            Fin quì tutto facile, ma di seguito ecco uno dei possibili problemi.

            Click image for larger version

Name:	4.png
Views:	1
Size:	3.3 KB
ID:	148854

            Dopo una barra inside ci sono 2 barre aventi massimi e minimi crescenti ma che non superano mai il livello che l\'indicatore aveva prima della barra inside.
            Secondo le regole, in questa situazione l\'indicatore deve rimanere orizzontale, altrimenti verrebbero individuati prima uno swing ribassista e poi uno rialzista (come nella zona cerchiata in figura) che invece non ci devono essere.

            Vale a dire pertanto che non è sufficiente la condizione di massimi e minimi crescenti per assegnare il valore del massimo della barra all\'indicatore, ma serve anche che sia stato superato al rialzo il valore che l\'indicatore aveva sulla barra precedente. E quindi si rende necessario il confronto come condizione!


            Non è possibile aggirare l\'ostacolo mediante sistemi del tipo "confrontare il massimo della barra con il massimo a n periodi":

            ad esempio, nella figura che segue servirebbe un confronto ad almeno 6 periodi

            Click image for larger version

Name:	5.png
Views:	1
Size:	2.9 KB
ID:	148855

            mentre nella figura che segue già un confronto a 5 periodi sarebbe troppo ampio!

            Click image for larger version

Name:	6.png
Views:	1
Size:	3.5 KB
ID:	148856


            Spero di essere stato comprensibile nella spiegazione!
            Se serve posso anche allegare un codice.

            Comment

            • CIVT
              Senior Member
              • Dec 2009
              • 813

              #36
              Per il momento sembra funzionare molto bene il trailing pivot! L\'ho appena backtestato ad 1 minuto con una semplice Banda di Bollinger (purtroppo su uno storico di soli 2 giorni ma ahimè finchè non verrà attivato il tool per importare dati storici dobbiamo acontentarci.....) ma guardate un pò come lavora bene! Sia in ingresso che in uscita l\'efficienza media è intorno al 70%

              Lunedì vedremo se anche il ForwardTest ci darà ragione mentre per ora ringrazio!

              Click image for larger version

Name:	BB-TrailingPivot.jpg
Views:	1
Size:	98.1 KB
ID:	148870Click image for larger version

Name:	BB-TrailingPivot1.jpg
Views:	1
Size:	105.8 KB
ID:	148872

              Click image for larger version

Name:	EQ_BB-TrailingPivot.jpg
Views:	1
Size:	131.8 KB
ID:	148871
              Last edited by CIVT; 12-10-13, 01:37.

              Comment

              • Francario Massimiliano
                Administrator
                • Jul 2008
                • 1033

                #37
                Salve,
                Originariamente Scritto da Smash
                Salve Max,

                allora ecco un esempio, e per il momento comincio con una spiegazione.

                Si voglia costruire una funzione per calcolare un indicatore che io chiamo la linea guida per individuare gli swing secondo le regole di Gann.
                ....

                Spero di essere stato comprensibile nella spiegazione!
                Se serve posso anche allegare un codice.
                l\'indicatore sarà realizzabile dalla prossima release 0.8.10.15 di beeTrader, in quanto alcune funzioni di EasyScript saranno modificate in modo da utilizzare qualsiasi espressione dove invece al momento attuale può essere utilizzato esclusivamente un valore numerico.

                Questo il codice dell\'indicatore:
                Codice:
                # Condizioni high e low
                SET c_high = HIGH > REF(HIGH, 1) AND LOW > REF(LOW, 1)
                SET c_low = LOW < REF(LOW, 1) AND HIGH < REF(HIGH, 1)
                
                # Condizioni di cambiamento
                SET c_change = (c_high OR c_low)
                SET c_change_top = (c_change AND c_high)
                SET c_change_bottom = (c_change AND c_low)
                
                # Stato dell\'indicatore (up o down)
                SET stato1 = IF(c_change_top, 1, 0)
                SET stato2 = IF(c_change_bottom, -1, stato1) 
                SET stato = CHANGEIF(stato2 <> 0, stato2)
                
                # Calcolo barre per valori high e low
                SET barre1 = LASTIF(stato2 <> 0)
                SET barre = MINOF(barre1 + 1, 100)
                
                # Calcolo valori high e low dell\'indicatore
                SET hh = HighestHighValue(barre)
                SET ll = LowestLowValue(barre)
                
                # Plot
                SET PLOT1 = IF(stato = 1, hh, ll)
                SET PLOTCOLOR1 = IF(stato = 1, COLOR_LIGHT_GREEN, COLOR_LIGHT_RED)
                e questo il risultato:
                Click image for larger version

Name:	Gann Swing.png
Views:	1
Size:	39.0 KB
ID:	148886

                Max Francario
                Manuale di beeTrader
                Manuale di Fiuto Beta

                Comment

                Working...