Risultati da 1 a 10 di 16

Visualizzazione Ibrida

  1. #1

    Data Registrazione
    Dec 2012
    Messaggi
    432

    Come filtrare i segnali per ottenere l'alternanza di trade Buy-Sell

    Avrei bisogno del vostro aiuto per risolvere un problema di programmazione e anche per avere una vostra opinione sui miei ragionamenti.

    Ho un Signal basato su un indicatore (nel caso specifico si tratta del Williams %R, ma può valere per qualsiasi altro indicatore).
    Funziona bene sui TF lunghi, come dimostrato da Tiziano recentemente.
    In alcuni casi da buoni risultati anche su TF inferiori.

    Poiché ho notato che su alcuni sottostanti e a certi TF, l'indicatore da un buon segnale di ingresso ma poi il trade chiude in perdita o si rimangia buona parte del gain (vedi immagini), volevo valutare la possibilità di adottare un take profit evitando però un rientro a mercato dello stesso segno.

    Clicca sull'immagine per ingrandirla

Nome: Immagine 124.jpg
Visite: 32
Dimensione: 100.3 KB
ID: 16844


    Nell'immagine sotto un esempio in cui adottando una serie di Take Profit (anziché aspettare la chiusura del segnale), si migliora sensibilmente il gain finale.

    Clicca sull'immagine per ingrandirla

Nome: Immagine 125.jpg
Visite: 36
Dimensione: 113.4 KB
ID: 16845


    Le regole che ho impostato sono le seguenti:

    #Buy Script
    INPUTS: @periods(300)
    SET P= @periods
    WPR (P) > -35 AND REF (WPR (P), 1) <= - 35

    #Sell Script
    SET P= @periods
    WPR (P) < -65 AND REF (WPR (P), 1) >= - 65
    #Exit long Script
    SET P= @periods
    WPR (P) < -65 AND REF (WPR (P), 1) >= - 65
    #Exit short Script
    SET P= @periods
    WPR (P) > -35 AND REF (WPR (P), 1) <= - 35
    La regola che non riesco a codificare è:

    Al raggiungimento del TP, scartare gli altri segnali di ingresso dello stesso segno fino al raggiungimento del segnale di segno opposto.

    In sostanza voglio avere alternanza trade Buy-Sell-Buy....

    Aspetto fiducioso suggerimenti.
    Grazie.

    Alex

  2. #2

    Data Registrazione
    Feb 2012
    Località
    Pisa
    Messaggi
    351
    Citazione Originariamente Scritto da alex69 Visualizza Messaggio
    Avrei bisogno del vostro aiuto per risolvere un problema di programmazione e anche per avere una vostra opinione sui miei ragionamenti.

    Ho un Signal basato su un indicatore (nel caso specifico si tratta del Williams %R, ma può valere per qualsiasi altro indicatore).
    Funziona bene sui TF lunghi, come dimostrato da Tiziano recentemente.
    In alcuni casi da buoni risultati anche su TF inferiori.

    Poiché ho notato che su alcuni sottostanti e a certi TF, l'indicatore da un buon segnale di ingresso ma poi il trade chiude in perdita o si rimangia buona parte del gain (vedi immagini), volevo valutare la possibilità di adottare un take profit evitando però un rientro a mercato dello stesso segno.

    Clicca sull'immagine per ingrandirla

Nome: Immagine 124.jpg
Visite: 32
Dimensione: 100.3 KB
ID: 16844


    Nell'immagine sotto un esempio in cui adottando una serie di Take Profit (anziché aspettare la chiusura del segnale), si migliora sensibilmente il gain finale.

    Clicca sull'immagine per ingrandirla

