Bee Momentum / Bee Commodity Channel Index per neofiti non programmatori

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • hawking
    Senior Member
    • Aug 2010
    • 105

    #31
    aggiornamento signal 03 dicembre

    Il signal postato ieri sera oggi ha prodotto quanto segue:
    poche operazioni, ma pensavo peggio.
    File Allegati

    Comment

    • hawking
      Senior Member
      • Aug 2010
      • 105

      #32
      buy
      INPUTS: @periods(21), @matype(3), @lowMark(-80), @highMark(29), @trailStop(140), @trailPercent(10), @stopLoss(500)
      SET TRAILING_STOP = @trailStop
      SET TRAILING_PERCENT = @trailPercent
      SET STOP_LOSS = @stopLoss

      SET C = CCI(@periods, @matype)
      SET cond = CROSSOVER(C, @lowMark)
      #PRINT(C)
      #PRINT(cond)
      cond


      sell
      SET C = CCI(@periods, @matype)

      REF(CROSSOVER(@highMark, C),1)

      il signal ottimizzato per domani su unicredit a 5 minuti.
      Il back test (senza REF) l\'ho lanciato solo sulle ultime 260 candele, per sperimentare il discorso di cui al post n°13 di questa discussione.
      Vediamo come si comporta.
      Grazie a chi lo vorrà testare e migliorare.

      Comment

      • CIVT
        Senior Member
        • Dec 2009
        • 813

        #33
        Come anticipato ho aggiunto il filtro orario e di lateralità sul BUND, in BT le performance con i filtri attivi risultano decisamente superiori (migliore equity/ meno drawdown/meno trades)

        BT ottimizzato su TF 5 minuti filtri disattivati

        Click image for larger version

Name:	CCI_MiglioreOPT_no filtri.jpg
Views:	1
Size:	92.6 KB
ID:	149511

        BT ottimizzato su TF 5 minuti con filtri attivati

        Click image for larger version

