Trading System con il Williams %R..... dalla A alla Z

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

    • May 2011
    • 2630

    #16
    Originariamente Scritto da Ismael
    Mi sembra che quella sia la fx inversa di ln (guarda l\'esempio), per l\'elevazione a potenza il manuale dice a pg 25 di usare ^ sia per valori che vettori...
    Hai ragione
    non sono riuscito a trovare la funzione per elevare a potenza ennesima (per n>2) un qualsiasi vettore
    chiediamo aiuto a Max

    Apo
    Last edited by Apocalips; 08-12-14, 12:43.
    ....non si desidera ciò che è facile ottenere (Ovidio)....

    Comment

    • Claudio61
      Senior Member

      • May 2011
      • 3017

      #17
      Scrivo per dare un appoggio morale....
      mi dispiace non poter dare un contributo ma siete 4 rampe di scale più in alto del sottoscritto .... i miei 2 neuroni si stanno perdendo nel Sangiovese.
      Continuate ragazzi.

      Comment

      • Apocalips
        Senior Member

        • May 2011
        • 2630

        #18
        Originariamente Scritto da Claudio61
        Scrivo per dare un appoggio morale....
        mi dispiace non poter dare un contributo ma siete 4 rampe di scale più in alto del sottoscritto .... i miei 2 neuroni si stanno perdendo nel Sangiovese.
        Continuate ragazzi.

        https://www.youtube.com/watch?v=iI48uQe7lvU
        AHAHAHAAH....troppo forte !!
        ....non si desidera ciò che è facile ottenere (Ovidio)....

        Comment

        • Francario Massimiliano
          Administrator
          • Jul 2008
          • 1033

          #19
          Salve,

          Originariamente Scritto da Apocalips
          Hai ragione
          non sono riuscito a trovare la funzione per elevare a potenza ennesima (per n>2) un qualsiasi vettore
          chiediamo aiuto a Max

          Apo
          in EasyScript c\'è la funzione POW per l\'elevamento a potenza:
          POW(@base, @exponent)

          Entrambi i parametri possono essere dei vettori di dati, quindi è anche possibile eseguire un elevamento a potenza con esponente variabile.

          La funzione EXP è invece la funzione esponenziale, cioè l\'inverso del logaritmo naturale LN.
          In matematica sono rispettivamente:
          ex
          ln(x)

          Max Francario
          Manuale di beeTrader
          Manuale di Fiuto Beta

          Comment

          • Apocalips
            Senior Member

            • May 2011
            • 2630

            #20
            Originariamente Scritto da Francario Massimiliano
            Salve,



            in EasyScript c\'è la funzione POW per l\'elevamento a potenza:
            POW(@base, @exponent)

            Entrambi i parametri possono essere dei vettori di dati, quindi è anche possibile eseguire un elevamento a potenza con esponente variabile.

            La funzione EXP è invece la funzione esponenziale, cioè l\'inverso del logaritmo naturale LN.
            In matematica sono rispettivamente:
            ex
            ln(x)

            Max Francario
            grazie Max
            ....non si desidera ciò che è facile ottenere (Ovidio)....

            Comment

            • fab62
              Senior Member

              • Jul 2012
              • 674

              #21
              Originariamente Scritto da Francario Massimiliano
              Salve,



              in EasyScript c\'è la funzione POW per l\'elevamento a potenza:
              POW(@base, @exponent)

              Entrambi i parametri possono essere dei vettori di dati, quindi è anche possibile eseguire un elevamento a potenza con esponente variabile.

              La funzione EXP è invece la funzione esponenziale, cioè l\'inverso del logaritmo naturale LN.
              In matematica sono rispettivamente:
              ex
              ln(x)

              Max Francario



              Claudio passami del Sangiovese per cortesia .............

              Comment

              • Claudio61
                Senior Member

                • May 2011
                • 3017

                #22
                Originariamente Scritto da fab62


                Claudio passami del Sangiovese per cortesia .............
                Mi spiace .... finito.


                Ecco che mi scontro con la prima perplessità
                Ho ottimizzato sul DJ EUROSTOXX 50 .... il Signal di base .... senza modifiche .... unica cosa serie e impegnativa è il nome che gli ho dato
                Ecco il report
                Click image for larger version

Name:	PhotoShare(5)(9).png
Views:	1
Size:	79.0 KB
ID:	156932

                Salvo la WorkSpace ... chiudo BT ... riapro BT, apro la WS e mi ritrovo con risultati diversi? Perchè?

                Click image for larger version

Name:	PhotoShare(6)(5).png
Views:	1
Size:	78.4 KB
ID:	156933

                Comment

                • Francario Massimiliano
                  Administrator
                  • Jul 2008
                  • 1033

                  #23
                  Salve,

                  Originariamente Scritto da Claudio61
                  Mi spiace .... finito.


                  Ecco che mi scontro con la prima perplessità
                  Ho ottimizzato sul DJ EUROSTOXX 50 .... il Signal di base .... senza modifiche .... unica cosa serie e impegnativa è il nome che gli ho dato
                  Ecco il report

                  Salvo la WorkSpace ... chiudo BT ... riapro BT, apro la WS e mi ritrovo con risultati diversi? Perchè?
                  perché i dati storici sono cambiati tre i due backtest.
                  Siccome il tempo non lo possiamo fermare, con timeframe 1 minuto è facile che succeda che nel grafico "entrino" nuove barre, e quindi i dati sui quali vengono eseguiti i calcoli sono diversi, producendo di conseguenza risultati diversi.

                  Max Francario
                  Manuale di beeTrader
                  Manuale di Fiuto Beta

                  Comment

                  • Apocalips
                    Senior Member

                    • May 2011
                    • 2630

                    #24
                    Originariamente Scritto da Francario Massimiliano
                    Salve,



                    perché i dati storici sono cambiati tre i due backtest.
                    Siccome il tempo non lo possiamo fermare, con timeframe 1 minuto è facile che succeda che nel grafico "entrino" nuove barre, e quindi i dati sui quali vengono eseguiti i calcoli sono diversi, producendo di conseguenza risultati diversi.

                    Max Francario
                    Se Claudio dopo aver chiuso e riaperto BT e senza lanciare di nuovo il Backtest ha richiamato il summury report precedentemente salvato ed ha trovato risultati diversi allora credo ci sia un problema e Claudio ha ragione, se invece Claudio ha lanciato un nuovo backtest e confrontato i 2 report allora ha ragione Max.
                    Insomma Claudio, ...quali delle due ?
                    Last edited by Apocalips; 09-12-14, 18:10.
                    ....non si desidera ciò che è facile ottenere (Ovidio)....

                    Comment

                    • Claudio61
                      Senior Member

                      • May 2011
                      • 3017

                      #25
                      Non so Max ... ho fatto tutto nel giro di 2/3 minuti
                      Apo ... ho salvato la WS, chiuso BT , riaperto e aperta la WS. Non ho fatto altro backtest. Ho solo voluto scaricare la RAM perchè con il tempo, OS aperti ecc ecc mi stava saturando la capacità del PC.
                      A mercati chiusi riprovo.

                      Comment

                      • Ismael
                        Senior Member

                        • Jan 2011
                        • 240

                        #26
                        Originariamente Scritto da Claudio61
                        Scrivo per dare un appoggio morale....
                        mi dispiace non poter dare un contributo ma siete 4 rampe di scale più in alto del sottoscritto .... i miei 2 neuroni si stanno perdendo nel Sangiovese.
                        Continuate ragazzi.

                        https://www.youtube.com/watch?v=iI48uQe7lvU


                        Per quanto riguarda i piani di scale aspetta a vedere la ciofeca di script che ho fatto:

                        INPUTS: @price(CLOSE), @periods(70), @lev1(-65), @lev2(-35),@mav(5),@vola(1),@exp(1),@mav1(5)

                        set varia = ((oscillator(Variance(@price,@periods,@mav1),@peri ods)/50)-1)
                        set VariaPeriodi =(INTPORTION( pow(Varia,@exp)*50)*sign(varia))+@periods

                        SET PLOT1 = WilliamsPctR(VariaPeriodi)
                        SET PLOT2 = @lev1
                        SET PLOT3 = @lev2


                        Allora:
                        1. scusate il codice in sole due righe ma ho avuto dei problemi a scivere le variabili....
                        2. il parametro mav1 cambia il tipo di calcolo della media ( avrei pensato che in un segnale sell si dovrebbe usare qualcosa di più reattivo tipo media exp)
                        3. i risultati che ho per ora ottenuto non sono migliori di quelli dello script iniziale: forse bisogneebbe cambiare il modo in cui la variazione si aggiunge al periodo standard...
                        E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                        Comment

                        • manuelP
                          Senior Member
                          • Jun 2010
                          • 426

                          #27
                          Originariamente Scritto da Cagalli Tiziano
                          Questa discussione per proporre a tutti gli utenti una mia idea nata decenni orsono e pubblicata sull\'allora forum di Tradestation.

                          Ci focalizzeremo su come attribuire in maniera automatica il periodo da assegnare agli indicatori, cosa decisiva per una buona riuscita di trading.

                          A questo link avevo proposto l\'indicatore %R di Williams e si può vedere che i risultati ottenuti dai vari utenti sono buoni.
                          Metodi per cambiare il periodo ne esistono molti, infatti posso applicare alla sua lunghezza delle formule abbinate alla volatilità e creare due velocità applicando queste volatilità con modelli semplici, oppure logaritmici (che la ridurrebbero) o esponenziali (che la amplificherebbero).

                          Mi piacerebbe che si aprtisse magari dal sistema che propongo io per arrivare ad implementare delle idee nuove..in fin dei conti gli anni che passano porteranno ben delle cose nuove no?

                          Avanti con le idee, gli script e i test. Per come eseguire un backtest qui c\'è un post aperto nel quale fare domande.


                          Finito il sistema per tovare il miglior metodo per variare i periodi ci applicheremo a come .... ve lo dico dopo
                          Inizio con alcune domande e vediamo se vado nella direzione giusta.

                          1) Noi sappiamo che la volatilità può essere misurata attraverso l\'atr o la varianza/deviazione standard.
                          Metto un\'immagine dove si vede che in alcuni periodi i rispettivi oscillatori sono contrapposti, uno segna 100 mentre l\'altro 0.

                          Click image for larger version

