Bee trader_ le funzioni che vorrei

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • TFiutoT384
    Senior Member
    • Oct 2009
    • 566

    #1

    Bee trader_ le funzioni che vorrei

    Inizio questo post che potrebbe essere una cartella dove raccogliere le funzioni/comadi/ordini che non si sono osservate ma che si vorrebbero.
    Una funzione che trovo fondamentale e che non ho letto (ma che forse c\'è e a me è sfuggita) è la possibilità di entrare ed uscire ad un prezzo più favorevole rispetto a quello di input. Se ad esempio, sul dax il mio TS va a mercato long a 8756, considerando che spesso ritraccia, potrei volere un ingresso ad esempio a 3 punti in meno, ovvero a 8753 (oppure modulabile non in punti ma in %, come ad esempio 0,05%), perché dal backtest ho notato che nei periodi considerati, quasi sempre ritraccia di 5 punti ad esempio. Per cui se entro a -3 punti long rispetto all\'ingresso posso "beccare" quasi tutti i trade ma con un gain migliore. In questo modo poteri anche compensare il bid-ask che affligge chi usa un TS che entra col prezzo a mercato. Lo dico perché qualche tempo fa avevo un TS sul bund che spesso entrava a -9 punti long o + 9 punti short, dandomi un vantaggio non indifferente per ogni trade. A volte perdeva qualche trad positivo, ma nel complesso dando 9 punti di vantaggio, aumentava i guadagni nei trade in gain e ammorbidiva parecchio le perdite ed il risultato era: meno trade rispetto al sistema che entrava direttamente sul prezzo ma un gain e un DD decisamente migliori. Poi ho smesso perché basandosi sul cumulative delta avrei dovuto avere uno storico pazzesco e soprattutto un flusso dati molto preciso e costante, non garantibile da IB. Quindi ho dovuto smettere ma il principio di ottimizzare gli ingressi e le uscite (in modo diverso dal trailing stop, ovvero con una possibilità in più di modulare il valore di uscita) sono convinto che darebbe grosse soddisfazioni e penso che sua una funzione facilmente implementabile.
  • Cagalli Tiziano
    Senior Member
    • Dec 2007
    • 11252

    #2
    Originariamente Scritto da TFiutoT384
    Inizio questo post che potrebbe essere una cartella dove raccogliere le funzioni/comadi/ordini che non si sono osservate ma che si vorrebbero.
    Una funzione che trovo fondamentale e che non ho letto (ma che forse c\'è e a me è sfuggita) è la possibilità di entrare ed uscire ad un prezzo più favorevole rispetto a quello di input. Se ad esempio, sul dax il mio TS va a mercato long a 8756, considerando che spesso ritraccia, potrei volere un ingresso ad esempio a 3 punti in meno, ovvero a 8753 (oppure modulabile non in punti ma in %, come ad esempio 0,05%), perché dal backtest ho notato che nei periodi considerati, quasi sempre ritraccia di 5 punti ad esempio. Per cui se entro a -3 punti long rispetto all\'ingresso posso "beccare" quasi tutti i trade ma con un gain migliore. In questo modo poteri anche compensare il bid-ask che affligge chi usa un TS che entra col prezzo a mercato. Lo dico perché qualche tempo fa avevo un TS sul bund che spesso entrava a -9 punti long o + 9 punti short, dandomi un vantaggio non indifferente per ogni trade. A volte perdeva qualche trad positivo, ma nel complesso dando 9 punti di vantaggio, aumentava i guadagni nei trade in gain e ammorbidiva parecchio le perdite ed il risultato era: meno trade rispetto al sistema che entrava direttamente sul prezzo ma un gain e un DD decisamente migliori. Poi ho smesso perché basandosi sul cumulative delta avrei dovuto avere uno storico pazzesco e soprattutto un flusso dati molto preciso e costante, non garantibile da IB. Quindi ho dovuto smettere ma il principio di ottimizzare gli ingressi e le uscite (in modo diverso dal trailing stop, ovvero con una possibilità in più di modulare il valore di uscita) sono convinto che darebbe grosse soddisfazioni e penso che sua una funzione facilmente implementabile.
    Codice:
    Target(prezzo che vuoi)
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

    Comment

    • TFiutoT384
      Senior Member
      • Oct 2009
      • 566

      #3
      Originariamente Scritto da Cagalli Tiziano
      Codice:
      Target(prezzo che vuoi)
      Grazie Tiziano. Ho cercato la funzione sul manuale easy srcipt ma non la trovo.
      Come posso quindi impostare tale funzione in pratica?
      Cioè se ci sono questi 3 casi:
      primo caso: rispetto al prezzo segnale
      a) input long a -3 punti
      b) input short di + 2 punti
      secondo caso: rispetto al prezzo segnale (come sopra solo che anziché usare uno ritracciamento in punti fisso applico la percentuale):
      a) input long a -0,2%
      b) input short + 0,3%
      terzo caso:
      a) input long, attendo che ritraccia ad esempio di 3 punti e poi entro al superamento del prezzo del segnale di 0,5 punti (quindi prima scende di 3 punti e poi risale di 3,5 punti);
      a) input short, attendo che ritraccia ad esempio di 4 punti e poi entro al superamento del prezzo del segnale di 0,5 punti (quindi prima sale di 4 punti e poi scende di 4,5 punti);

      Grazie.

      Comment

      • TFiutoT384
        Senior Member
        • Oct 2009
        • 566

        #4
        Ok penso quindi che attualmente non sia possibile impostare tali condizioni se non si fissa un prezzo, come valore numerico, preciso. Peccato perché entrare in ritracciamento migliorerebbe non poco le prestazioni. Spero che in futuro ci sia tale possibilità.

        Comment

        • maxmax68
          Senior Member

          • Sep 2013
          • 186

          #5
          Originariamente Scritto da TFiutoT384
          Inizio questo post che potrebbe essere una cartella dove raccogliere le funzioni/comadi/ordini che non si sono osservate ma che si vorrebbero.
          Una funzione che trovo fondamentale e che non ho letto (ma che forse c\'è e a me è sfuggita) è la possibilità di entrare ed uscire ad un prezzo più favorevole rispetto a quello di input. Se ad esempio, sul dax il mio TS va a mercato long a 8756, considerando che spesso ritraccia, potrei volere un ingresso ad esempio a 3 punti in meno, ovvero a 8753 (oppure modulabile non in punti ma in %, come ad esempio 0,05%), perché dal backtest ho notato che nei periodi considerati, quasi sempre ritraccia di 5 punti ad esempio. Per cui se entro a -3 punti long rispetto all\'ingresso posso "beccare" quasi tutti i trade ma con un gain migliore. In questo modo poteri anche compensare il bid-ask che affligge chi usa un TS che entra col prezzo a mercato. Lo dico perché qualche tempo fa avevo un TS sul bund che spesso entrava a -9 punti long o + 9 punti short, dandomi un vantaggio non indifferente per ogni trade. A volte perdeva qualche trad positivo, ma nel complesso dando 9 punti di vantaggio, aumentava i guadagni nei trade in gain e ammorbidiva parecchio le perdite ed il risultato era: meno trade rispetto al sistema che entrava direttamente sul prezzo ma un gain e un DD decisamente migliori. Poi ho smesso perché basandosi sul cumulative delta avrei dovuto avere uno storico pazzesco e soprattutto un flusso dati molto preciso e costante, non garantibile da IB. Quindi ho dovuto smettere ma il principio di ottimizzare gli ingressi e le uscite (in modo diverso dal trailing stop, ovvero con una possibilità in più di modulare il valore di uscita) sono convinto che darebbe grosse soddisfazioni e penso che sua una funzione facilmente implementabile.
          Ciao TFiutoT384,
          anche a me sembra una buona idea non entrare subito sul segnale, ma piuttosto aspettare qualche tick di ritracciamento.
          Se poi il ritracciamento non ci dovesse essere, si può sempre programmare per forzare comunque l\'ingresso.
          Su una qualsiasi altra piattaforma non vettoriale io uso il seguente sistema.
          Qui su beeTrader che purtroppo è vettoriale non ho ancora capito come realizzare una cosa simile.

          In pseudocodice:
          IF Condizione_Ingresso = true THEN // Quando si verifica la condizione di ingresso (es.Long)
          Flag_Ingresso_Scattato = true // Viene settato a true il flag
          Prezzo_Ingresso = Close // Viene caricato il prezzo d\'ingresso
          END
          IF Flag_Ingresso_Scattato = true THEN // Quando Flag true aspettiamo il ritracciamento
          IF Close <= Prezzo_Ingresso - 9 Ticks THEN
          Flag_Ingresso_Scattato = false // A ritracciamento ottenuto resetto false flag
          BUY MARKET // e entro a mercato
          END ELSE
          Counter = Counter+1 // Per esempio ad ogni nuova barra posso incrementare un contatore
          IF Counter > 3 THEN // e se entro tre barre non ritraccia entro lo stesso
          Flag_Ingresso_Scattato = false // A ritracciamento ottenuto resetto false flag
          BUY MARKET // e entro a mercato
          END
          END
          END
          Saluti
          Massimo
          Last edited by maxmax68; 19-10-13, 13:18.

          Comment

          • Cagalli Tiziano
            Senior Member
            • Dec 2007
            • 11252

            #6
            Originariamente Scritto da TFiutoT384
            Ok penso quindi che attualmente non sia possibile impostare tali condizioni se non si fissa un prezzo, come valore numerico, preciso. Peccato perché entrare in ritracciamento migliorerebbe non poco le prestazioni. Spero che in futuro ci sia tale possibilità.
            Lo puoi già fare in valore percentuale (equivalente al tick..o ai 9 tick)
            Ecco un sistema basato sull\'incrocio di due medie mobili. @perc è ciò che ti fa entrare ad un prezzo diverso.

            Marco Bosco mi scrive:

            Lo scopo è verificare che due condizioni siano contemporaneamente vere.
            La prima beta è semplicemente A>B
            La seconda dice questo:
            Crea un vettore COND, che sarà TRUE quando il close di ora è minore del close di una barra fa “meno” una percentuale del close di una barra fa.

            Codice:
            #
            INPUTS: @price (CLOSE), @shortperiods(3), @longperiods(12), @perc(0.1)
             SET A = SMA(@price, @shortperiods)
            
            SET B = SMA(@price, @longperiods)
             SET beta = A > B
            set COND =  CLOSE  < REF (CLOSE, 1) - (( ref (CLOSE,1) / 100 ) * @perc )
              beta AND COND
            #
            ExitLong:

            Codice:
            #
            SET A = SMA(@price, @shortperiods)
            SET B = SMA(@price, @longperiods)
             A < B
            #
            Last edited by Cagalli Tiziano; 19-10-13, 21:13.
            ..se corri dietro a due lepri, non ne prendi nemmeno una.

            Comment

            • Apocalips
              Senior Member

              • May 2011
              • 2630

              #7
              Originariamente Scritto da Cagalli Tiziano
              Lo puoi già fare in valore percentuale (equivalente al tick..o ai 9 tick)
              Ecco un sistema basato sull\'incrocio di due medie mobili. @perc è ciò che ti fa entrare ad un prezzo diverso.

              Marco Bosco mi scrive:

              Lo scopo è verificare che due condizioni siano contemporaneamente vere.
              La prima beta è semplicemente A>B
              La seconda dice questo:
              Crea un vettore COND, che sarà TRUE quando il close di ora è minore del close di una barra fa “meno” una percentuale del close di una barra fa.

              Codice:
              #
              INPUTS: @price (CLOSE), @shortperiods(3), @longperiods(12), @perc(0.1)
               SET A = SMA(@price, @shortperiods)
              
              SET B = SMA(@price, @longperiods)
               SET beta = A > B
              set COND =  CLOSE  < REF (CLOSE, 1) - (( ref (CLOSE,1) / 100 ) * @perc )
                beta AND COND
              #
              ExitLong:

              Codice:
              #
              SET A = SMA(@price, @shortperiods)
              SET B = SMA(@price, @longperiods)
               A < B
              #


              ho aggiunto anche il sell e funziona eccome se funziona !!!

              ps: faccio notare che con il linguaggio vettoriale son servite 6 righe di codice mentre con il classico se non erro di righe ne conto una dozzina. Io che non ho mai programmato faccio meno fatica con il vettoriale di easyScript in quanto è piu semplice e intuitivo per me trasformare un idea in un programma scritto.


              grazie

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

              Comment

              • TFiutoT384
                Senior Member
                • Oct 2009
                • 566

                #8
                grazie a tutti. Sono convinto che questi script servirà per migliorare la performance, anche solo avendo lo stesso gain con numero ridotto di trade rispetto alla versione senza ritracciamento, sia al sottoscritto che anche ad altri, a seconda del sottostante naturalmente, per alcuno darà poco soprattutto su TF maggiori, dove il ritracciamento è più probabile che avvenga.Sul TS che avevo testato, ma che appunto ho abbandonato per mancanza di flusso dati affidabile e di uno storico sufficiente (TF 1 h e quindi storico abbastanza lungo) avevo avuto mediamente 40 trade al mese con ritracciamento di 9 punti. Senza ritraccaimento arrivavo a 60 trade. Alla fine 40 trade X 9 = 360 punti incassati col ritraccaimento. E\' vero che a volte non andavo a mercato ma alcuni di questi trade che non avevo sfruttato davano un gain di 1-3 punti, per cui poca cosa. Ma quando il sistema andava in loss, 9 punti in più sentivano, ecome. Analogamente quando dopo il ritracciamento risaliva nella direzione giusta, i 9 punti facevano la differenza.
                Infatto mensilmente, prevedendo circa 300-360 punti di recupero col ritracciamento di 9 punti. partivo con un vantaggio di almeno 3000-3500 €: se anche perdevo 20 di trade per la maggior parte favorevoli, a fine mese l\'equity parlava da se.
                Sul CAC40 invece andava bene, con TF di 30\', 4 punti. Altro vantaggio è che, mentre se entro al prezzo di mercato quasi sempre pago lo spread bid-ask, con 4 o 9 di ritraccaimento che sfrutto, stabilisco io il prezzo e quindi oltre a neutralizzare questo problema, se per caso il sistema va in crash, posso sempre avere quel minuto di tempo (nel caso del bund a 9 punti si parla di minuti) per controllare e eventualmente inserire l\'ordine manualmente se avviene qualche malfunzionamento: una sicurezza ulteriore serve sempre.
                Last edited by TFiutoT384; 20-10-13, 11:30.

                Comment

                • maxmax68
                  Senior Member

                  • Sep 2013
                  • 186

                  #9
                  Funzioni matematiche mancanti:
                  - Round ()
                  - Ceil ()
                  - Floor ()
                  eventualmente da integrare nelle prossime release.
                  Saluti
                  Massimo

                  Comment

                  • Francario Massimiliano
                    Administrator
                    • Jul 2008
                    • 1033

                    #10
                    Salve Massimo,
                    Originariamente Scritto da maxmax68
                    Funzioni matematiche mancanti:
                    - Round ()
                    - Ceil ()
                    - Floor ()
                    eventualmente da integrare nelle prossime release.
                    Saluti
                    Massimo
                    le funzioni che ha richiesto sono già in fase di test per la release 0.8.10.16:

                    ROUND(VECTOR, DIGITS)
                    CEIL(VECTOR)
                    FLOOR(VECTOR)


                    Max Francario
                    Manuale di beeTrader
                    Manuale di Fiuto Beta

                    Comment

                    • maxmax68
                      Senior Member

                      • Sep 2013
                      • 186

                      #11
                      Salve Max,
                      accontentato ancora prima di formulare la richiesta.
                      Grazie !!!
                      Approfitto di questo post per ulteriori richieste.
                      -
                      Nel codice postato da BMM nel linguaggio di Amibroker
                      (http://www.playoptions.it/vbforum/sh...ll=1#post65902)
                      ho visto che la funzione IFF equivalente dell\'IF di beeTrade ha una caratteristica a mio parere molto interessante.
                      -
                      E\' possibile nidificare all\'interno della stessa riga di codice più istruzioni IFF, ovvero BMM scrive:
                      SogliaPidiUp = IIf( O > Ref( P, -1 ) ,
                      IIf( StrikeUP < Ref( R1, -1 ) , Ref( R1, -1 ) , IIf( StrikeUP < Ref( R2, -1 ), StrikeUP , Ref( R2, -1 ) ) ),
                      IIf( StrikeUP < Ref( P, -1 ) , Ref( P, -1 ), IIf( StrikeUP < Ref( R1, -1 ), StrikeUP , Ref( R1, -1 ) ) ) );
                      SogliaPidiDown = IIf( O < Ref( P, -1 ) ,
                      IIf( StrikeDown > Ref( S1, -1 ) , Ref( S1, -1 ) , IIf( StrikeDown > Ref( S2, -1 ), StrikeDown , Ref( S2, -1 ) ) ),
                      IIf( StrikeDown > Ref( P, -1 ) , Ref( P, -1 ), IIf( StrikeDown > Ref( S1, -1 ), StrikeDown , Ref( S1, -1 ) ) ) );
                      Forse complesso da decifrare, ma flessibile.
                      Sarebbe possibile aggiungere questa possibilità anche in beeTrader ?
                      Saluti
                      Massimo
                      Last edited by maxmax68; 25-10-13, 21:43.

                      Comment

                      • CIVT
                        Senior Member
                        • Dec 2009
                        • 813

                        #12
                        Ordini STOP e LIMIT in Easyscript

                        Mi scuso se forse è già stato detto ma a quanto ho capito in bT non è possibile creare TS con ordini STOP e LIMIT mentre è invece possibile eseguirli in discrezionale, immagino che questo sia voluto per una questione di sicurezza ma non credete che così ci complichiamo la vita? Lavorando con gli indicatori purtroppo non è la stessa cosa perchè un limit potrebbe venire o non venire eseguito a causa dello spread elevato mentre un ordine stop potrebbe venire eseguito in condizioni particolarmente sfavorevoli e questo in backtest non credo sia possibile verificarlo facilmente con solo ordini market.
                        Last edited by CIVT; 05-11-13, 08:32.

                        Comment

                        • Francario Massimiliano
                          Administrator
                          • Jul 2008
                          • 1033

                          #13
                          Salve,
                          Originariamente Scritto da CIVT
                          Mi scuso se forse è già stato detto ma a quanto ho capito in bT non è possibile creare TS con ordini STOP e LIMIT mentre è invece possibile eseguirli in discrezionale, immagino che questo sia voluto per una questione di sicurezza ma non credete che così ci complichiamo la vita? Lavorando con gli indicatori purtroppo non è la stessa cosa perchè un limit potrebbe venire o non venire eseguito a causa dello spread elevato mentre un ordine stop potrebbe venire eseguito in condizioni particolarmente sfavorevoli e questo in backtest non credo sia possibile verificarlo facilmente con solo ordini market.
                          in EasyScript non è necessario specificare il tipo di ordine, tutti gli ordini generati sono sempre di tipo Market, in quanto negli script si impostano le condizioni di "quando" eseguire l\'acquisto/vendita.
                          In questo stesso thread, si trovano dei post che parlano di come si possono migliorare le performance dei Trading System modificando gli script. In particolare, suggerisco di leggere i post dal #5 in poi.

                          Max Francario
                          Last edited by Francario Massimiliano; 05-11-13, 13:40.
                          Manuale di beeTrader
                          Manuale di Fiuto Beta

                          Comment

                          Working...