Richiesta aiuto per programmare un trailing stop personalizzato

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

    • Sep 2013
    • 186

    #1

    Richiesta aiuto per programmare un trailing stop personalizzato

    Buonasera a tutti,
    vorrei creare un trailing stop basato su dei pivot point, e mi servirebbe l\'aiuto di qualche utente già smaliziato con il linguaggio EasyScript.
    Supponiamo di essere long.
    In pratica il mio trailing stop dovrebbe essere uguale all\'ultimo pivot point caratterizzato da un low minore-uguale al low delle x barre che lo precedono e minore del low delle y barre che lo seguono.
    x e y sono parametri inseriti per input, quindi modificabili.
    Tutte le volte che si crea un nuovo low con le caratteristiche sopra descritte, quello diventa il mio trailing stop che se colpito provoca la chiusura della posizione.
    In EasyScript è possibile programmare una cosa del genere ?
    Un ringraziamento anticipato.
    Massimo
  • Francario Massimiliano
    Administrator
    • Jul 2008
    • 1033

    #2
    Salve Massimo,
    Originariamente Scritto da maxmax68
    Buonasera a tutti,
    vorrei creare un trailing stop basato su dei pivot point, e mi servirebbe l\'aiuto di qualche utente già smaliziato con il linguaggio EasyScript.
    Supponiamo di essere long.
    In pratica il mio trailing stop dovrebbe essere uguale all\'ultimo pivot point caratterizzato da un low minore-uguale al low delle x barre che lo precedono e minore del low delle y barre che lo seguono.
    x e y sono parametri inseriti per input, quindi modificabili.
    Tutte le volte che si crea un nuovo low con le caratteristiche sopra descritte, quello diventa il mio trailing stop che se colpito provoca la chiusura della posizione.
    In EasyScript è possibile programmare una cosa del genere ?
    Un ringraziamento anticipato.
    Massimo
    si, è possibile codificare un trailing stop secondo le caratteristiche richieste.
    Se ho interpretato bene la sua richiesta, questo è un esempio del codice che potrebbe fare al caso suo, da utilizzare come script di Exit Long:

    Codice:
    # Variabili di inputs
    INPUTS: @x(10), @y(10)
    
    # Calcolo il minimo dei minimi delle ultime @x barre
    # Questo valore mi serve per individuare tra @y barre qual\'era il valore minimo
    SET realLow = MIN(LOW, @x)
    
    # Recupero il minimo dei minimi di @y barre fa\'
    SET backLow = REF(realLow, @y)
    
    # Calcolo il minimo dei minimi delle ultime @y barre
    # Questo valore mi serve per verificare che @y barre fa\' ci fosse stato 
    # effettivamente il valore minore
    SET forwLow = MIN(LOW, @y)
    
    # Imposto il prezzo di uscita pari al minimo dei minimi di @y barre fa\'
    # solo quando effettivamente quello era un "pivot point".
    # Altrimenti imposto il prezzo di uscita ad un valore al quale il prezzo
    # non potra\' mai arrivare, in modo che di fatto non esista una 
    # condizione di uscita.
    SET exitPrice = IF(backLow <= forwLow, backLow, -1)
    
    # Condizione di uscita
    CLOSE <= exitPrice
    Il codice che ho riportato qui sopra è solo un esempio, deve adattarlo alle sue necessità.
    Ho usato due variabili, @x ed @y, alle quali ho assegnato un valore iniziale pari a 10, che potranno poi anche essere ottimizzate.

    Max Francario
    Manuale di beeTrader
    Manuale di Fiuto Beta

    Comment

    • maxmax68
      Senior Member

      • Sep 2013
      • 186

      #3
      Grazie Max,
      cerco subito di decifrare il codice.
      Volendo lo si può plottare come un indicatore, vero ?
      Cordialmente.
      Massimo

      Comment

      • Francario Massimiliano
        Administrator
        • Jul 2008
        • 1033

        #4
        Salve,
        Originariamente Scritto da maxmax68
        Grazie Max,
        cerco subito di decifrare il codice.
        Volendo lo si può plottare come un indicatore, vero ?
        Cordialmente.
        Massimo
        certo, qualsiasi valore può essere utilizzato per creare un nuovo indicatore.
        Nel codice dell\'indicatore servirà una riga del tipo:

        Codice:
        SET PLOT1 = ValoreDaVisualizzare
        Max
        Manuale di beeTrader
        Manuale di Fiuto Beta

        Comment

        • Apocalips
          Senior Member

          • May 2011
          • 2630

          #5
          Originariamente Scritto da Francario Massimiliano
          Salve Massimo,


          si, è possibile codificare un trailing stop secondo le caratteristiche richieste.
          Se ho interpretato bene la sua richiesta, questo è un esempio del codice che potrebbe fare al caso suo, da utilizzare come script di Exit Long:

          Codice:
          # Variabili di inputs
          INPUTS: @x(10), @y(10)
          
          # Calcolo il minimo dei minimi delle ultime @x barre
          # Questo valore mi serve per individuare tra @y barre qual\'era il valore minimo
          SET realLow = MIN(LOW, @x)
          
          # Recupero il minimo dei minimi di @y barre fa\'
          SET backLow = REF(realLow, @y)
          
          # Calcolo il minimo dei minimi delle ultime @y barre
          # Questo valore mi serve per verificare che @y barre fa\' ci fosse stato 
          # effettivamente il valore minore
          SET forwLow = MIN(LOW, @y)
          
          # Imposto il prezzo di uscita pari al minimo dei minimi di @y barre fa\'
          # solo quando effettivamente quello era un "pivot point".
          # Altrimenti imposto il prezzo di uscita ad un valore al quale il prezzo
          # non potra\' mai arrivare, in modo che di fatto non esista una 
          # condizione di uscita.
          SET exitPrice = IF(backLow <= forwLow, backLow, -1)
          
          # Condizione di uscita
          CLOSE <= exitPrice
          Il codice che ho riportato qui sopra è solo un esempio, deve adattarlo alle sue necessità.
          Ho usato due variabili, @x ed @y, alle quali ho assegnato un valore iniziale pari a 10, che potranno poi anche essere ottimizzate.

          Max Francario
          grande Max, sei troppo avanti

          io avrei utilizzato una cinquantina di righe e poi mi sarei incartato
          invece tu hai risolto con sole 6 righe di codice.

          Apo
          Last edited by Apocalips; 06-10-13, 22:17.
          ....non si desidera ciò che è facile ottenere (Ovidio)....

          Comment

          • maxmax68
            Senior Member

            • Sep 2013
            • 186

            #6
            Salve Max,
            per completare l\'esempio a fini didattici, le chiederei le seguenti modifiche.
            Innanzitutto trasformare il tutto in un indicatore plottabile tipo Supertrend che quando siamo long segue il prezzo dal basso (pivot low) per poi passare sopra i prezzi (pivot high) quando colpito, con conseguente reverse della posizione.
            Inoltre il valore dell\'exitPrice non dovrebbe essere messo a -1, ma dovrebbe rimanere uguale al valore dell\'ultimo pivot
            finché non si incontra un nuovo pivot point.
            E quando colpito dai prezzi, come nel caso del supertrend dovrebbe reversare al valore dell\'ultimo pivot opposto.
            Saluti
            Massimo

            Comment

            • Cagalli Tiziano
              Senior Member
              • Dec 2007
              • 11252

              #7
              Originariamente Scritto da maxmax68
              Salve Max,
              per completare l\'esempio a fini didattici, le chiederei le seguenti modifiche.
              Innanzitutto trasformare il tutto in un indicatore plottabile tipo Supertrend che quando siamo long segue il prezzo dal basso (pivot low) per poi passare sopra i prezzi (pivot high) quando colpito, con conseguente reverse della posizione.
              Inoltre il valore dell\'exitPrice non dovrebbe essere messo a -1, ma dovrebbe rimanere uguale al valore dell\'ultimo pivot
              finché non si incontra un nuovo pivot point.
              E quando colpito dai prezzi, come nel caso del supertrend dovrebbe reversare al valore dell\'ultimo pivot opposto.
              Saluti
              Massimo
              Proprio a fini didattici è meglio che iniziate voi ad editare gli script e noi a correggere gli eventuali errori.

              L\'idea dell\'indicatore è buona ed è semplice da costruire, cerca sul manuale digitando "control F" la voce indicatori custum oppure plot e provaci.

              Poi, se non esce un risultato valido, posta il code che hai scritto e noi lo correggiamo.
              (così capiamo dove gli utenti trovano difficoltà e possiamo integrare il manuale)
              ..se corri dietro a due lepri, non ne prendi nemmeno una.

              Comment

              • maxmax68
                Senior Member

                • Sep 2013
                • 186

                #8
                Questa è una versione scorretta e non funzionante dell\'indicatore in questione,
                ma è quanto di meglio allo stato attuale riesco a fare. Spiacente !!!
                INPUTS: @x(10), @y(10)
                # Valore del Low di Y+1 periodi fa. E\' il low candidato pivot da esaminare.
                SET CandidatePivotLow = REF(Low,@y+1)
                # Valore del minimo low di @y barre. Quelle a destra del candidato pivot.
                SET RightMinLow = MIN(LOW, @y)
                # Valore del minimo low di @x barre.
                SET LLow = MIN(LOW, @x)
                # Valore del minimo low di @x barre. Quelle a sinistra del candidato pivot.
                SET LeftMinLow = REF(LLow,@y+2)
                # Condizione per pivot.
                SET Condition1 = (CandidatePivotLow <= LeftMinLow) AND (CandidatePivotLow > RightMinLow)
                # Aggiorna valore trailing.
                Set PivotLine = IF(Condition1, CandidatePivotLow, REF(PivotLine, 1))
                SET PLOT1=PivotLine
                In attesa di correzioni e commenti agli errori a beneficio degli utenti
                cordialmente saluto.
                Massimo

                Comment

                Working...