Nome: Immagine 125.jpg
Visite: 36
Dimensione: 113.4 KB
ID: 16845


    Le regole che ho impostato sono le seguenti:

    #Buy Script
    INPUTS: @periods(300)
    SET P= @periods
    WPR (P) > -35 AND REF (WPR (P), 1) <= - 35

    #Sell Script
    SET P= @periods
    WPR (P) < -65 AND REF (WPR (P), 1) >= - 65
    #Exit long Script
    SET P= @periods
    WPR (P) < -65 AND REF (WPR (P), 1) >= - 65
    #Exit short Script
    SET P= @periods
    WPR (P) > -35 AND REF (WPR (P), 1) <= - 35
    La regola che non riesco a codificare è:

    Al raggiungimento del TP, scartare gli altri segnali di ingresso dello stesso segno fino al raggiungimento del segnale di segno opposto.

    In sostanza voglio avere alternanza trade Buy-Sell-Buy....

    Aspetto fiducioso suggerimenti.
    Grazie.

    Alex

    Ciao Alex,

    in pratica è lo stesso problema di cui si era parlato qui:

    http://www.playoptions.it/vbforum/sh...ng-o-exitShort

    anzi è persino un po' più semplice perchè non hai bisogno di codificare nè l'ExitLong Script nè l'ExitShort Script.

    Pertanto una soluzione tipo quella proposta al post #4 di quel Thread nel tuo caso dovrebbe esserti sufficiente, senza ExitLong Script ed ExitShort Script.
    Ultima modifica di Smash; 16-11-14 alle 20:36

  3. #3

    Data Registrazione
    Dec 2012
    Messaggi
    432
    Citazione Originariamente Scritto da Smash Visualizza Messaggio
    Ciao Alex,

    in pratica è lo stesso problema di cui si era parlato qui:

    http://www.playoptions.it/vbforum/sh...ng-o-exitShort

    anzi è persino un po' più semplice perchè non hai bisogno di codificare nè l'ExitLong Script nè l'ExitShort Script.

    Pertanto una soluzione tipo quella proposta al post #4 di quel Thread nel tuo caso dovrebbe esserti sufficiente, senza ExitLong Script ed ExitShort Script.
    Ciao Smash,
    grazie di cuore per il tuo aiuto.

    Domani provo a integrare lo script.
    Spero di poterlo far funzionare correttamente, sfidando le mie modeste capacità di programmazione.
    Incrociamo infine le dita sperando che ne venga fuori un discreto TS.
    A buon rendere.

  4. #4
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,630
    Citazione Originariamente Scritto da alex69 Visualizza Messaggio
    Ciao Smash,
    grazie di cuore per il tuo aiuto.

    Domani provo a integrare lo script.
    Spero di poterlo far funzionare correttamente, sfidando le mie modeste capacità di programmazione.
    Incrociamo infine le dita sperando che ne venga fuori un discreto TS.
    A buon rendere.
    Vai tranquillo che funziona, ecco il TS lavorare correttamente con lo script di Smash che risolve brillantemente il problema degli ingressi indesiderati tra un segnale e l'altro:

    Clicca sull'immagine per ingrandirla

Nome: 1.jpg
Visite: 43
Dimensione: 102.0 KB
ID: 16847 Clicca sull'immagine per ingrandirla

Nome: 2.PNG
Visite: 43
Dimensione: 81.8 KB
ID: 16848



    ...e con il Bund a timeframe 1 minuto sembra andar molto bene :

    Clicca sull'immagine per ingrandirla

Nome: 1.jpg
Visite: 30
Dimensione: 97.0 KB
ID: 16849Clicca sull'immagine per ingrandirla

Nome: 2.PNG
Visite: 53
Dimensione: 74.7 KB
ID: 16850


    lo script è semplice, basta sostiuire le condizioni buy e sell

    Apo
    Ultima modifica di Apocalips; 17-11-14 alle 02:35
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  5. #5

    Data Registrazione
    Dec 2012
    Messaggi
    432
    Citazione Originariamente Scritto da Apocalips Visualizza Messaggio
    Vai tranquillo che funziona, ecco il TS lavorare correttamente con lo script di Smash che risolve brillantemente il problema degli ingressi indesiderati tra un segnale e l'altro:

    Clicca sull'immagine per ingrandirla

Nome: 1.jpg
Visite: 43
Dimensione: 102.0 KB
ID: 16847 Clicca sull'immagine per ingrandirla

Nome: 2.PNG
Visite: 43
Dimensione: 81.8 KB
ID: 16848



    ...e con il Bund a timeframe 1 minuto sembra andar molto bene :

    Clicca sull'immagine per ingrandirla

Nome: 1.jpg
Visite: 30
Dimensione: 97.0 KB
ID: 16849Clicca sull'immagine per ingrandirla