Name:	Oscillatore varianza e atr.jpg
Views:	1
Size:	95.4 KB
ID:	156939

                          Ammesso di non aver commesso errori nella costruzione dell\'oscillatore, l\'utilizzo di uno piuttosto che dell\'altro può portare a risultati diversi.
                          Mi domando quando è preferibile usare l\'uno e quando l\'altro.

                          2) Mi sembra fondamentale anche il periodo sul quale viene calcolato l\'indicatore di volatilità e il suo oscillatore.
                          E\' sensato parametrizzarlo a qualcosa? Tipo alla volatilità storica del sottostante?

                          3) Così come messo nella formula, il periodo può andare da 30 (80+0-50) a 130 (80+100-50). Però abbiamo visto che ci sono stati degli ottimi risultati anche con periodi più lunghi.
                          Si potrebbe moltiplicare il risultato dell\'oscillatore (0 / 100) per una costante in modo da allungare il periodo per il calcolo dell\'%R (magari da utilizzare su time frame più corti).

                          Click image for larger version

Name:	Williams %R 30-130-230p.jpg
Views:	1
Size:	112.7 KB
ID:	156940

                          Comment

                          • Claudio61
                            Senior Member

                            • May 2011
                            • 3017

                            #28
                            Originariamente Scritto da Claudio61
                            Non so Max ... ho fatto tutto nel giro di 2/3 minuti
                            Apo ... ho salvato la WS, chiuso BT , riaperto e aperta la WS. Non ho fatto altro backtest. Ho solo voluto scaricare la RAM perchè con il tempo, OS aperti ecc ecc mi stava saturando la capacità del PC.
                            A mercati chiusi riprovo.
                            Ieri sera ero cotto e ho riprovato ora .... sembra essere OK . Meglio così.
                            Unica cosa .... tutti i parametri ottimizzati sono cambiati da ieri.
                            Periods e livelli.

                            Comment

                            • Ismael
                              Senior Member

                              • Jan 2011
                              • 240

                              #29
                              INPUTS: @price(CLOSE), @periods(70), @lev1(-65), @lev2(-35),@mav(5),@vola(1),@exp(1),@mav1(5)

                              #indicatore di volatilità... si potrebbe cambiarlo...
                              SET v = Variance(@price, @periods, @mav1)
                              #entità della variazione : ho inserito il segno meno perchè se aumneta la volatilità mi sembra più logico
                              #diminuire il periodo dell\'indicatore, ma forse mi sbaglio...

                              #si potrebbe parametrizzare anche la variazione di +/- 50 ma mi sembra esagerato
                              SET o = - pow(((Oscillator(v, @periods)/50)-1),@exp)*50

                              SET VariaPeriodi = @periods + o

                              SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi)

                              SET PLOT1 = WilliamsPctR(Variaperiodi)
                              SET PLOT2 = @lev1
                              SET PLOT3 = @lev2


                              Ho modificato il codice perchè conteneva degli errori...
                              E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                              Comment

                              • Ismael
                                Senior Member

                                • Jan 2011
                                • 240

                                #30
                                buy signal

                                inputs: @mav1(5),@periods(70),@price(close),@mav2(2),@exp( 3),@lev1(-55),@lev2(-20)

                                SET v = Variance(@price, @periods, @mav1)

                                #faccio variare l\'oscillatore esponenzialmente da -50 a +50
                                SET o = - pow(((Oscillator(v, @periods)/50)-1),@exp)*50

                                SET VariaPeriodi = @periods + o
                                SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi)

                                SET A = WilliamsPctR(VariaPeriodi)
                                SET B = @lev1
                                SET C = @lev2

                                CROSSOVER(A,@lev1)

                                sell signal


                                SET v = Variance(@price, @periods, @mav2)

                                #faccio variare l\'oscillatore esponenzialmente da -50 a +50
                                SET o = - pow(((Oscillator(v, @periods)/50)-1),@exp)*50

                                SET VariaPeriodi = @periods + o
                                SET PeriodoWilliams = IF(VariaPeriodi < 2, 2, VariaPeriodi)
                                SET A = WilliamsPctR(VariaPeriodi)
                                SET B = @lev1
                                SET C = @lev2

                                CROSSOVER(@lev2,A)



                                con questi parametri su dax

                                Click image for larger version

Name:	equitydax.JPG
Views:	1
Size:	59.0 KB
ID:	156947




                                il meglio che avevo ottenuto con la formula iniziale, variando il tipo di medie soltanto:

                                Click image for larger version

Name:	equitynon expdax.JPG
Views:	1
Size:	57.6 KB
ID:	156948
                                E' difficile vedere un gatto nero in una stanza buia, specialmente se non c'è.

                                Comment

                                Working...