Consigli su miglioramento mia prima strategia

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #53543 quote
    gackeen
    Participant
    New

    Salve a tutti. Volevo implementare una strategia automatica che sfruttasse il breakout della prima mezz’ora sul DAX. La strategia è quella riportata in questa pagina. http://www.traderpedia.it/wiki/index.php/Il_breakout_dei_primi_30_minuti ; confronto a questa ho scelto di avere uno stop più ampio per lasciare più spazio al mercato.
    Sto provando con 1.5 Microlotti.
    Ho buttato già del codice (con le mie scarse conoscenze)  e di primo acchito i risultati non mi sembrano malaccio. Quale accorgimento potrei inserire per migliorarlo? Sono ancora indeciso se mettere un target oppure sfruttare il solo trailing stop

    DEFPARAM CumulateOrders = False
    DEFPARAM flatafter = 170000

    n = 1.5
    IF Time = 093000 THEN
    alto = highest[2](high)
    basso = lowest[2](low)
    ampiezza = alto – basso
    compra = 0
    vendi = 0
    ENDIF

    if Time > 093000 AND Time <= 170000 THEN

    IF compra = 0 THEN
    buy n share at alto stop
    ENDIF

    IF vendi = 0 THEN
    sellshort n share at basso stop
    ENDIF

    ENDIF

    If longonmarket THEN
    compra = 1
    ENDIF

    IF shortonmarket THEN
    vendi = 1
    ENDIF

    set stop ploss ampiezza pTRAILING ampiezza

    #53547 quote
    robertogozzi
    Moderator
    Master

    Ti prego di usare il tasto “Insert PRT code” indicato con <> sulla barra grigia del post che stai scrivendo, per facilitare la lettura e la comprensione del codice, così:

    DEFPARAM CumulateOrders = False
    DEFPARAM flatafter = 170000
    
    n = 1.5
    IF Time = 093000 THEN
    alto = highest[2](high)
    basso = lowest[2](low)
    ampiezza = alto – basso
    compra = 0
    vendi = 0
    ENDIF
    
    if Time > 093000 AND Time <= 170000 THEN
    
    IF compra = 0 THEN
    buy n share at alto stop
    ENDIF
    
    IF vendi = 0 THEN
    sellshort n share at basso stop
    ENDIF
    
    ENDIF
    
    If longonmarket THEN
    compra = 1
    ENDIF
    
    IF shortonmarket THEN
    vendi = 1
    ENDIF
    
    set stop ploss ampiezza pTRAILING ampiezza

    Anche per inserire un link c’è il pulsante “insert/edit link”: http://www.traderpedia.it/wiki/index.php/Il_breakout_dei_primi_30_minuti

    Roberto

    Nicolas thanked this post
    #53549 quote
    gackeen
    Participant
    New
    Scusa per il quoting (è il mio primo messaggio). Sì, 15 minuti. Prendo in esame candela della 9:00 e quella delle 9:15 per stabilire il range da cui il prezzo dovrebbe uscire
    #53550 quote
    robertogozzi
    Moderator
    Master

    Si, mi sono accorto anche dall’immagine, nel frattempo avevo rimosso quella domanda.

    Do un’occhiata.

    #53557 quote
    robertogozzi
    Moderator
    Master

    Innanzitutto la riga 36, contrariamente agli esempi sul manuale, NON è accettata. Solo un ordine di STOP può essere dato contemporaneamente, o PLOSS o PTRAILING, quindi una delle due:

    set stop ploss ampiezza      //questa oppure...
    set stop pTRAILING ampiezza  //... questa, ma non insieme!

    Nel test che ho fatto ho indicato un capitale iniziale di euro 500 come te, ma ho un drawdown di oltre 800 euro, il che significa che sarei andato in Margin Call!

    Più piccolo è il capitale più alta è la percentuale di guadagno, ma in reale questo ti porebbe ad azzerare il conto in breve!

    Non è molto importante la percentuale di guadagno, quello che importa maggiormante è l’affidabilità nel tempo e la continuità nel generare comunque un profitto, seppure inferiore alle aspettative. Certo la percentuale di guadagno è importante, ma non bruciare il conto lo è di più!

     

     

    #53558 quote
    robertogozzi
    Moderator
    Master

    Ho provato ad inserire il Trailing Stop codificato da Nicolas (https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/)

    con risultati migliori:

    DEFPARAM CumulateOrders = False
    DEFPARAM flatafter = 170000
    
    n = 1.5
    IF Time = 093000 THEN
    alto = highest[2](high)
    basso = lowest[2](low)
    ampiezza = alto - basso
    compra = 0
    vendi = 0
    ENDIF
    //************************************************************************
    //trailing stop function
    trailingstart = 5 //trailing will start @trailinstart points profit
    trailingstep  = 5 //trailing step to move the "stoploss"
     
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
     
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
    newSL = tradeprice(1)+trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    ENDIF
    ENDIF
     
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
    newSL = tradeprice(1)-trailingstep*pipsize
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    ENDIF
    ENDIF
     
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    //************************************************************************
    
    if Time > 093000 AND Time <= 170000 THEN
    
    IF compra = 0 THEN
    buy n share at alto stop
    ENDIF
    
    IF vendi = 0 THEN
    sellshort n share at basso stop
    ENDIF
    
    ENDIF
    
    If longonmarket THEN
    compra = 1
    ENDIF
    
    IF shortonmarket THEN
    vendi = 1
    ENDIF
    
    //set stop ploss ampiezza pTRAILING ampiezza
    set stop ploss ampiezza
    //set stop pTRAILING ampiezza

     

    #53559 quote
    robertogozzi
    Moderator
    Master

    Un’altra precisazione, la riga 8 occorre scriverla così per usare STOP pLOSS (la p minuscola sta per Pips), mentre com’è attualmente Ampiezza è la differenza in prezzo, non in Pips. Per il fatto che utilizzi la strategia col DAX e questo ha un valore espresso con 5 cifre il problema non si pone, ma se tu la provassi con altri strumenti otterresti risultati imprevedebili, perché il DAX se fai 13170 – 13151 ti da come risultato 19, che è sia una differenza di prezzo che di pips. Mentre Eur/Usd se fai 1.1770 – 1.1751 ti da 0.0019 che è la differenza in prezzo, non in Pips! Invece, moltiplicando il risultato per PIPSIZE la piattaforma te lo converte automaticamente in Pips:

    ampiezza = (alto - basso) * pipsize

    altrimenti non funzionerebbe nemmeno il codice di Trailing Stop che ho aggiunto, perché, come noterai, contiene spesso la parola chiave PIPSIZE (o POINTSIZE che è un sinonimo).

     

     

    #53569 quote
    gackeen
    Participant
    New
    Grazie delle dritte. Ne farò tesoro.
    #53951 quote
    Alessio
    Participant
    Senior

    Ciao, prova anche una strategia a breakout sul range della prima ora (dalle 9 alle 10) tf 15 ,i 3 target sono il range x1 x2 x3 

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

Consigli su miglioramento mia prima strategia


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
gackeen @gackeen Participant
Summary

This topic contains 8 replies,
has 3 voices, and was last updated by Alessio
8 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/22/2017
Status: Active
Attachments: 1 files
Logo Logo
Loading...