Name:	CCI_MiglioreOPT_si filtri.jpg
Views:	1
Size:	94.6 KB
ID:	149512

        Domani lo metto in paper e se conferma almeno il 50% dei profitti direi che possiamo accontentarci

        Dimenticavo il codice per chi ha voglia di testare! (I parametri di setup ottimizzati li potete leggere negli INPUTS)

        BUY SCRIPT
        Codice:
        INPUTS: @periods(17), @matype(1), @lowMark(-90), @highMark(90), @trailStop(70), @trailPercent(10), @stopLoss(250), @AmpFdD(0.22)
        
        SET TRAILING_STOP = @trailStop
        SET TRAILING_PERCENT = @trailPercent
        SET STOP_LOSS = @stopLoss
        
        # Calcolo Frontiere della direzione
        SET FdDUp = TODAYOPEN() + @AmpFdD
        SET FdDDown = TODAYOPEN() - @AmpFdD
        
        SET C = CCI(@periods, @matype)
        
        CROSSOVER(C, @lowMark)
        AND CLOSE > FdDDown
        AND CLOSE < FdDUp
        AND TIME > 930 AND TIME < 1700
        SELL SCRIPT
        Codice:
        # Calcolo Frontiere della direzione
        SET FdDUp = TODAYOPEN() + @AmpFdD
        SET FdDDown = TODAYOPEN() - @AmpFdD
        
        SET C = CCI(@periods, @matype)
        
        
        CROSSOVER(@highMark, C)
        AND CLOSE < FdDUp
        AND CLOSE > FdDDown
        AND TIME > 930 AND TIME < 1700
        Last edited by CIVT; 03-12-13, 23:20.

        Comment

        • hawking
          Senior Member
          • Aug 2010
          • 105

          #34
          Originariamente Scritto da CIVT
          Come anticipato ho aggiunto il filtro orario e di lateralità sul BUND, in BT le performance con i filtri attivi risultano decisamente superiori (migliore equity/ meno drawdown/meno trades)

          BT ottimizzato su TF 5 minuti filtri disattivati

          [ATTACH=CONFIG]13070[/ATTACH]

          BT ottimizzato su TF 5 minuti con filtri attivati

          [ATTACH=CONFIG]13071[/ATTACH]

          Domani lo metto in paper e se conferma almeno il 50% dei profitti direi che possiamo accontentarci

          Dimenticavo il codice per chi ha voglia di testare! (I parametri di setup ottimizzati li potete leggere negli INPUTS)

          BUY SCRIPT
          Codice:
          INPUTS: @periods(17), @matype(1), @lowMark(-90), @highMark(90), @trailStop(70), @trailPercent(10), @stopLoss(250), @AmpFdD(0.22)
          
          SET TRAILING_STOP = @trailStop
          SET TRAILING_PERCENT = @trailPercent
          SET STOP_LOSS = @stopLoss
          
          # Calcolo Frontiere della direzione
          SET FdDUp = TODAYOPEN() + @AmpFdD
          SET FdDDown = TODAYOPEN() - @AmpFdD
          
          SET C = CCI(@periods, @matype)
          
          CROSSOVER(C, @lowMark)
          AND CLOSE > FdDDown
          AND CLOSE < FdDUp
          AND TIME > 930 AND TIME < 1700
          SELL SCRIPT
          Codice:
          # Calcolo Frontiere della direzione
          SET FdDUp = TODAYOPEN() + @AmpFdD
          SET FdDDown = TODAYOPEN() - @AmpFdD
          
          SET C = CCI(@periods, @matype)
          
          
          CROSSOVER(@highMark, C)
          AND CLOSE < FdDUp
          AND CLOSE > FdDDown
          AND TIME > 930 AND TIME < 1700
          Ciao CIVT e complimenti.
          Mi sembra un lavoro eccellente veramente anzi excellent!
          Con i filtri che hai impostato la equity è performante. Se in real market gira cosi, direi che ci siamo.
          Leggendo lo script, mi rendo conto di quanto sono indietro sia come programmazione ma anche sul cosa programmare. (e di quanto difficile sia questo mestiere).
          Per me non è un mestiere (e forse meglio cosi\') perchè, con le mie lacune morirei di fame.

          Comment

          • hawking
            Senior Member
            • Aug 2010
            • 105

            #35
            Scusa CIVT ancora una domanda che spero sia sensata: nel signal che hai postato e che vorrei testare, non vedo il REF. Va messo , o con i filtri che hai aggiunto non ha senso metterlo??
            Se va messo puoi postare il signal con il REF?
            Grazie per la pazienza.

            Comment

            • BMM
              Senior Member

              • Jan 2011
              • 1306

              #36
              con 27 o addirittura 11 trades non puoi trarre alcuna conclusione, è assolutamente necessario avere più trade per avere valenza statistica

              Prendete in considerazione di importare dati storici più lunghi per fare backtest ed ottimizzazioni che abbiano un senso

              Comment

              • Apocalips
                Senior Member

                • May 2011
                • 2630

                #37
                In letteratura sistemistica viene ribadito il seguente postulato:

                un test di un trading system è significativo quando è stato eseguito un numero di operazioni di compra/vendita che sia sufficientemente grande da escludere che i risultati di un test siano frutto del caso piu che del sistema stesso.
                La misura della significatività è data dall\' errore della rilevazione che è uguale a sua volta all\'inverso della radice quadrata del numero di operazioni.

                Errore = 1/radice di N dove N indica il numero di operazioni

                Per cui ad esempio per mantenere il livello di errore entro il 5% servirebbero circa 400 operazioni

                sarebbe interessante conoscere il parere di Tiziano sulla correttezza o meno di questa equazione statistico-matematica.

                Apo
                Last edited by Apocalips; 04-12-13, 11:31.
                ....non si desidera ciò che è facile ottenere (Ovidio)....

                Comment

                • BMM
                  Senior Member

                  • Jan 2011
                  • 1306

                  #38
                  Originariamente Scritto da Apocalips
                  In letteratura sistemistica viene ribadito il seguente postulato
                  esatto, facciamo un po\' di pubblicità progresso in attesa di un parere del Maestro

                  Comment

                  • hawking
                    Senior Member
                    • Aug 2010
                    • 105

                    #39
                    Originariamente Scritto da BMM
                    con 27 o addirittura 11 trades non puoi trarre alcuna conclusione, è assolutamente necessario avere più trade per avere valenza statistica

                    Prendete in considerazione di importare dati storici più lunghi per fare backtest ed ottimizzazioni che abbiano un senso
                    No, per carità, non voglio tirare nessuna conclusione.Mi piaceva la equity ottenuta con i filtri di CIVT. E anche il signal un po\' piu\' corposo (ma non troppo) inizia ad assomigliare a qualcosa di serio (che poi non vuol dire anche produttivo).
                    Anzi sono gradite variazioni sul tema da parte di tutti coloro che vogliono cimentarsi.

                    Parlando invece del signal che ho postato ieri sera (e che sto facendo girare stamattina) , è basato su back teste di sole 260 candele a 5 minuti unicredito.(pochissime candele quindi).
                    Stasera vediamo cosa ha prodotto, ma a parte questo ho usato cosi\' poche candele per il back teste perchè faccio il ragionamento inverso : back teste del passato recente , ottimizzazione del signal sul passato recentissimo, percezione che il futuro prossimo sia molto simile al passato recente.Un po\' quello che dicevo al post n° 13.
                    In attesa di avere un TS che legge dati remoti e si autocorregge e autotara sui dati remoti e recenti al fine di ottenere cosi\' dei parameteri che vadano bene per oggi/domani.
                    Cioè considero (forse a torto) che i dati del passato remoto, anzichè ottimizzare il mio back teste e gli imput del signal, passami il termine,me lo "inquinano" con valori che vanno ad inficiare il signal stesso in quanto roba vecchia, dati vecchi, appartenenti ad un mercato vecchio: gennaio 2013, febbraio 2013 ecc..ecc...il back teste cosi incorpora calcoli e ragionamenti "vecchi" che probabile nulla hanno a che vedere con le dinamiche del mercto di oggi e questo vale per unicredit, per fiat, per l\'indice ecc..ecc...
                    Mi piacerebbe sapere il tuo punto di vista, anche perchè leggo che qui il problema di molti è recuperare dati storici il piu\' lontani possibili, ma forse potrebbe essere un falso problema.

                    Comment

                    • Cagalli Tiziano
                      Senior Member
                      • Dec 2007
                      • 11252

                      #40
                      Originariamente Scritto da Apocalips
                      In letteratura sistemistica viene ribadito il seguente postulato:

                      un test di un trading system è significativo quando è stato eseguito un numero di operazioni di compra/vendita che sia sufficientemente grande da escludere che i risultati di un test siano frutto del caso piu che del sistema stesso.
                      La misura della significatività è data dall\' errore della rilevazione che è uguale a sua volta all\'inverso della radice quadrata del numero di operazioni.

                      Errore = 1/radice di N dove N indica il numero di operazioni

                      Per cui ad esempio per mantenere il livello di errore entro il 5% servirebbero circa 400 operazioni

                      sarebbe interessante conoscere il parere di Tiziano sulla correttezza o meno di questa equazione statistico-matematica.

                      Apo
                      Tutti i test di verifica della nostra ipotesi che altro non è che il nostro trading System, possono incorrere in due tipologie di errori, mi riferisco al numero significativo che, se è troppo basso rischia di non respingere un sistema sbagliato ma , se è troppo alto, rischia di respingere ipotesi corrette e quindi di depotenzializzare il sistema.

                      Purtroppo non sono d\'accordo con ciò che scrivono tanti luminari sulle loro osservazioni e manipolazioni/verifiche dei trading system. Il perchè è che probabilmente molti scrivono ma pochi tradano e quindi non conoscono il modello su cui si fanno le campionature.
                      IL modello è la formazione di grafici finanziari azionari che ha una sua letteratura esclusiva. (Questo è il mio pensiero!)

                      Quindi credo che i test debbano avere una popolazione di dati tali da permettere la messa alla prova.
                      Questo secondo me è il punto fondamentale: se il sistema non funziona, lo rifaccio ma, se genera trade vincenti e la equity inizia a inclinarsi verso l\'alto, allora non perdo nemmeno tempo e la metto a mercato in paper.
                      Prezzi veri ma soldi finti.
                      Faccio le opportune rifiniture se sarà il caso, e dopo un centinaio di trade reali lo passo a soldi veri.
                      Dico un centinaio perchè è un numero che mi è sempre bastato.
                      ..se corri dietro a due lepri, non ne prendi nemmeno una.

                      Comment

                      • CIVT
                        Senior Member
                        • Dec 2009
                        • 813

                        #41
                        Originariamente Scritto da Cagalli Tiziano
                        Tutti i test di verifica della nostra ipotesi che altro non è che il nostro trading System, possono incorrere in due tipologie di errori, mi riferisco al numero significativo che, se è troppo basso rischia di non respingere un sistema sbagliato ma , se è troppo alto, rischia di respingere ipotesi corrette e quindi di depotenzializzare il sistema.

                        Purtroppo non sono d\'accordo con ciò che scrivono tanti luminari sulle loro osservazioni e manipolazioni/verifiche dei trading system. Il perchè è che probabilmente molti scrivono ma pochi tradano e quindi non conoscono il modello su cui si fanno le campionature.
                        IL modello è la formazione di grafici finanziari azionari che ha una sua letteratura esclusiva. (Questo è il mio pensiero!)

                        Quindi credo che i test debbano avere una popolazione di dati tali da permettere la messa alla prova.
                        Questo secondo me è il punto fondamentale: se il sistema non funziona, lo rifaccio ma, se genera trade vincenti e la equity inizia a inclinarsi verso l\'alto, allora non perdo nemmeno tempo e la metto a mercato in paper.
                        Prezzi veri ma soldi finti.
                        Faccio le opportune rifiniture se sarà il caso, e dopo un centinaio di trade reali lo passo a soldi veri.
                        Dico un centinaio perchè è un numero che mi è sempre bastato.
                        Anche io ho sempre supportato e condiviso quanto scrive Apocalips ma come dicevamo nei post iniziali ottimizzando ogni sera il TS andiamo a modificare i parametri di setup nel tentativo di adattare giornalmente il TS alle condizioni del mercato quindi come giustamente faceva notare Hawking con questi presupposti un BT sul lungo termine perde la sua validità.

                        Comment

                        • Cagalli Tiziano
                          Senior Member
                          • Dec 2007
                          • 11252

                          #42
                          Originariamente Scritto da CIVT
                          Anche io ho sempre supportato e condiviso quanto scrive Apocalips ma come dicevamo nei post iniziali ottimizzando ogni sera il TS andiamo a modificare i parametri di setup nel tentativo di adattare giornalmente il TS alle condizioni del mercato quindi come giustamente faceva notare Hawking con questi presupposti un BT sul lungo termine perde la sua validità.
                          Infatti non si ottimizza ogni sera ma solo una volta e non in maniera risptretta.

                          L\'ottimizzazione per ogni serie di trade, quella fatta ogni sera per intenderci, può servire a raccogliere una serie di dati, supponiamo la lunghezza di una coppia di medie mobili. Probabilmente ci sarà un numero ricorrente e quello potrebbe essere il numero di settaggio.
                          In pratica è lo stesso lavoro che ottimizzare su una serie storica.

                          Il sistema è vincente se l\'idea è vincente e non se si è ottimizzato bene un\'idea perdente.
                          ..se corri dietro a due lepri, non ne prendi nemmeno una.

                          Comment

                          • hawking
                            Senior Member
                            • Aug 2010
                            • 105

                            #43
                            Buongiorno a tutti.
                            Stamani sono lanciati due signal quello di CIVT con filtri per la lateralità, e quello che ha girato anche ieri senza filtri.
                            Leggo che CIVT sul suo ci sta ancora lavorando.

                            Comment

                            • CIVT
                              Senior Member
                              • Dec 2009
                              • 813

                              #44
                              Originariamente Scritto da hawking
                              Buongiorno a tutti.
                              Stamani sono lanciati due signal quello di CIVT con filtri per la lateralità, e quello che ha girato anche ieri senza filtri.
                              Leggo che CIVT sul suo ci sta ancora lavorando.
                              Ciao hawking! Come immaginavo le performance strabilianti del mio precedente back test erano un miraggio perchè in paper money si è riveltato un TS perdente con 4 trade in loss su 4 tra giovedì e venerdì! Però il filtro di lateralità (fascia della direzione) nasce da una intuizione di Pidi proprio sul BUND quindi ho voluto sviluppare ulteriolmente il TS su questo concetto, ho abbandonato il CCI perchè ora lavoro sul breakout della fascia di lateralità esterna, come al solito il BT è molto promettente ma sarà il paper a dirci se e cosa si può migliorare!

                              Questo BT è su TF orario in modo da avere uno storico piu corposo (periodo considerato 11 Nov - 6 Dec) ma ottimizzato su TF 5 minuti dovrebbe andare anche meglio

                              Click image for larger version

Name:	FDD_TF1h.jpg
Views:	1
Size:	87.6 KB
ID:	149593

                              Questo è il workspace (le condizioni di entrata sono modificabili mentre gli stop loss sono dinamici il primo lavora sulla Slope+LinearRegression mentre il secondo sul ritorno nella fascia della direzione)

                              Click image for larger version

Name:	FDD_CHART.jpg
Views:	1
Size:	120.4 KB
ID:	149594

                              Allego lo script completo per chi volesse aggiungere qualcosa o testarlo su altri sottostanti!

                              BUY SCRIPT
                              Codice:
                              INPUTS: @AmpFdD(0.07), @exitBars(5), @entryBars(1), @SignalExit(10), @TrailStop(20)
                              
                              SET TRAILING_STOP = @TrailStop
                              SET TRAILING_PERCENT = 10
                              
                              # Calcolo Frontiere della direzione
                              SET FddUp = TODAYOPEN() + @AmpFdD
                              SET FdDDown = TODAYOPEN() - @AmpFdD
                              
                              SET BUY = CLOSE < FddUp
                              # Usiamo il LASTIF che conta il numero di barre CLOSE < FdDUp
                              SET EntryBuy = LASTIF(BUY)
                              # Se @entryBars = 3 segnale di ingresso se le ultime 2 barre il CLOSE è rimasto sopra FdDUp e se CLOSE > FdDUp 
                              EntryBuy = @entryBars AND CLOSE > FddUp
                              SELL SCRIPT
                              Codice:
                              # Calcolo Frontiere della direzione
                              SET FddUp = TODAYOPEN() + @AmpFdD
                              SET FdDDown = TODAYOPEN() - @AmpFdD
                              
                              SET SELL = CLOSE > FdDDown
                              # Usiamo il LASTIF che conta il numero di barre CLOSE > FdDDown
                              SET EntrySell = LASTIF(SELL)
                              # Se @entryBars = 3 segnale di ingresso se le ultime 2 barre il CLOSE è rimasto sotto FdDDown e se CLOSE < FdDDown 
                              EntrySell = @entryBars AND CLOSE < FdDDown
                              EXIT LONG
                              Codice:
                              # Calcolo Frontiere della direzione
                              SET FddUp = TODAYOPEN() + @AmpFdD
                              SET FdDDown = TODAYOPEN() - @AmpFdD
                              
                              SET SELLsignal = CLOSE > FddUp
                              # Conto il numero di barre da CLOSE > FddUp
                              SET BarreSELLsignal = LASTIF(SELLsignal)
                              # Conto le barre da quando la condizione BUY non viene rispettata
                              SET ExitBUY = BarreSELLsignal > @exitBars
                              SET Exit1 = ExitBUY AND CLOSE < FddUp
                              
                              
                              SET SignalLine = LR(CLOSE, @SignalExit)
                              # Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è verde
                              SET barre = LASTIF(SignalLine > REF(SignalLine, 1))
                              # barre > 3 significa che le ultime 2 barre la SignalLine e\' stata verde ed anche
                              # la Slope della SignalLine corrente è negativa
                              SET Exit2 = barre > @exitBars AND LinearRegressionSlope(CLOSE, @SignalExit) < 0
                              
                              Exit1
                              OR
                              Exit2
                              EXIT SHORT
                              Codice:
                              # Calcolo Frontiere della direzione
                              SET FddUp = TODAYOPEN() + @AmpFdD
                              SET FdDDown = TODAYOPEN() - @AmpFdD
                              
                              SET BUYsignal = CLOSE < FdDDown
                              # Conto il numero di barre da CLOSE < FdDDown
                              SET BarreBUYsignal = LASTIF(BUYsignal)
                              # Conto le barre da quando la condizione SELL non viene rispettata
                              SET ExitSELL = BarreBUYsignal > @exitBars
                              SET Exit1 = ExitSELL AND CLOSE > FdDDown
                              
                              
                              SET SignalLine = LR(CLOSE, @SignalExit)
                              # Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è rossa
                              SET barre = LASTIF(SignalLine < REF(SignalLine, 1))
                              # barre > 3 significa che le ultime 2 barre la SignalLine e\' stata verde ed anche
                              # la Slope della SignalLine corrente è positiva
                              SET Exit2 = barre > @exitBars AND LinearRegressionSlope(CLOSE, @SignalExit) > 0
                              
                              Exit1
                              OR
                              Exit2
                              Last edited by CIVT; 08-12-13, 03:33.

                              Comment

                              • Cagalli Tiziano
                                Senior Member
                                • Dec 2007
                                • 11252

                                #45
                                Attenzione a verificare che il Trailing Stop sia realizzabile: se metto 1 euro il software lo troverà certamente ad ogni barra e quindi il sistema sarà sempre vincente perchè troverà sempre la condizione di guadagno e mai quella di girare o di stop, ecc... Anche la percentuale deve essere adeguata.
                                Se scrivo Trailing 100 euro e 10 % sul Dax, sarebbe sbagliato perchè un tik del dax è 25 euro mentre io ho detto al sistema di chiuderlo al 10%di 100, cioè 10 euro.

                                Altra cosa guardate l\'evoluzione del sistema anche nel grafico che posto qui sotto: rende benissimo l\'idea di come sono partiti i vari trades e come si sono sviluppati.

                                Non è solo un punto nel grafico ma la storia del mio singolo trade.
                                File Allegati
                                ..se corri dietro a due lepri, non ne prendi nemmeno una.

                                Comment

                                Working...