Nome: 2.PNG
Visite: 53
Dimensione: 74.7 KB
ID: 16850


    lo script è semplice, basta sostiuire le condizioni buy e sell

    Apo
    Splendido!!!
    Avere una tua conferma sulla bontà del sistema, modificato con lo script di Smash, è un'ottima iniezione di fiducia.
    Fra un po' mi metto al lavoro.....
    Grazie Apo.

    Alex

  6. #6

    Data Registrazione
    Dec 2012
    Messaggi
    432
    Molto bene,
    pare che il TS sia sulla buona strada.
    Allego un paio di backtest su titoli azionari con TF 1H.

    Le immagini seguenti sono su A2A:

    Clicca sull'immagine per ingrandirla

Nome: Immagine 126.jpg
Visite: 16
Dimensione: 105.3 KB
ID: 16852 Clicca sull'immagine per ingrandirla

Nome: Immagine 128.jpg
Visite: 30
Dimensione: 76.8 KB
ID: 16853 Clicca sull'immagine per ingrandirla

Nome: Immagine 127.jpg
Visite: 10
Dimensione: 61.3 KB
ID: 16854


    Le immagini seguenti sono su Buzzi:

    Clicca sull'immagine per ingrandirla

Nome: Immagine 129.jpg
Visite: 9
Dimensione: 109.9 KB
ID: 16855 Clicca sull'immagine per ingrandirla

Nome: Immagine 131.jpg
Visite: 21
Dimensione: 80.3 KB
ID: 16856 Clicca sull'immagine per ingrandirla

