Pagina 2 di 4 Prima 1234 Ultima

Discussione: Aiuto per un signal

  1. #11

    Data Registrazione
    May 2010
    Messaggi
    47
    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    Salve,



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

    # 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

  2. #12

    Data Registrazione
    May 2010
    Messaggi
    47
    Citazione Originariamente Scritto da Cagalli Tiziano Visualizza Messaggio
    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"

    
    # 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
    Immagini Allegate Immagini Allegate

  3. #13
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    730
    Salve,

    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    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:

    # 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.




    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    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

  4. #14

    Data Registrazione
    May 2010
    Messaggi
    47
    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    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:

    # 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
    Immagini Allegate Immagini Allegate
    File Allegati File Allegati

  5. #15

    Data Registrazione
    May 2010
    Messaggi
    47
    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?
    Ultima modifica di framzero; 26-10-16 alle 10:15

  6. #16
    L'avatar di Cagalli Tiziano
    Data Registrazione
    Dec 2007
    Località
    Rovigo
    Messaggi
    10,047
    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    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:
    ?
    Per inserirlo come codice clicca su questo pulsante:
    Immagini Allegate Immagini Allegate
    ..se corri dietro a due lepri, non ne prendi nemmeno una.

  7. #17
    L'avatar di Andrea Cagalli
    Data Registrazione
    Oct 2010
    Località
    Vicenza
    Messaggi
    3,933
    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    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?
    Ciao caro,

    questa parte:

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

    Nella seconda parte ci pare di capire che lo scopo sia quello di evitare un ingresso ad inizio giornata (se non è così porta pazienza e rispiega with details ).

    In questo caso la soluzione più semplice è utilizzare una condizione del tipo

    TIME > 930
    In quest'esempio la condizione è vera solo a partire dalle 9.31

    Può andare?

    Ciao Ciao

  8. #18
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,612
    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    .
    .
    .
    .

    If(conteggioVolte>=1, compro, compro)
    Quindi
    SET finaleVerde = If(conteggioVolte>=1, compro, compro)
    finaleVerde
    quindi compri sempre sia che sia vera sia che non sia vera

    perdonami ma non riesco a capire il tuo ragionamento

    Apo
    Ultima modifica di Apocalips; 26-10-16 alle 12:21
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  9. #19

    Data Registrazione
    May 2010
    Messaggi
    47
    Grazie per le risposte.
    Purtroppo non riesco a cliccare quell'icona perchè non mi compare proprio la riga di formattazione... sorry.
    No con l'orario non risolvo perchè la condizione che mi serve è Low barra verde ogni volta che c'è la condizione, a partire dalla prima barra di giornata.

    Il codice fatto così dovrebbe andare, forse. L'ho fatto partire sul 10 min e appena ho un responso pubblico i risultati.
    Qualcuno mi da un feedback?

    Apo hai ragione, è un escamotage per avere la condizione sempre, dalla prima barra di giornata in poi. Non trovavo altri modi per far avvenire la condizione di sincronia tra il LOW e la condizione VERDE ogni volta che si presenta. I codici di Tiziano e Max per ora non mi hanno dato il responso che mi aspettavo, anche perchŕ effettivamente è una condizione particolare (e perchè probabilmente faccio fatica a spiegarmi).

    Il senso è che ho notato che questo tipo di condizione spesso è un buon segnale, fin dalla prima barra. Speravo quindi di farla avvenire ogni volta che si presentava.

    Non so, se hai suggerimenti io sono pronto ad accoglierli. C'è sempre da considerare che non sono capace a programmare e ogni passo è una fatica.

    Grazie mille per le risposte e l'attenzione. Spero di essere stato più chiaro.

    PS: il ragionamento parte da questo codice fatto abbastanza a caso che, appunto, agiva sulla prima barra e basta:
    Low=todaylow AND barraverde.

    Francesco

  10. #20
    L'avatar di Andrea Cagalli
    Data Registrazione
    Oct 2010
    Località
    Vicenza
    Messaggi
    3,933
    Citazione Originariamente Scritto da framzero Visualizza Messaggio
    Grazie per le risposte.
    Purtroppo non riesco a cliccare quell'icona perchè non mi compare proprio la riga di formattazione... sorry.
    No con l'orario non risolvo perchè la condizione che mi serve è Low barra verde ogni volta che c'è la condizione, a partire dalla prima barra di giornata.

    Il codice fatto così dovrebbe andare, forse. L'ho fatto partire sul 10 min e appena ho un responso pubblico i risultati.
    Qualcuno mi da un feedback?

    Apo hai ragione, è un escamotage per avere la condizione sempre, dalla prima barra di giornata in poi. Non trovavo altri modi per far avvenire la condizione di sincronia tra il LOW e la condizione VERDE ogni volta che si presenta. I codici di Tiziano e Max per ora non mi hanno dato il responso che mi aspettavo, anche perchŕ effettivamente è una condizione particolare (e perchè probabilmente faccio fatica a spiegarmi).

    Il senso è che ho notato che questo tipo di condizione spesso è un buon segnale, fin dalla prima barra. Speravo quindi di farla avvenire ogni volta che si presentava.

    Non so, se hai suggerimenti io sono pronto ad accoglierli. C'è sempre da considerare che non sono capace a programmare e ogni passo è una fatica.

    Grazie mille per le risposte e l'attenzione. Spero di essere stato più chiaro.

    PS: il ragionamento parte da questo codice fatto abbastanza a caso che, appunto, agiva sulla prima barra e basta:
    Low=todaylow AND barraverde.

    Francesco
    Ciao caro,
    allora l'idea non è male assolutamente perciò vediamo di lavorarci su un po.

    Affinchè le condizioni

    barraVerde
    e
    condizioneLow
    entrino sempre è corretto usare l'operatore AND come hai fatto.

    Non è per caso che intendi fare più entrate consecutive nella stessa direzione? Ovvero usare il Pyramiding? In questo caso negli Advanced Settings trovi la casella da spuntare con la possibilità di assegnare il numero massimo di contratti che vuoi a mercato contemporaneamente.

    Cattura.PNG

    Ciao Ciao

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Contattaci

Chiama gli esperti
+39 0425 792923

Chiamaci
Email

Richiedi informazioni via E-MAIL
info@playoptions.it

Scrivici
Nostri Uffici

Vieni a trovarci
45100 Rovigo

Contattaci

Serve Aiuto?

Contattaci per maggiori informazioni.

Denis MorettoSpecialista Finanziario
Contattaci