Modifica TP e SL in base ad aumento o diminuzione volatilità

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

    • Jul 2015
    • 138

    #1

    Modifica TP e SL in base ad aumento o diminuzione volatilità

    Ciao a tutti, volevo sapere se è possibile modificare automaticamente i parametri di Take Profit e Stop Loss sulla base dell\'aumento o diminuzione della volatilità.

    Spero di essermi spiegato bene.

    Grazie.
  • Francario Massimiliano
    Administrator
    • Jul 2008
    • 1033

    #2
    Salve,

    Originariamente Scritto da robdd
    Ciao a tutti, volevo sapere se è possibile modificare automaticamente i parametri di Take Profit e Stop Loss sulla base dell\'aumento o diminuzione della volatilità.

    Spero di essermi spiegato bene.

    Grazie.
    si certo, entrambi i parametri possono essere impostati tramite un\'espressione matematica, ad esempio:

    SET STOP_LOSS = @baseStopLoss * (STDDEV(CLOSE, 20, 1.0, SIMPLE) / CLOSE)


    Max Francario
    Manuale di beeTrader
    Manuale di Fiuto Beta

    Comment

    • robdd
      Senior Member

      • Jul 2015
      • 138

      #3
      Originariamente Scritto da Francario Massimiliano
      Salve,



      si certo, entrambi i parametri possono essere impostati tramite un\'espressione matematica, ad esempio:

      SET STOP_LOSS = @baseStopLoss * (STDDEV(CLOSE, 20, 1.0, SIMPLE) / CLOSE)


      Max Francario
      Ho fatto il copia/incolla di cui sopra nel mio script, modificando 20 con 9 e 1.0 con 2.

      Il sistema va in chiusura della posizione ogni volta che ne apre una. Cosa c\'è che non va?


      P.S.: non so come allegare le schermate degli script

      Comment

      • Cagalli Tiziano
        Senior Member
        • Dec 2007
        • 11252

        #4
        Originariamente Scritto da robdd
        Ho fatto il copia/incolla di cui sopra nel mio script, modificando 20 con 9 e 1.0 con 2.

        Il sistema va in chiusura della posizione ogni volta che ne apre una. Cosa c\'è che non va?


        P.S.: non so come allegare le schermate degli script
        Se dopo copiato e incollato premi il tasto < verifica> vedrai che ti scrive in rosso che c\'è qualche cosa che non va...infatti devi dichiarare il parametro @baseStopLoss.
        Cioè devi digitarlo tra gli inputs e lo metti con un valore che dichiari (io ho messo 200)
        A questo punto click su verifica e vedrai che in verde ci sarà la scitta eccellente!

        per allegare il codice:

        selezioni il codice
        control + c
        selezioni l\'area di risposta
        control + v
        selezioni lo scritto che hai incollato
        premi il tasto giallo che ti metterà le due scritte CODE tra parentesi

        invia risposta


        Codice:
        INPUTS:@baseStopLoss(200)
        SET STOP_LOSS = @baseStopLoss * (STDDEV(CLOSE, 20, 1.0, SIMPLE) / CLOSE)
        File Allegati
        ..se corri dietro a due lepri, non ne prendi nemmeno una.

        Comment

        • robdd
          Senior Member

          • Jul 2015
          • 138

          #5
          Codice:
          INPUTS: @periods(9), @strenght(5), @@baseProfitAmount (100), @baseStopLoss (80) 
          set take_profit= @baseProfitAmount*(STDDEV (CLOSE, 9, 2, SIMPLE) / CLOSE)
          SET STOP_LOSS = @baseStopLoss*(STDDEV (CLOSE, 9, 2, SIMPLE) / CLOSE)
          SET A = SuperTrend(@periods, @strenght)
          # Condizione di mercato aperto
          SET timeTrading = (TIME > 0900 AND TIME < 1735)
          CROSSOVER(CLOSE, A) AND timetrading
          La verifica l\'avevo già fatta, esito OK.

          Però, quando apre una posizione la chiude subito.

          Comment

          • Apocalips
            Senior Member

            • May 2011
            • 2630

            #6
            Originariamente Scritto da robdd
            Però, quando apre una posizione la chiude subito.
            probabilmente perchè lo stop loss è troppo vicino al prezzo di ingresso addirittura sotto il tick minimo di variazione

            manda in debug la variabile stoploss e verifica


            Apo
            ....non si desidera ciò che è facile ottenere (Ovidio)....

            Comment

            • robdd
              Senior Member

              • Jul 2015
              • 138

              #7
              Originariamente Scritto da Apocalips
              probabilmente perchè lo stop loss è troppo vicino al prezzo di ingresso addirittura sotto il tick minimo di variazione

              manda in debug la variabile stoploss e verifica


              Apo
              Ho aperto finestra debug da Easy script editor, ma non succede niente.

              Come si fa?

              Comment

              • Apocalips
                Senior Member

                • May 2011
                • 2630

                #8
                Originariamente Scritto da robdd
                Ho aperto finestra debug da Easy script editor, ma non succede niente.

                Come si fa?
                Basta che in fondo allo script aggiungi la seguente riga di comando

                Codice:
                PRINT(STOP_LOSS)
                dopodichè manda in strategy , apri la finestra debug e vedrai stampati i valori di stop loss ad ogni variazione di tick


                Click image for larger version