Nome: Immagine 130.jpg
Visite: 6
Dimensione: 62.1 KB
ID: 16857

  7. #7

    Data Registrazione
    Nov 2008
    Messaggi
    99
    Citazione Originariamente Scritto da alex69 Visualizza Messaggio
    Ciao Smash,
    grazie di cuore per il tuo aiuto.

    Domani provo a integrare lo script.
    Spero di poterlo far funzionare correttamente, sfidando le mie modeste capacità di programmazione.
    Incrociamo infine le dita sperando che ne venga fuori un discreto TS.
    A buon rendere.
    Caro alex69
    visto che da solo non ci sono riuscito, e quindi le mie capacità di programmazione sono oltremodo più modeste delle tue, mi potresti indicare in dettaglio come hai modificato lo script per risolvere il problema da te in origine evidenziato?
    Grazie e cordiali saluti.

  8. #8

    Data Registrazione
    Dec 2012
    Messaggi
    432
    Citazione Originariamente Scritto da DICECC Visualizza Messaggio
    Caro alex69
    visto che da solo non ci sono riuscito, e quindi le mie capacità di programmazione sono oltremodo più modeste delle tue, mi potresti indicare in dettaglio come hai modificato lo script per risolvere il problema da te in origine evidenziato?
    Grazie e cordiali saluti.

    Ciao DICECC,
    lo script di Smash serve a verificare che non si verifichi più di 1 trade dello stesso segno.

    Intanto si impostano le 2 condizioni si Buy e di Sell:
    SET ConditionBuy = (WPR (P) > -35 AND REF (WPR (P), 1) <= - 35)
    SET ConditionSell = (WPR (P) < -65 AND REF (WPR (P), 1) >= - 65)

    Di seguito si impostano i parametri di verifica:
    SET Position = ConditionBuy - ConditionSell
    SET LastPosition = CHANGEIF(Position <> 0, Position)
    Infine la condizione per far partire il segnale Buy:
    ConditionBuy AND REF(LastPosition, 1) <> 1
    Quest'ultima condizione, nel Sell Script diventa:
    ConditionSell AND REF(LastPosition, 1) <> -1
    Le condizioni Exit Long ed Exit Short restano immutate.
    Ci devi inoltre aggiungere il set per il take profit.

    Da solo non ci sarei mai arrivato, ma rileggendo i vari passaggi con l'aiuto contestuale, si riesce a capire la logica che sta dietro.

    Ecco il risultato finale del Buy Script:
    INPUTS: @periods(300), @takeprofit(100)
    SET TAKE_PROFIT= @takeprofit
    SET P= @periods
    
    #Criteri alternanza Buy-Sell
    SET ConditionBuy = (WPR (P) > -35 AND REF (WPR (P), 1) <= - 35)
    SET ConditionSell = (WPR (P) < -65 AND REF (WPR (P), 1) >= - 65)
    SET Position = ConditionBuy - ConditionSell
    SET LastPosition = CHANGEIF(Position <> 0, Position)
     
    ConditionBuy AND REF(LastPosition, 1) <> 1
    Penso che così non avrai problemi.
    Se ho scritto qualche inesattezza Smash o Apo penso che me lo segnaleranno.
    Magari si potrebbero condividere i risultati più interessanti dei backtest che faremo in futuro.
    Saluti.

    Alex

  9. #9

    Data Registrazione
    Nov 2008
    Messaggi
    99
    Citazione Originariamente Scritto da alex69 Visualizza Messaggio
    Ciao DICECC,
    lo script di Smash serve a verificare che non si verifichi più di 1 trade dello stesso segno.

    Intanto si impostano le 2 condizioni si Buy e di Sell:
    SET ConditionBuy = (WPR (P) > -35 AND REF (WPR (P), 1) <= - 35)
    SET ConditionSell = (WPR (P) < -65 AND REF (WPR (P), 1) >= - 65)

    Di seguito si impostano i parametri di verifica:
    SET Position = ConditionBuy - ConditionSell
    SET LastPosition = CHANGEIF(Position <> 0, Position)
    Infine la condizione per far partire il segnale Buy:
    ConditionBuy AND REF(LastPosition, 1) <> 1
    Quest'ultima condizione, nel Sell Script diventa:
    ConditionSell AND REF(LastPosition, 1) <> -1
    Le condizioni Exit Long ed Exit Short restano immutate.
    Ci devi inoltre aggiungere il set per il take profit.

    Da solo non ci sarei mai arrivato, ma rileggendo i vari passaggi con l'aiuto contestuale, si riesce a capire la logica che sta dietro.

    Ecco il risultato finale del Buy Script:
    INPUTS: @periods(300), @takeprofit(100)
    SET TAKE_PROFIT= @takeprofit
    SET P= @periods
    
    #Criteri alternanza Buy-Sell
    SET ConditionBuy = (WPR (P) > -35 AND REF (WPR (P), 1) <= - 35)
    SET ConditionSell = (WPR (P) < -65 AND REF (WPR (P), 1) >= - 65)
    SET Position = ConditionBuy - ConditionSell
    SET LastPosition = CHANGEIF(Position <> 0, Position)
     
    ConditionBuy AND REF(LastPosition, 1) <> 1
    Penso che così non avrai problemi.
    Se ho scritto qualche inesattezza Smash o Apo penso che me lo segnaleranno.
    Magari si potrebbero condividere i risultati più interessanti dei backtest che faremo in futuro.
    Saluti.

    Alex
    Ciao Alex
    sei stato molto gentile a rispondermi in modo così tempestivo, dettagliato e preciso.
    Ti ringrazio moltissimo e spero di poter in qualche modo ricambiare, magari con la condivisione cui hai accennato.
    Cordialmente.
    Dino

  10. #10
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,630
    Citazione Originariamente Scritto da alex69 Visualizza Messaggio
    Se ho scritto qualche inesattezza Smash o Apo penso che me lo segnaleranno.
    Alex
    Nessuna inesattezza Alex, il tuo script funziona correttamente.
    Io lo renderei ancora piu snello con l'utilizzo della funzione crossover creata apposta per semplificare le cose e per scrivere meno a parità di risultato, quindi:

    buy script:

    INPUTS: @periods(300), @lowMark(-35), @highMark(-65), @TakeProfit (100)
    
    set take_profit = @TakeProfit
    
    set A = WilliamsPctR(@periods)
    
    set ConditionBuy = CROSSOVER(A, @lowMark)
    set ConditionSell = CROSSOVER(@highMark, A)
    
    set Position = ConditionBuy - ConditionSell
    set LastPosition = CHANGEIF(Position <> 0, Position)
    
    ConditionBuy AND REF(LastPosition, 1) <> 1
    Sell script:

    set A = WilliamsPctR(@periods)
    
    set ConditionBuy = CROSSOVER(A, @lowMark)
    set ConditionSell = CROSSOVER(@highMark, A)
    
    set Position = ConditionBuy - ConditionSell
    set LastPosition = CHANGEIF(Position <> 0, Position)
    
    ConditionSell AND REF(LastPosition, 1) <> -1
    Colgo l'occasione per ringraziare il buon Smash che riesce sempre a trasformare un' idea di trading in un codice EasySscript elegante, funzionante e perfettamente rispondente alle nostre aspettative. grazie.

    Apo
    Ultima modifica di Apocalips; 19-11-14 alle 00:19
    ....non si desidera ciò che è facile ottenere (Ovidio)....

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
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.