Announcement

Collapse
No announcement yet.

Back test

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Back test

    Ciao ALexis,
    ho costruito questo banalissimo TS (mi serve per iniziare a capirci qualcosa) questo indica solo le posizioni long (lo short l'ho costruito a parte) vorrei unirli in uno solo.
    Ma soprattutto ne vorrei fare un backtest, considerando le posizioni con stop e reverse continuo.
    Grazi mille Ciro.
    Attached Files

  • #2
    Ciro
    L'efs allegato implementa la strategia da te definita ed e' stato scritto usando soltanto il Formula Wizard.
    Nota che l'efs e' da usarsi soltanto per back testing e non per creare segnali in real time.
    Alex

    Attached Files

    Comment


    • #3
      modificando l'efs che hai allegato tu... volevo provare un backtesting di quest'altro ts... ma applicandolo... mi dice sempre 0 bars received... sbagliato qualcosa? e se volessi il realtime cosa dovrei modificare?

      Thanks
      Attached Files
      Sostieni il Meglio di te , aiutaci a fare di più!

      Fra

      Comment


      • #4
        rettifico...parte...ma mi dà 0 trade...
        Attached Files
        Sostieni il Meglio di te , aiutaci a fare di più!

        Fra

        Comment


        • #5
          grazie

          Caro Alexis,
          prima di tutto ti volevo ringraziare per la tua disponibilità, che è certamente un punto di forza per eSignal.
          Volevo poi chiederti come si fa a inserire una condizioe di chiusura della posizione basata su un altro indicatore, tipo il parabolic sar.

          Quindi entrare sulla media e uscire sul parabolic sar.
          grazie Ciro.

          Comment


          • #6
            Fra
            La seguente immagine mostra le condizioni cha hai inserito nel Set1 (il Set2 e' la stessa cosa ma all'inverso).



            Tradotte in chiaro stanno a significare quanto segue

            Se queste condizioni sono tutte vere:
            ADX(attuale cioe 0) e' maggiore di ADX(attuale cioe 0)
            Oscillatore(attuale) e' maggiore di Oscillatore (una barra fa cioe -1)
            Allora le seguenti azioni verranno eseguite ogni volta ecc ecc


            Se la tua intenzione e' quella di richiamare il valore storico dell'ADX di 5 barre fa allora la condizione va scritta come segue



            Nella fattispecie devi settare Offset al valore corrispondente al lookback desiderato (nell'esempio -5) e lasciare invariato a 1 il numBars. In altra occasione spieghero a cosa serve numBars ma per il momento sappi soltanto che serve a creare un array che non mi pare sia la tua intenzione.
            La stessa cosa vale per l'Oscillatore per il quale richiami la barra precedente (cioe -1) nelle tue condizioni.
            Fammi sapere
            Alex

            Comment


            • #7
              Ciro
              Il piacere e' mio e grazie per I complimenti.
              La variante dell'efs qui allegata aggiunge lo studio Parabolic che viene usato come stop. Usando il Formula Wizard confrontalo con la precedente versione per vedere come e dove ho implemetato le modifiche necessarie.
              Cosi come per l'altra formula questa e' da usarsi soltanto per il back testing e non per generare segnali in tempo reale.
              Alex

              Attached Files

              Comment


              • #8
                Originally posted by Alexis C. Montenegro

                Nella fattispecie devi settare il valore Offset a -5 (o comunque al valore corrispondente al lookback desiderato) e lasciare invariato a 1 il numBars. In altra occasione spieghero a cosa serve numBars ma per il momento sappi soltanto che serve a creare un array che non mi pare sia la tua intenzione.
                La stessa cosa vale per l'Oscillatore per il quale richiami la barra precedente (cioe -1).
                Fammi sapere
                Alex
                mi aveva tratto in inganno numBars...non sono andato a controllare cosa fosse perchè davo per scontato che fosse "il valore di x barre precedenti..."

                vado avanti allora

                rilancio l'altro quesito allora...per avere il segnale in tempo reale invece? (sempre con calma però...praticamente entro oggi pomeriggio arriva la risposta )
                Sostieni il Meglio di te , aiutaci a fare di più!

                Fra

                Comment


                • #9
                  Fra
                  Per poter usare l'efs in tempo reale devi innanzitutto decidere se vuoi che il segnale sia generato intrabarra - con il rischio pero che alla chiusura della barra questo si riveli un segnale "falso" - oppure se vuoi fare scattare il segnale soltanto in chiusura di barra.
                  Per semplicita assumo la seconda opzione nel qual caso le scelte sono due.
                  Quella piu semplice e' di lasciare invariato l'efs e di aggiungere nella sezione preMain il seguente comando
                  setComputeOnClose();
                  Il comando va aggiunto con l'Editor perche il Formula Wizard non consente di farlo. Comunque questo istruisce l'efs a calcolare lo studio soltanto quando la barra si e' chiusa ed e' simile al levare la spunta ad Update every tick in uno studio in TradeStation tanto per capirci.
                  A me personalmente non piace come soluzione perche e' globale nel senso che forza tutte le componenti di quella formula ad essere calcolate soltanto alla chiusura della barra
                  Invece io preferisco usare una funzione che ti ho gia descritto brevemente in questo messaggio e piu precisamente getBarState()==BARSTATE_NEWBAR che istruisce l'efs a calcolare in chiusura di barra solamente quelle componenti della formula che scegli tu.

                  In effetti getBarState()==BARSTATE_NEWBAR istruisce l'efs ad attendere il primissimo tick di una nuova barra prima di computare I valori della barra precedente. In questo modo sei assicurato che la barra precedente e' veramente chiusa.
                  Questo pero ti forza a cambiare un po la logica nel senso che quando BARSTATE_NEWBAR ti indica che la barra precedente e' chiusa tu sei in effetti su di una barra nuova per cui tutte le condizioni dovranno ora riferirsi ad una barra nel passato. Eccoti di seguito le stesse condizioni al Set1 modificate secondo quanto spiegato qui sopra.



                  Nota che io sto assumendo nelle condizioni che tu volevi usare il valore dell'ADX di 5 barre fa e quindi in questo caso devo aggiustarlo a 6 barre fa. Egualmente ho modificato quello che era il valore attuale dell'ADX a quello di una barra fa.

                  A questo punto pero va cambiata anche la logica del comando di Buy o Sell perche questo non avverra piu nello stesso modo usato nella versione di back testing.
                  In quel caso effettuiamo il trade al Close (Strategy.CLOSE) della barra che conferma le condizioni. In questo caso invece dobbiamo farlo all'Open (Strategy.MARKET) della barra in cui ci troviamo. Ergo il comando per il Buy nel Set1 va modificato come da seguente immagine



                  Ripeti la logica per il Set2 e a questo punto l'efs puo essere usato per generare segnali in tempo reale. Tra l'altro questa versione puo essere usata anche per back testing.
                  Alex

                  Comment


                  • #10
                    non m ivorrei incartare...


                    parliamo prima del Backtesting

                    ho impostato come suggerivi tu i valori...ma non mi convince nel senso che:

                    1) se imposto che
                    adx > adx -5
                    osc > osc -5

                    quando l'osc è sotto lo 0...lo calcola bene secondo te quel maggiore ?

                    2)ho dovuto inserire nel long la regola che PDI > MDI nei long(set1) e viceversa negli short (set2)

                    3) nei settaggi del backtesting non trovo un punto dove inserire i valori del tick (per capirci dove si inserisce slippage/commissioni etc etc)

                    Thanks
                    Sostieni il Meglio di te , aiutaci a fare di più!

                    Fra

                    Comment


                    • #11
                      questo è come avrei impostato
                      Attached Files
                      Sostieni il Meglio di te , aiutaci a fare di più!

                      Fra

                      Comment


                      • #12
                        Fra
                        Se ho capito bene la tua domanda mi stai chiedendo se quando l'oscillatore e' negativo "maggiore" significa che sta salendo? Si -1.5 e' maggiore di -2.5 se questo era il tuo dubbio.
                        Comunque un modo veloce per confermare questo e' di creare un efs (con il Formula Wizard la cosa e' molto semplice) nel quale setti per l'appunto quella condizione e istruisci l'efs a dipingere ad esempio il background in verde.
                        Ecco di seguito il risultato di quella condizione ed in allegato l'efs
                        Alex

                        Attached Files

                        Comment


                        • #13
                          ecco... si.. quindi non va bene... nella mia idea originale il trend in accelerazione viene confermato anche dalle MM che si aprono e quindi un valore maggiore dell'osc quando è sopra lo 0 ma minore quando è sotto lo 0... o sbaglio?
                          Sostieni il Meglio di te , aiutaci a fare di più!

                          Fra

                          Comment


                          • #14
                            Fra
                            Corretto. Quindi dovrai aggiungere una ulteriore discriminante alle tue condizioni che definisce che se l'Oscillatore e' sopra lo 0 il valore deve essere maggiore di quello di 5 periodi fa (questo per il Set1) mentre se e' sotto lo 0 il valore deve essere inferiore (per il Set2)
                            Alex

                            Comment


                            • #15
                              Fra
                              Ancora una volta possiamo fare uso dell'efs di prova nel quale aggiungiamo la discriminante che l'Oscillatore deve trovarsi sopra o sotto lo 0 per definire l'accelerazione nell'uno o nell'altro verso
                              Alex

                              Attached Files

                              Comment

                              Working...
                              X