Name:	Cattura.PNG
Views:	1
Size:	30.3 KB
ID:	158625


                se poi vuoi storicizzare la tua variabile Stop_loss ti costruisci un indicatore di tipo custom

                Click image for larger version

Name:	Cattura1.PNG
Views:	1
Size:	11.4 KB
ID:	158626

                Click image for larger version

Name:	Cattura3.PNG
Views:	1
Size:	69.7 KB
ID:	158627

                buon divertimento

                Apo
                Last edited by Apocalips; 16-11-15, 10:23.
                ....non si desidera ciò che è facile ottenere (Ovidio)....

                Comment

                • robdd
                  Senior Member

                  • Jul 2015
                  • 138

                  #9
                  Grazie mille !!!

                  Comment

                  • robdd
                    Senior Member

                    • Jul 2015
                    • 138

                    #10
                    Fermo restando che sono un niubbo e che mi mancano proprio le basi, però mi piace scoprire cose nuove, pensavo che la base stoploss fosse il numero di punti persi, come ad esempio lo stop loss normale.
                    Invece, devo mettere valori molto più alti (es. 170000).

                    Come mi dovrei regolare?

                    Comment

                    • civvic
                      Senior Member

                      • May 2012
                      • 593

                      #11
                      Originariamente Scritto da Apocalips
                      ...
                      se poi vuoi storicizzare la tua variabile Stop_loss ti costruisci un indicatore di tipo custom

                      [ATTACH=CONFIG]19279[/ATTACH]

                      [ATTACH=CONFIG]19280[/ATTACH]

                      ...

                      Apo
                      Bello, non ci avevo mai pensato che potrebbe essere utile disegnarti una variabile invece di stamparla!
                      Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!

                      Comment

                      • Cagalli Tiziano
                        Senior Member
                        • Dec 2007
                        • 11252

                        #12
                        Originariamente Scritto da robdd
                        Fermo restando che sono un niubbo e che mi mancano proprio le basi, però mi piace scoprire cose nuove, pensavo che la base stoploss fosse il numero di punti persi, come ad esempio lo stop loss normale.
                        Invece, devo mettere valori molto più alti (es. 170000).

                        Come mi dovrei regolare?
                        Dato che il valore per cui moltiplichi è molto basso, basta moltiplicarlo per 1000 e così avra una vaiazione che è coerente con il valore in punti ad esempio gli 80 punti vengono variati di 20/100 punti a seconda della volatilità:

                        Codice:
                        INPUTS: @periods(9), @strenght(5), @@baseProfitAmount (100), @baseStopLoss (80) 
                        set take_profit= @baseProfitAmount + ((STDDEV(CLOSE, 9, 2, SIMPLE) / close)*1000)
                        SET STOP_LOSS = @baseStopLoss + ((STDDEV (CLOSE, 9, 2, SIMPLE) / close)*1000)
                        SET A = SuperTrend(@periods, @strenght)
                        # Condizione di mercato aperto
                        SET timeTrading = (TIME > 0900 AND TIME < 1735)
                        
                        
                        CROSSOVER(CLOSE, A)
                        
                         
                        PRINT(STOP_LOSS, TAKE_PROFIT)
                        ..se corri dietro a due lepri, non ne prendi nemmeno una.

                        Comment

                        • zenith
                          Senior Member

                          • Nov 2012
                          • 189

                          #13
                          2 STOP LOSS is megl che uan !!

                          [QUOTE=Cagalli Tiziano;86084]Dato che il valore per cui moltiplichi è molto basso, basta moltiplicarlo per 1000 e così avra una vaiazione che è coerente con il valore in punti ad esempio gli 80 punti vengono variati di 20/100 punti a seconda della volatilità:

                          [CODE]INPUTS: @periods(9), @strenght(5), @@baseProfitAmount (100), @baseStopLoss (80)
                          set take_profit= @baseProfitAmount + ((STDDEV(CLOSE, 9, 2, SIMPLE) / close)*1000)
                          SET STOP_LOSS = @baseStopLoss + ((STDDEV (CLOSE, 9, 2, SIMPLE) / close)*1000)
                          SET A = SuperTrend(@periods, @strenght)
                          # Condizione di mercato aperto
                          SET timeTrading = (TIME > 0900 AND TIME < 1735)


                          CROSSOVER(CLOSE, A)

                          Arrivo sempre fuori tempo massimo ma dato che l\'argomento mi interessa provo a ridestarlo .
                          Questo è l\'antefatto : da qualche tempo sto ragionando sull\'utilizzo del SUPERTREND
                          e in questa discussione ho trovato lo spunto interessante per la costruzione di uno STOP
                          che definirei adattativo , utile se .....non si usa il
                          SUPERTREND!!
                          Chiedo scusa anticipatamente se il mio intervento dovesse risultare una perdita di tempo ma vorrei fare notare come , nel caso specifico , l\'uso dell\'idicatore detto SUPERTREND unito allo STOP LOSS che viene aggiunto nella programmazione porti , come conseguenza , ad avere un doppio STOP dato che questo indicatore contiene gia\' nella formula un riferimento all\' ATR ed è stato costruito proprio per dare un livello di uscita dal trade in corso long o short che sia .
                          Forse sarebbe meglio , dato che ogni volta che CAMBIA STATO il SUPER poi ci regala qualche RITRACCIAMENTO , evitare di istruire il programma ad andare LONG O SHORT subito al cambiamento di stato e magari aspettare un ingresso piu\' favorevole come RISCHIO/RENDIMENTO , insomma il caro vecchio PULLBACK in un ambiente piu\' moderno .
                          Concludo chiedendo due cose ,is megl che uan , la prima è clemenza per il mio intervento fa caldo e io non sono piu\' tanto giovane ;
                          la seconda supplica è invece rivolta a chi VUOLSI COSI\' DOVE SI PUOTE è in grado di AIUTARE un povero vecchio trader , un dinosauro della programmazione , che da ormai troppo tempo cerca INUTILMENTE di fare uno SCRIPT per BEE ma anche da usare sul meraviglioso OPTION BACKTEST ENGINE per mettere a mercato efficacemente le proprie STRA-TEGIE , anche senza stra dati i risultati , e lo vorrebbe fare utilizzando il segnale del SUPERTREND ma a condizione che ci sia un PULLBACK dopo il primo segnale . Finora , e concludo davvero , sono riuscito a trovare e copiare il segnale che Denis ha gentilmente scritto e postato sul FORUM ora se qualcuno si commuovesse e volesse aggiungere anche lo SCRIPT che mi permettesse di utilizzare in abbinamento una LINEAR REGRESSION SLOPE per verificare il PULLBACK ,glie ne sarei tanto grato !
                          !
                          File Allegati

                          Comment

                          • Francario Massimiliano
                            Administrator
                            • Jul 2008
                            • 1033

                            #14
                            Salve,

                            Originariamente Scritto da zenith
                            Arrivo sempre fuori tempo massimo ma dato che l\'argomento mi interessa provo a ridestarlo .
                            Questo è l\'antefatto : da qualche tempo sto ragionando sull\'utilizzo del SUPERTREND
                            e in questa discussione ho trovato lo spunto interessante per la costruzione di uno STOP
                            che definirei adattativo , utile se .....non si usa il
                            SUPERTREND!!
                            Chiedo scusa anticipatamente se il mio intervento dovesse risultare una perdita di tempo ma vorrei fare notare come , nel caso specifico , l\'uso dell\'idicatore detto SUPERTREND unito allo STOP LOSS che viene aggiunto nella programmazione porti , come conseguenza , ad avere un doppio STOP dato che questo indicatore contiene gia\' nella formula un riferimento all\' ATR ed è stato costruito proprio per dare un livello di uscita dal trade in corso long o short che sia .
                            Forse sarebbe meglio , dato che ogni volta che CAMBIA STATO il SUPER poi ci regala qualche RITRACCIAMENTO , evitare di istruire il programma ad andare LONG O SHORT subito al cambiamento di stato e magari aspettare un ingresso piu\' favorevole come RISCHIO/RENDIMENTO , insomma il caro vecchio PULLBACK in un ambiente piu\' moderno .
                            Concludo chiedendo due cose ,is megl che uan , la prima è clemenza per il mio intervento fa caldo e io non sono piu\' tanto giovane ;
                            la seconda supplica è invece rivolta a chi VUOLSI COSI\' DOVE SI PUOTE è in grado di AIUTARE un povero vecchio trader , un dinosauro della programmazione , che da ormai troppo tempo cerca INUTILMENTE di fare uno SCRIPT per BEE ma anche da usare sul meraviglioso OPTION BACKTEST ENGINE per mettere a mercato efficacemente le proprie STRA-TEGIE , anche senza stra dati i risultati , e lo vorrebbe fare utilizzando il segnale del SUPERTREND ma a condizione che ci sia un PULLBACK dopo il primo segnale . Finora , e concludo davvero , sono riuscito a trovare e copiare il segnale che Denis ha gentilmente scritto e postato sul FORUM ora se qualcuno si commuovesse e volesse aggiungere anche lo SCRIPT che mi permettesse di utilizzare in abbinamento una LINEAR REGRESSION SLOPE per verificare il PULLBACK ,glie ne sarei tanto grato !
                            !
                            spero di interpretare bene la sua richiesta...
                            Nelle sezioni Buy Script e Sell Script, dovrebbe essere sufficiente modificare la riga finale dove viene espressa la condizione, in un modo simile a questo:

                            Prima:
                            CROSSOVER(CLOSE, A)

                            Dopo:
                            (CLOSE > A) AND (LinearRegressionSlope(CLOSE, 21) > ZeroLine())


                            Nella sezione Sell Script, dovrà usare l\'operatore di confronto opposto, ovvero <, in entrambe le condizioni.

                            Max Francario
                            Manuale di beeTrader
                            Manuale di Fiuto Beta

                            Comment

                            • zenith
                              Senior Member

                              • Nov 2012
                              • 189

                              #15
                              Risposta fulminea !

                              Originariamente Scritto da Francario Massimiliano
                              Salve,



                              spero di interpretare bene la sua richiesta...
                              Nelle sezioni Buy Script e Sell Script, dovrebbe essere sufficiente modificare la riga finale dove viene espressa la condizione, in un modo simile a questo:

                              Prima:
                              CROSSOVER(CLOSE, A)

                              Dopo:
                              (CLOSE > A) AND (LinearRegressionSlope(CLOSE, 21) > ZeroLine())


                              Nella sezione Sell Script, dovrà usare l\'operatore di confronto opposto, ovvero <, in entrambe le condizioni.

                              Max Francario


                              Grazie Max , trovare un programmatore di buon cuore di questi tempi non è facile , se poi agiungiamo anche fulmineo ...beh allora ci siete solo voi di P.O. !!!
                              Ci siamo ....quasi ....effettivamente per quanto possa sembrare strano un codicillo che acquista /vende all\'attraversamento della linea dello zero ero riuscito a buttarlo giu\' pure io !! Tanto per dire che forse EASYSCRIPT è davvero alla portata di molti ....
                              Il problema per programmatori d\'annata ( quaternario o giu\' di li\' ) del mio stampo è scrivere che :
                              QUANDO IL SEGNALE E\' LONG/SHORT a seguito dell\'CROSSOVER del LAST/CLOSE della linea del SUPERTREND NON VOGLIO FARE NULLA ( il supertrend mi serve solo per avere un AMBIENTE LONG/SHORT all\'interno del quale decidere quale sia la strategia piu\' logica in quel momento )
                              Successivamente PER ENTRARE A MERCATO ho bisogno di un fase di PULLBACK che mi vada a migliorare il rapporto rischio/rendimento e siccome la LINEAR REGRESSION SLOPE nel momento in cui viene GENERATO IL SEGNALE spesso è gia\' sopra/sotto lo zero devo attendere che lo SLOPE torni INDIETRO .
                              Insomma mi servirebbe uno SCRIPT adatto che DOPO il primo segnale di FORZA/DEBOLEZZA entrasse alla ripresa del TREND .
                              A scopo puramente esplicativo cerchero\' di postare un grafico , mi scuso dato che per ragione di brevita\' ne utilizzero\' uno di un concorrente ma su questo so scrivere e fare frecce a iosa !!
                              Cordialissimi
                              File Allegati

                              Comment

                              Working...