Indicatore SthocasticRSI

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

    • Feb 2013
    • 154

    #1

    Indicatore SthocasticRSI

    Ciao a tutti!
    Dopo essere entrato anche io a far parte di questo validissimo gruppo, ho provato subito a buttare giù qualcosina in EasyScript, giusto per iniziare a testarlo!
    Ho elaborato questo semplice indicatore che trovo particolarmente interessante in quanto di più immediata lettura rispetto al semplice RSI.

    Codice:
    INPUTS: @periods(14),@lineamin(20),@lineamax(80)
    
    SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
    SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
    set DIFF = MAX(RSI(CLOSE, @periods), @periods)-MIN(RSI(CLOSE, @periods), @periods)
    
    SET SthocasticRSI = ((RSI(CLOSE, @periods)-RSIL)/DIFF)*100
    
    set plot1 = SthocasticRSI
    set plot2 = @lineamin
    set plot3 = @lineamax
    Ho provato anche a creare il relativo signal ma, sembrerà pazzesco, pur nella sua estrema semplicità non riesco a farlo girare.....
    Praticamente genera il segnale buy quando lo SthocasticRSI attraversa dal basso verso l\'alto la linea del minimo e il segnale sell quando attraversa dall\'alto verso il basso la linea del massimo.
    Mi sapete dire dove cavolo sbaglio??????

    segnale buy
    Codice:
    INPUTS: @periods(14),@valmin(20),@valmax(80)
    
    SET REQUIRED_BARS = 50
    SET SRSI = SthocasticRSI(@periods)
    
    SRSI > @valmin AND REF(SRSI, 1) < @valmin
    segnale sell
    Codice:
    SET SRSI = SthocasticRSI(@periods)
    
    SRSI < @valmax AND REF(SRSI, 1) > @valmax
    Grazie!!!!!!

    Beppe
  • Cagalli Tiziano
    Senior Member
    • Dec 2007
    • 11252

    #2
    Originariamente Scritto da masterci
    Ciao a tutti!
    Dopo essere entrato anche io a far parte di questo validissimo gruppo, ho provato subito a buttare giù qualcosina in EasyScript, giusto per iniziare a testarlo!
    Ho elaborato questo semplice indicatore che trovo particolarmente interessante in quanto di più immediata lettura rispetto al semplice RSI.

    Codice:
    INPUTS: @periods(14),@lineamin(20),@lineamax(80)
    
    SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
    SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
    set DIFF = MAX(RSI(CLOSE, @periods), @periods)-MIN(RSI(CLOSE, @periods), @periods)
    
    SET SthocasticRSI = ((RSI(CLOSE, @periods)-RSIL)/DIFF)*100
    
    set plot1 = SthocasticRSI
    set plot2 = @lineamin
    set plot3 = @lineamax
    Ho provato anche a creare il relativo signal ma, sembrerà pazzesco, pur nella sua estrema semplicità non riesco a farlo girare.....
    Praticamente genera il segnale buy quando lo SthocasticRSI attraversa dal basso verso l\'alto la linea del minimo e il segnale sell quando attraversa dall\'alto verso il basso la linea del massimo.
    Mi sapete dire dove cavolo sbaglio??????

    segnale buy
    Codice:
    INPUTS: @periods(14),@valmin(20),@valmax(80)
    
    SET REQUIRED_BARS = 50
    SET SRSI = SthocasticRSI(@periods)
    
    SRSI > @valmin AND REF(SRSI, 1) < @valmin
    segnale sell
    Codice:
    SET SRSI = SthocasticRSI(@periods)
    
    SRSI < @valmax AND REF(SRSI, 1) > @valmax
    Grazie!!!!!!

    Beppe
    Grazie e complimenti!
    Ora non ho accesso a beeTrader per darti il codice finito, comunque, per far eseguire i tuoi segnali devi usare CROSSOVER (SRSI, @valmin) nel Buy , mentre nel sell usi CROSSOVER (@valmax, SRSI )
    e credo sia meglio creare una tua funzione che chiamerai "SthocasticRSI"
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

    Comment

    • maxmax68
      Senior Member

      • Sep 2013
      • 186

      #3
      Originariamente Scritto da masterci
      Praticamente genera il segnale buy quando lo SthocasticRSI attraversa dal basso verso l\'alto la linea del minimo e il segnale sell quando attraversa dall\'alto verso il basso la linea del massimo.
      Mi sapete dire dove cavolo sbaglio??????

      segnale buy
      Codice:
      SRSI > @valmin AND REF(SRSI, 1) < @valmin
      segnale sell
      Codice:
      SRSI < @valmax AND REF(SRSI, 1) > @valmax
      Ciao Masterci,
      se leggi le tue condizioni vedrai che beetrader fa esattamente quello che hai scritto.
      Quindi se vuoi ottenere qualcosa di diverso devi cambiare le condizioni, eventualmente invertendo i segni
      maggiore e minore.
      Saluti
      Massimo

      Comment

      • masterci
        Senior Member

        • Feb 2013
        • 154

        #4
        Grazie Tiziano, ma siamo proprio alle basi delle basi della scuola elementare!!!!!!
        Comunque, come con altri linguaggi di programmazione (tipo MQL5), l\'unico modo per imparare è provare e riprovare e capire perfettamente la sintassi del linguaggio....
        Avevo utilizzato subito la funzione CROSSOVER esattamente come l\'hai scritta tu ma senza risultati, quindi pensavo che sbagliassi qualcosa anche perchè sul manuale è scritto che rileva il passaggio dal basso verso l\'alto di un vettore rispetto all\'altro e non avevo intuito che anche una variabile come @valmin potesse essere considerata un vettore!!!
        Come dicevo, avevo già provato a scrivere il codice come suggerisci tu ma non succede niente ugualmente.....

        Ho creato anche la funzione SthocasticRSI memorizzandola come funzione (ho uno SthocasticRSI.func e uno SthocasticRSI.indicator) anche se non ho capito se quando viene chiamata la routine esterna, il codice si riferisce al .function o al .indicator......
        Il codice della funzione, comunque, è identico a quello dell\'indicatore!

        Dove sbaglio???????

        Comment

        • masterci
          Senior Member

          • Feb 2013
          • 154

          #5
          Originariamente Scritto da maxmax68
          Ciao Masterci,
          se leggi le tue condizioni vedrai che beetrader fa esattamente quello che hai scritto.
          Quindi se vuoi ottenere qualcosa di diverso devi cambiare le condizioni, eventualmente invertendo i segni
          maggiore e minore.
          Saluti
          Massimo
          No Massimo non capisco cosa intendi.....
          Non avendo capito immediatamente l\'utilizzo di CROSSOVER ho bypassato il problema impostando quella condizione:
          per rilevare il passaggio dal basso verso l\'alto dell\'indicatore rispetto alla linea 20, ho detto al programma di controllare che l\'indicatore relativo all\'ultima barra fosse maggiore di 20 e contemporaneamente quello relativo alla barra (n-1) fosse minore di 20.....
          Così facendo ho fotografato proprio il passaggio dal basso verso l\'alto della linea 20!
          Il contrario, ovviamente, per il segnale sell.....

          Comment

          • maxmax68
            Senior Member

            • Sep 2013
            • 186

            #6
            Originariamente Scritto da masterci
            No Massimo non capisco cosa intendi.....
            Non avendo capito immediatamente l\'utilizzo di CROSSOVER ho bypassato il problema impostando quella condizione:
            per rilevare il passaggio dal basso verso l\'alto dell\'indicatore rispetto alla linea 20, ho detto al programma di controllare che l\'indicatore relativo all\'ultima barra fosse maggiore di 20 e contemporaneamente quello relativo alla barra (n-1) fosse minore di 20.....
            Così facendo ho fotografato proprio il passaggio dal basso verso l\'alto della linea 20!
            Il contrario, ovviamente, per il segnale sell.....
            Per evitare fraintendimenti, per cortesia, potresti descrivere a parole le tue condizioni di buy e sell, che poi le traduciamo.
            Saluti.
            Massimo

            Comment

            • masterci
              Senior Member

              • Feb 2013
              • 154

              #7
              segnale buy: l\'indicatore attraversa dal basso verso l\'alto la linea pari al valore corrispondente a @valmin
              segnale sell: l\'indicatore attraversa dall\'alto verso il basso la linea pari al valore corrispondente a @valmax

              Grazie!!

              Beppe

              Comment

              • maxmax68
                Senior Member

                • Sep 2013
                • 186

                #8
                Originariamente Scritto da masterci
                segnale buy: l\'indicatore attraversa dal basso verso l\'alto la linea pari al valore corrispondente a @valmin
                segnale sell: l\'indicatore attraversa dall\'alto verso il basso la linea pari al valore corrispondente a @valmax

                Grazie!!

                Beppe
                Beppe, mi sfugge qualcosa.
                Le condizioni di buy e sell del tuo codice dovrebbero fare esattamente quello che hai scritto qui.
                Invece tu cosa osservi? Quando ti scatta il buy, e quando il sell ?
                Saluti
                Massimo

                Comment

                • masterci
                  Senior Member

                  • Feb 2013
                  • 154

                  #9
                  Infatti Massimo!!!
                  Invece se lo testo in backtest non mi da nessun risultato!!!!
                  Mi sto scervellando ma non capisco come mai non funziona essendo di una semplicità disarmante......

                  Comment

                  • maxmax68
                    Senior Member

                    • Sep 2013
                    • 186

                    #10
                    Originariamente Scritto da masterci
                    Infatti Massimo!!!
                    Invece se lo testo in backtest non mi da nessun risultato!!!!
                    Mi sto scervellando ma non capisco come mai non funziona essendo di una semplicità disarmante......
                    Ciao Beppe,
                    ho copiato e leggermente modificato il tuo codice, creandolo come indicatore per plottarlo e come signal.
                    Il plot dell\'indicatore funziona, mentre il signal non fornisce nessun ordine di buy o sell.
                    Anch\'io non riesco a trovare l\'errore. Che si tratti di un bug di beeTrader ?
                    Saluti
                    Massimo

                    [High]
                    # Signal Buy Script
                    INPUTS: @periods(14), @lineamin(20), @lineamax(80)

                    SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                    SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                    SET DIFF = RSIH - RSIL

                    SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                    SET SRSI = SthocasticRSI

                    SRSI > @lineamin AND REF(SRSI, 1) < @lineamin
                    [/High]

                    [High]
                    # Signal Sell Script
                    SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                    SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                    SET DIFF = RSIH - RSIL

                    SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                    SET SRSI = SthocasticRSI

                    SRSI < @lineamax AND REF(SRSI, 1) > @lineamax
                    [/High]

                    [High]
                    # Indicator
                    INPUTS: @periods(14), @lineamin(20), @lineamax(80)

                    SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                    SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                    SET DIFF = RSIH - RSIL
                    SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                    SET SRSI = SthocasticRSI
                    SET PLOT1 = SRSI
                    SET PLOT2 = @lineamin
                    SET PLOT3 = @lineamax
                    [/High]

                    Comment

                    • masterci
                      Senior Member

                      • Feb 2013
                      • 154

                      #11
                      Infatti Massimo, l\'avevo fatto anche come funzione!!
                      Come indicatore funziona perfettamente.... BOh!!!!
                      Mi sono incaponito perchè analizzandolo come indicatore mi sembra molto promettente, specialmente se accoppiato a qualche altro indicatore per tagliare un po\' i falsi segnali delle fasi laterali.....
                      Sono curioso quindi di fare dei test per vedere cosa ne verrebbe fuori!!!!!

                      Tiziano help!!!!!!!!

                      Comment

                      • maxmax68
                        Senior Member

                        • Sep 2013
                        • 186

                        #12
                        Strano, eppure le condizioni funzionano, come si può vedere plottando l\'indicatore seguente:

                        Codice:
                        #
                        # Indicator true condition Buy_Sell
                        INPUTS: @periods(14), @lineamin(20), @lineamax(80)
                        
                        SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                        SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                        SET DIFF = RSIH - RSIL
                        SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                        SET SRSI = SthocasticRSI
                        SET cond1 = (SRSI > @lineamin) AND (REF(SRSI, 1) < @lineamin)
                        SET cond2 = (SRSI < @lineamax) AND (REF(SRSI, 1) > @lineamax)
                        SET PLOT1 = cond1
                        SET PLOT2 = cond2

                        Comment

                        • Smash
                          Senior Member

                          • Feb 2012
                          • 351

                          #13
                          Originariamente Scritto da masterci
                          .....

                          Ho creato anche la funzione SthocasticRSI memorizzandola come funzione (ho uno SthocasticRSI.func e uno SthocasticRSI.indicator) anche se non ho capito se quando viene chiamata la routine esterna, il codice si riferisce al .function o al .indicator......
                          Ciao,
                          soltanto la funzione può essere richiamata dall\'esterno!

                          Comment

                          • Smash
                            Senior Member

                            • Feb 2012
                            • 351

                            #14
                            Originariamente Scritto da maxmax68
                            Ciao Beppe,
                            ho copiato e leggermente modificato il tuo codice, creandolo come indicatore per plottarlo e come signal.
                            Il plot dell\'indicatore funziona, mentre il signal non fornisce nessun ordine di buy o sell.
                            Anch\'io non riesco a trovare l\'errore. Che si tratti di un bug di beeTrader ?
                            Saluti
                            Massimo

                            [High]
                            # Signal Buy Script
                            INPUTS: @periods(14), @lineamin(20), @lineamax(80)

                            SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                            SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                            SET DIFF = RSIH - RSIL

                            SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                            SET SRSI = SthocasticRSI

                            SRSI > @lineamin AND REF(SRSI, 1) < @lineamin
                            [/High]

                            [High]
                            # Signal Sell Script
                            SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                            SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                            SET DIFF = RSIH - RSIL

                            SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                            SET SRSI = SthocasticRSI

                            SRSI < @lineamax AND REF(SRSI, 1) > @lineamax
                            [/High]

                            [High]
                            # Indicator
                            INPUTS: @periods(14), @lineamin(20), @lineamax(80)

                            SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                            SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                            SET DIFF = RSIH - RSIL
                            SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                            SET SRSI = SthocasticRSI
                            SET PLOT1 = SRSI
                            SET PLOT2 = @lineamin
                            SET PLOT3 = @lineamax
                            [/High]




                            Ciao Massimo,
                            non funziona nemmeno a me!

                            Se invece si prova a sostituire la condizione di Buy e di Sell come segue:

                            Buy Script:
                            Codice:
                            # Signal Buy Script
                            INPUTS: @periods(14), @lineamin(20), @lineamax(80)
                            
                            SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                            SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                            SET DIFF = RSIH - RSIL
                            
                            SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                            SET SRSI = SthocasticRSI
                            
                            SRSI = 0

                            Sell Script:
                            Codice:
                            # Signal Sell Script
                            SET RSIL = MIN(RSI(CLOSE, @periods), @periods)
                            SET RSIH = MAX(RSI(CLOSE, @periods), @periods)
                            SET DIFF = RSIH - RSIL
                            
                            SET SthocasticRSI = ((RSI(CLOSE, @periods) - RSIL) / DIFF) * 100
                            SET SRSI = SthocasticRSI
                            
                            SRSI = 0
                            allora ci si accorge che il sistema compra o vende ad ogni barra !


                            Evidentemente è proprio un bug di beeTrader: il vettore che abbiamo cercato di calcolare nell\'area di scripting del trading system vale sempre zero (ovvero, come se non venisse calcolato affatto), mentre nell\'area di scripting dell\'indicatore viene calcolato regolarmente!
                            Last edited by Smash; 09-11-13, 16:33.

                            Comment

                            • masterci
                              Senior Member

                              • Feb 2013
                              • 154

                              #15
                              Azz, lo sapevo che appena cominciavo a fare qualcosa facevo casino......

                              Ragazzi grazie per i test!
                              Adesso aspettiamo che il gruppo di Tiziano sistemi il bug quanto prima!!!!!!
                              Ho già pronto un po\' di materiale da convertire in Easyscript....

                              Beppe

                              Comment

                              Working...