Aiuto per un signal

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • framzero
    Member
    • May 2010
    • 47

    #1

    Aiuto per un signal

    Buongiorno,
    non riesco a capire come stabilire una condizione a un signal (che so essere banale), cioè:
    una volta che stabilisco che c\'è un LOWEST di Giornata, alla prima barra verde, compro. Non riesco a capire come scrivere di verificare ogni volta un nuovo LOWEST.

    Francesco
  • Cagalli Tiziano
    Senior Member
    • Dec 2007
    • 11252

    #2
    Originariamente Scritto da framzero
    Buongiorno,
    non riesco a capire come stabilire una condizione a un signal (che so essere banale), cioè:
    una volta che stabilisco che c\'è un LOWEST di Giornata, alla prima barra verde, compro. Non riesco a capire come scrivere di verificare ogni volta un nuovo LOWEST.

    Francesco
    Cosi come hai posto la domanda, il LL viene verificato automaticamente e appena succede si aggiorna.
    Se non è quello che hai chiesto scrivi la condizione che vorresti.
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

    Comment

    • framzero
      Member
      • May 2010
      • 47

      #3
      Mi sono spiegato malino...
      Il codice che ho usato è low=todaylow and se c\'è la barra verde ok. Ma ovviamente scritto così mi prende solo il primo low di giornata. Vorrei che per ogni nuovo Todaylow a partire dal primo, a cui segue una barra verde, mi parta il segnale buy.

      Purtroppo faccio ancora fatica a capire i procedimenti logici per usare al meglio easyscript.

      Grazie mille (per l\'ennesima volta) per il prezioso aiuto

      Comment

      • Cagalli Tiziano
        Senior Member
        • Dec 2007
        • 11252

        #4
        Originariamente Scritto da framzero
        Mi sono spiegato malino...
        Il codice che ho usato è low=todaylow and se c\'è la barra verde ok. Ma ovviamente scritto così mi prende solo il primo low di giornata. Vorrei che per ogni nuovo Todaylow a partire dal primo, a cui segue una barra verde, mi parta il segnale buy.

        Purtroppo faccio ancora fatica a capire i procedimenti logici per usare al meglio easyscript.

        Grazie mille (per l\'ennesima volta) per il prezioso aiuto
        Ti ho fatto l\'indicatore così vedi se è quello che desideri. (puoi importare il file allegato o fare copia incolla dal testo)
        Se va bene, per trasformarlo in segnale basta che lo copi ed incolli in un segnale e togli dall\'ultima riga "SET PLOT! =" e lasci solo "condizioneFinale"

        Codice:
        
        # Calcola condizione sul prezzo minimo
        SET condizioneLow = (LOW = TODAYLOW())
        # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
        SET barreDaLowGiornata = LASTIF(condizioneLow)
        # Calcola condizione sul "colore" della barra attuale
        SET condizioneBarraVerde = (CLOSE > OPEN)
        # Calcola combinazione delle 2 condizioni precedenti
        SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
        # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
        SET somma = SUM(combinazione, barreDaLowGiornata)
        # Prende in considerazione solo la prima volta delle precedenti
        SET condizionePrimaCombinazione = (somma = 1)
        # Calcola la condizione finale
        SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
        
        SET PLOT1 = condizioneFinale
        File Allegati
        ..se corri dietro a due lepri, non ne prendi nemmeno una.

        Comment

        • Apocalips
          Senior Member

          • May 2011
          • 2630

          #5
          Grazie Tiziano per l\'indicatore

          Andrebbe sistemata una cosetta

          Ho fatto il debug della variabile barreDaLowGiornata

          Questo contatore dovrebbe azzerarsi ad ogni prima barra di inizio nuova giornata, però sembra che questo non sempre avvenga andando a falsare il primo ingresso intraday come nel seguente caso:

          Click image for larger version

Name:	ScreenShot_20161011161333.png
Views:	1
Size:	134.2 KB
ID:	159726

          grazie

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

          Comment

          • framzero
            Member
            • May 2010
            • 47

            #6
            Originariamente Scritto da Cagalli Tiziano
            Ti ho fatto l\'indicatore così vedi se è quello che desideri. (puoi importare il file allegato o fare copia incolla dal testo)
            Se va bene, per trasformarlo in segnale basta che lo copi ed incolli in un segnale e togli dall\'ultima riga "SET PLOT! =" e lasci solo "condizioneFinale"

            Codice:
            
            # Calcola condizione sul prezzo minimo
            SET condizioneLow = (LOW = TODAYLOW())
            # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
            SET barreDaLowGiornata = LASTIF(condizioneLow)
            # Calcola condizione sul "colore" della barra attuale
            SET condizioneBarraVerde = (CLOSE > OPEN)
            # Calcola combinazione delle 2 condizioni precedenti
            SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
            # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
            SET somma = SUM(combinazione, barreDaLowGiornata)
            # Prende in considerazione solo la prima volta delle precedenti
            SET condizionePrimaCombinazione = (somma = 1)
            # Calcola la condizione finale
            SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
            
            SET PLOT1 = condizioneFinale

            Esattamente. Fantastico! Grazie mille per l\'aiuto

            Comment

            • Apocalips
              Senior Member

              • May 2011
              • 2630

              #7
              ATTENZIONE !!!!!!!!

              Non usare lo script per il backtest in quanto la funzioni di prezzo TODAYLOW e TODAYHIGH sono indipendenti dal timeframe e restituiscono pertanto nel backtest sempre il valore max/min di giornata calcolato a posteriori. Entreresti sempre sui max e i min di giornata con equity mostruose.

              Click image for larger version

Name:	ScreenShot_20161011220701.png
Views:	1
Size:	110.3 KB
ID:	159729

              per il front test invece lo script va bene in quanto l\'aggiornamento del TODAYLOW e TODAYHIGH avviene barra dopo barra.

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

              Comment

              • Cagalli Tiziano
                Senior Member
                • Dec 2007
                • 11252

                #8
                Originariamente Scritto da Apocalips
                Grazie Tiziano per l\'indicatore

                Andrebbe sistemata una cosetta

                Ho fatto il debug della variabile barreDaLowGiornata

                Questo contatore dovrebbe azzerarsi ad ogni prima barra di inizio nuova giornata, però sembra che questo non sempre avvenga andando a falsare il primo ingresso intraday come nel seguente caso:

                [ATTACH=CONFIG]20609[/ATTACH]

                grazie

                Apo
                Grazie a te...sistemato per la prox release
                ..se corri dietro a due lepri, non ne prendi nemmeno una.

                Comment

                • framzero
                  Member
                  • May 2010
                  • 47

                  #9
                  ho tocchicciato lo script

                  Buongiorno, torno a bomba sul TS che mi hai aiutato a fare. Ho notato che potrebbe essere un buon filtro far sì che la barra colorata successiva al minimo/massimo abbia una dimensione minima. Ricordando che sono una capra col codice e faccio davvero fatica a programmare, sono qui a chiedere: questa piccola correzione è corretta se programmata così?


                  # Calcola condizione sul prezzo minimo
                  SET condizioneLow = (LOW = TODAYLOW())
                  #Stabilisco la "dimensione" minima che deve avere la barra (E\' giusto? Non ho trovato un altro modo di segnalare la dimensione minima )
                  SET tickmaggiorediuno = (HACLOSE - HAOPEN) > 16

                  # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                  SET barreDaLowGiornata = LASTIF(condizioneLow)
                  # Calcola condizione sul "colore" della barra attuale
                  SET condizioneBarraVerde = (HACLOSE > HAOPEN)
                  # Stabilisco che la barra verde abbia una dimensione minima
                  SET condizioneBarraVerdeMinima = (condizioneBarraVerde = tickmaggiorediuno)
                  # Calcola combinazione delle 2 condizioni precedenti
                  SET combinazione = (condizioneBarraVerdeMinima) AND (barreDaLowGiornata >= 0)
                  # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                  SET somma = SUM(combinazione, barreDaLowGiornata)
                  # Prende in considerazione solo la prima volta delle precedenti
                  SET condizionePrimaCombinazione = (somma = 1)
                  # Calcola la condizione finale
                  SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)

                  condizioneFinale




                  PS: non trovo il tastino per mettere il codice. Non esiste proprio la barra della formattazione...
                  File Allegati

                  Comment

                  • Francario Massimiliano
                    Administrator
                    • Jul 2008
                    • 1033

                    #10
                    Salve,

                    Originariamente Scritto da framzero
                    Buongiorno, torno a bomba sul TS che mi hai aiutato a fare. Ho notato che potrebbe essere un buon filtro far sì che la barra colorata successiva al minimo/massimo abbia una dimensione minima. Ricordando che sono una capra col codice e faccio davvero fatica a programmare, sono qui a chiedere: questa piccola correzione è corretta se programmata così?
                    Credo abbia complicato il codice più di quanto necessario.
                    Il codice dovrebbe diventare:

                    Codice:
                    # Calcola condizione sul prezzo minimo
                    SET condizioneLow = (LOW = TODAYLOW())
                    #Stabilisco la "dimensione" minima che deve avere la barra
                    SET tickmaggiorediuno = (CLOSE - OPEN) > 16
                    
                    # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                    SET barreDaLowGiornata = LASTIF(condizioneLow)
                    # Calcola combinazione delle 2 condizioni precedenti
                    SET combinazione = (tickmaggiorediuno) AND (barreDaLowGiornata >= 0)
                    # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                    SET somma = SUM(combinazione, barreDaLowGiornata)
                    # Prende in considerazione solo la prima volta delle precedenti
                    SET condizionePrimaCombinazione = (somma = 1)
                    # Calcola la condizione finale
                    SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
                     
                    condizioneFinale
                    Nota: HACLOSE ed HAOPEN rappresentano i valori Heikin-Ashi per i prezzi Close ed Open rispettivamente. Sono questi i valori che intende utilizzare ? Nell\'esempio sopra li ho sostituiti con Close ed Open normali.

                    Max Francario
                    Last edited by Francario Massimiliano; 14-10-16, 16:57.
                    Manuale di beeTrader
                    Manuale di Fiuto Beta

                    Comment

                    • framzero
                      Member
                      • May 2010
                      • 47

                      #11
                      Originariamente Scritto da Francario Massimiliano
                      Salve,



                      Credo abbia complicato il codice più di quanto necessario.
                      Il codice dovrebbe diventare:

                      Codice:
                      # Calcola condizione sul prezzo minimo
                      SET condizioneLow = (LOW = TODAYLOW())
                      #Stabilisco la "dimensione" minima che deve avere la barra
                      SET tickmaggiorediuno = (CLOSE - OPEN) > 16
                      
                      # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                      SET barreDaLowGiornata = LASTIF(condizioneLow)
                      # Calcola combinazione delle 2 condizioni precedenti
                      SET combinazione = (tickmaggiorediuno) AND (barreDaLowGiornata >= 0)
                      # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                      SET somma = SUM(combinazione, barreDaLowGiornata)
                      # Prende in considerazione solo la prima volta delle precedenti
                      SET condizionePrimaCombinazione = (somma = 1)
                      # Calcola la condizione finale
                      SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
                       
                      condizioneFinale
                      Nota: HACLOSE ed HAOPEN rappresentano i valori Heikin-Ashi per i prezzi Close ed Open rispettivamente. Sono questi i valori che intende utilizzare ? Nell\'esempio sopra li ho sostituiti con Close ed Open normali.

                      Max Francario
                      si effettivamente ha più senso così. Grazie mille per l\'aiuto

                      Comment

                      • framzero
                        Member
                        • May 2010
                        • 47

                        #12
                        Originariamente Scritto da Cagalli Tiziano
                        Ti ho fatto l\'indicatore così vedi se è quello che desideri. (puoi importare il file allegato o fare copia incolla dal testo)
                        Se va bene, per trasformarlo in segnale basta che lo copi ed incolli in un segnale e togli dall\'ultima riga "SET PLOT! =" e lasci solo "condizioneFinale"

                        Codice:
                        
                        # Calcola condizione sul prezzo minimo
                        SET condizioneLow = (LOW = TODAYLOW())
                        # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                        SET barreDaLowGiornata = LASTIF(condizioneLow)
                        # Calcola condizione sul "colore" della barra attuale
                        SET condizioneBarraVerde = (CLOSE > OPEN)
                        # Calcola combinazione delle 2 condizioni precedenti
                        SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
                        # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                        SET somma = SUM(combinazione, barreDaLowGiornata)
                        # Prende in considerazione solo la prima volta delle precedenti
                        SET condizionePrimaCombinazione = (somma = 1)
                        # Calcola la condizione finale
                        SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
                        
                        SET PLOT1 = condizioneFinale
                        Buongiorno, ho trovato che potrebbe funzionare meglio se il LOW fosse contemporaneo alla barra verde. E anche in questo caso (strano ma vero XD) non mi raccapezzo col codice. Perchè mi serve contare ogni volta un nuovo LOW che sia verde sulla barra stessa e non sulla successiva (o meglio, ANCHE sulla successiva).
                        Posso chiedere ancora un aiuto?


                        E poi non capisco come mai il mio tentativo di usare questo tuo codice abbia risultati strani : con trailing stop attivato spara 250 ordini su 1200 barre orarie e senza, solo controllato con lo stop fa solo 17 ordini alle prime barre caricate e stop. Dopo luglio non va più avanti e non capisco proprio il perchè.

                        # Calcola condizione sul prezzo minimo
                        SET condizioneLow = (LOW = TODAYLOW())
                        # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                        SET barreDaLowGiornata = LASTIF(condizioneLow)
                        # Calcola condizione sul "colore" della barra attuale
                        SET condizioneBarraVerde = (HACLOSE > HAOPEN)
                        # Calcola combinazione delle 2 condizioni precedenti
                        SET combinazioneVerde = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
                        # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                        #SET somma = SUM(combinazioneVerde, barreDaLowGiornata)
                        # Prende in considerazione solo la prima volta delle precedenti
                        #SET condizionePrimaCombinazione = (somma = 1)
                        # Calcola la condizione finale
                        SET condizioneFinaleVerde = combinazioneVerde

                        condizioneFinaleVerde
                        File Allegati

                        Comment

                        • Francario Massimiliano
                          Administrator
                          • Jul 2008
                          • 1033

                          #13
                          Salve,

                          Originariamente Scritto da framzero
                          Buongiorno, ho trovato che potrebbe funzionare meglio se il LOW fosse contemporaneo alla barra verde. E anche in questo caso (strano ma vero XD) non mi raccapezzo col codice. Perchè mi serve contare ogni volta un nuovo LOW che sia verde sulla barra stessa e non sulla successiva (o meglio, ANCHE sulla successiva).
                          Posso chiedere ancora un aiuto?
                          Le modifiche da apportare al codice in questo caso sono minime.
                          La riga infatti contempla già adesso il fatto che il Low di giornata corrisponda alla barra verde. L\'unica riga da modificare è pertanto la 10, dove vengono contate le occorrenze. Se il Low di giornata corrisponde alla barra attuale, barreDaLowGiornata vale zero. Se barreDaLowGiornata vale zero, allora la somma eseguita alla riga 10 su zero periodi vale sempre e comunque zero. Pertanto bisogna modificare il numero di periodi utilizzati nella somma, includendo anche questa condizione, modificando quindi il codice in questo modo:

                          Codice:
                          # Calcola condizione sul prezzo minimo
                          SET condizioneLow = (LOW = TODAYLOW())
                          # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                          SET barreDaLowGiornata = LASTIF(condizioneLow)
                          # Calcola condizione sul "colore" della barra attuale
                          SET condizioneBarraVerde = (CLOSE > OPEN)
                          # Calcola combinazione delle 2 condizioni precedenti
                          SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
                          # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                          SET somma = SUM(combinazione, barreDaLowGiornata + 1)
                          # Prende in considerazione solo la prima volta delle precedenti
                          SET condizionePrimaCombinazione = (somma = 1)
                          # Calcola la condizione finale
                          SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
                           
                          SET PLOT1 = condizioneFinale
                          La modifica è presente sulla riga 10.




                          Originariamente Scritto da framzero
                          E poi non capisco come mai il mio tentativo di usare questo tuo codice abbia risultati strani : con trailing stop attivato spara 250 ordini su 1200 barre orarie e senza, solo controllato con lo stop fa solo 17 ordini alle prime barre caricate e stop. Dopo luglio non va più avanti e non capisco proprio il perchè.

                          ...
                          Con l\'uscita Trailing Stop è abbastanza normale ottenere nei backtest un numero molto più elevato del normale di trades: una volta raggiunto il valore di prezzo corrispondente al Trigger del Trailing Stop, da quel punto in avanti qualsiasi ritracciamento potrebbe portare ad eseguire l\'uscita dal trade corrente, riabilitando quindi la valutazione del codice di Buy / Sell. Se nel trading system è presente solo lo Stop Loss, senza uscite Trailing Stop e Take Profit, è possibile che un trade rimanga aperto molto a lungo. In particolare, se non c\'è uno script di entrata di segno opposto (Sell), il trade potrebbe rimanere aperto all\'infinito, finché non tornerà in perdita.

                          Max Francario
                          Manuale di beeTrader
                          Manuale di Fiuto Beta

                          Comment

                          • framzero
                            Member
                            • May 2010
                            • 47

                            #14
                            Originariamente Scritto da Francario Massimiliano
                            Salve,



                            Le modifiche da apportare al codice in questo caso sono minime.
                            La riga infatti contempla già adesso il fatto che il Low di giornata corrisponda alla barra verde. L\'unica riga da modificare è pertanto la 10, dove vengono contate le occorrenze. Se il Low di giornata corrisponde alla barra attuale, barreDaLowGiornata vale zero. Se barreDaLowGiornata vale zero, allora la somma eseguita alla riga 10 su zero periodi vale sempre e comunque zero. Pertanto bisogna modificare il numero di periodi utilizzati nella somma, includendo anche questa condizione, modificando quindi il codice in questo modo:

                            Codice:
                            # Calcola condizione sul prezzo minimo
                            SET condizioneLow = (LOW = TODAYLOW())
                            # Numero di barre trascorse dall\'ultimo prezzo minimo di giornata
                            SET barreDaLowGiornata = LASTIF(condizioneLow)
                            # Calcola condizione sul "colore" della barra attuale
                            SET condizioneBarraVerde = (CLOSE > OPEN)
                            # Calcola combinazione delle 2 condizioni precedenti
                            SET combinazione = (condizioneBarraVerde) AND (barreDaLowGiornata >= 0)
                            # Calcola quante volte la combinazione delle condizioni e\' avvenuta dall\'ultimo low di giornata
                            SET somma = SUM(combinazione, barreDaLowGiornata + 1)
                            # Prende in considerazione solo la prima volta delle precedenti
                            SET condizionePrimaCombinazione = (somma = 1)
                            # Calcola la condizione finale
                            SET condizioneFinale = (condizionePrimaCombinazione AND combinazione)
                             
                            SET PLOT1 = condizioneFinale
                            La modifica è presente sulla riga 10.






                            Con l\'uscita Trailing Stop è abbastanza normale ottenere nei backtest un numero molto più elevato del normale di trades: una volta raggiunto il valore di prezzo corrispondente al Trigger del Trailing Stop, da quel punto in avanti qualsiasi ritracciamento potrebbe portare ad eseguire l\'uscita dal trade corrente, riabilitando quindi la valutazione del codice di Buy / Sell. Se nel trading system è presente solo lo Stop Loss, senza uscite Trailing Stop e Take Profit, è possibile che un trade rimanga aperto molto a lungo. In particolare, se non c\'è uno script di entrata di segno opposto (Sell), il trade potrebbe rimanere aperto all\'infinito, finché non tornerà in perdita.

                            Max Francario
                            Grazie per la risposta. Ho provato il codice ma non mi sembra funzioni. Io vorrei che a ogni low verde entri buy (usando le Haikin Ashi) ma fatto così non capisco proprio il perchè entri. So che è una condizione rara ma comunque non me la da, quel codice. La cosa più simile che sono riuscito a fare funziona solo all\'apertura; non funziona neanche male ma funziona in maniera ignorante perchè all\'apertura i Low e High sono farlocchi.

                            Provo ad allegare il report e un\'immagine a campione del grafico per far intendere meglio quello che scrivo.

                            Scusate se insisto ma a sto punto non trovando il codice adatto non so se non funziona l\'idea logica di base, perchè non ho risposte corrette dal trading system.

                            Grazie della pazienza

                            Francesco
                            File Allegati

                            Comment

                            • framzero
                              Member
                              • May 2010
                              • 47

                              #15
                              Salve,
                              Sono al lavoro quindi non posso provare il codice(e scrivo dal telefono) ma ho fatto un ragionamento e vorrei capire quanto è scritto correttamente:

                              La condizione di mio esclusivo interesse è:
                              Al low di giornata contemporaneo alla barra Haikin Ashi verde, compro, dove

                              SET barraVerde = HACLOSE>HAOPEN
                              SET condizioneLow = (LOW = TODAYLOW())
                              SET compro = (condizioneLow AND barraVerde)

                              Partendo da questo presupposto, a me interessa pormi la domanda: è giá successo? La risposta puó essere si o no. Per entrambe le domande, la risposta dev\'essere: ok, che succeda ancora.

                              Quindi
                              #conto se esiste la condizione al passato
                              SET conteggioVolte = lastif(compro)
                              Meglio Lastif o Countif?
                              #se è successa (>=1) compro, se non è successa e il conto mi da 0 probabilmente siamo a inizio giornata o in una condizione similare, quindi compro.
                              If(conteggioVolte>=1, compro, compro)
                              Quindi
                              SET finaleVerde = If(conteggioVolte>=1, compro, compro)
                              finaleVerde

                              Quindi, visto che sto rompendo da giorni, per sta roba, chiedo: cosa ne pensate? Gira bene? Qualcuno vuole provarlo?
                              Last edited by framzero; 26-10-16, 10:15.

                              Comment

                              Working...