Ordine non chiuso.

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #55691 quote
    Gianluca
    Participant
    Master

    Ciao a tutti, ho fatto un trading sistem ma presenta due bug che non capisco, in pratica non mi chiude i long quando vorrei nonostante io abbia impostato questo parametro di uscita:

    // Condizioni per uscire da posizioni long
    ciclo = CCI[7]
    escilong = (ciclo CROSSES UNDER 100)
    IF escilong THEN
    SELL AT MARKET
    ENDIF

     

    Come ho messo nella foto sarebbe dovuto essere inserito un ordine di chiusura quando il CCI oltrepassa in discesa 100, ma ciò non è avvenuto. (meno male che sta solo in demo).

     

    Ho un altro problema, lo script, nonostante abbia questi parametri iniziali;

     

    DEFPARAM FLATBEFORE = 080000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario “Flat After”
    DEFPARAM FLATAFTER = 210000

     

    Mantiene le posizioni aperte oltre le ore 21, non le chiude proprio la sera. 

    Non capisco perchè. Potete aiutarmi?

     

    #55695 quote
    Gianluca
    Participant
    Master

    Questo mi accade sul CFD Futures di IG scandenza Marzo del Germany30, possibile che sia perchè non è ancora scaduto Dicembre?

    #55697 quote
    robertogozzi
    Moderator
    Master

    Per quanto riguarda la prima domanda, forse alla candela da te indicata può darsi che il CCI fosse 100,00 e quindi non ancora UNDER, però avrebbe dovuto chiudere il trade alla candela successiva. Occorrerebbe il codice completo, perché può darsi che quelle poche righe che tu hai scritto facciano parte, per tua scelta o per tuo errore, di unblocco IF che risulta FALSO e non viene mai eseguito, quindi anche gli IF più interni seguono la stessa sorte.

    Per la seconda domanda, non so proprio dirti, prova con altri strumenti oppure stesso strumento ma di diverso tipo, mini ecc….

    Per scrivere il codice , utilizza il pulsante <> “insert PRT code”

    #55699 quote
    Gianluca
    Participant
    Master
    Per quanto riguarda la prima domanda, forse alla candela da te indicata può darsi che il CCI fosse 100,00 e quindi non ancora UNDER, però avrebbe dovuto chiudere il trade alla candela successiva. Occorrerebbe il codice completo, perché può darsi che quelle poche righe che tu hai scritto facciano parte, per tua scelta o per tuo errore, di unblocco IF che risulta FALSO e non viene mai eseguito, quindi anche gli IF più interni seguono la stessa sorte. Per la seconda domanda, non so proprio dirti, prova con altri strumenti oppure stesso strumento ma di diverso tipo, mini ecc…. Per scrivere il codice , utilizza il pulsante <> “insert PRT code”


    Grazie mille! Il problema era proprio la funzione IF in origine avevo questa funzione:

    //*****APERTURA LONG***** Condizioni per entrare su posizioni long
    IF NOT ONMARKET THEN
    parametri
    if time > 080000 and C1 and c2 and not daysForbiddenEntry then
    BUY PositionSize CONTRACT AT MARKET
    ENDIF
    // Condizioni per uscire da posizioni long
    ciclo = CCI[55]
    escilong = (ciclo CROSSES UNDER 100)
    IF escilong THEN
    SELL AT MARKET
    ENDIF
    ENDIF

    ed infatti non usciva, allora ho eliminato il primo if not on market ed ho fatto così

    if time > 080000 and C1 and c2 and not daysForbiddenEntry and not onmarket then
    BUY PositionSize CONTRACT AT MARKET
    ENDIF

     

    ed ora è uscito!

    #55700 quote
    Gianluca
    Participant
    Master

    ehm… se aggiusto il codice per lo short con gli stessi settaggi torna a dare errore..

    #55701 quote
    Gianluca
    Participant
    Master
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    // /////////////////////////////////////////////////////////////////////////
    positionsize=1//+2*round((strategyprofit*2)/10000)
    // PARAMETRI DI PREZZO
    // Stop e target
    SET STOP PLOSS 70
    set target profit 187
    
    //WeightedClose
    //TotalPrice
    //TypicalPrice
    //TRADEPRICE
    //TOTALPRICE
    //*****APERTURA LONG***** Condizioni per entrare su posizioni long
    IF NOT ONMARKET THEN
    I1 =  
    I2 =  
    c1 =  
    c2 =  
    if time > 080000 and C1 and c2 and not daysForbiddenEntry  then
    BUY PositionSize CONTRACT AT MARKET
    ENDIF
    // Condizioni per uscire da posizioni long
    ciclo = CCI[7]
    escilong = (ciclo CROSSES UNDER 100)
    IF escilong  THEN
    SELL AT MARKET
    ENDIF
    ENDIF
    //*****APERTURA SHORT*****
    ///////////////////
    IF NOT ONMARKET THEN
    I1 =  
    I2 =  
    c1 =  
    c2 =  
    if time>080000 and C1 and c2 and not daysForbiddenEntry  then
    sellshort PositionSize CONTRACT AT MARKET
    ENDIF
    // Condizioni per uscire da posizioni long
    ciclo = CCI[55]
    escishort = (ciclo CROSSES UNDER 84.1)
    IF escishort  THEN
    exitshort AT MARKET
    ENDIF
    ENDIF
    
    //************************************************************************
    //trailing stop function
    trailingstart = 96 //trailing will start @trailinstart points profit
    trailingstep = 8 //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
    //************************************************************************
    
    /////////////////////////////////////////////////////////////////////////////////////
    
    // Sell at end of day
    
    if time>215300 then
    exitshort at market
    sell at market
    endif
    
    // Earlier friday exit. Insurance against accidental holding over weekends
    
    if dayofweek=5 and time>212300 then
    exitshort at market
    sell at market
    endif
    

     

    #55702 quote
    Gianluca
    Participant
    Master

    @robertogozzi 

     

    Se elimino la riga 18 e la 31, l’uscita viene recepita dal sistema e l’ordine viene chiuso correttamente, ma se vado ad eliminare ugualmente la 35 e la 48 il problema mi si ripresenta 🙁

    #55710 quote
    robertogozzi
    Moderator
    Master

    La riga 45 credo dovrebbe essere

    escishort = (ciclo CROSSES OVER 84.1)

    questo credo sia il problema, non l’avere tolto le righe 35 e 48.

    #55780 quote
    Gianluca
    Participant
    Master

    Il fatto è che se elimino sia la 18 che la 31 e poi la 35 e la 48, il sistema ugualmente non chiude l’operazione al verificarsi dei parametri.

    #55785 quote
    robertogozzi
    Moderator
    Master
    La riga 45 credo dovrebbe essere questo credo sia il problema, non l’avere tolto le righe 35 e 48.

    L’hai fatto?

    #55791 quote
    Gianluca
    Participant
    Master

    Intanto grazie per avermi fatto notare l’errore. Ma pare che oggi quell’operazione che ieri apriva e non chiudeva non sarebbe stata aperta… possibile che possa esser stato per causa del rollover sullo strumento della data di ieri?

    Il problema è che backtestare sui 30 minuti viene molto limitato nel tempo, e questo rende il tutto molto aleatorio.

    #55793 quote
    robertogozzi
    Moderator
    Master

    Non credo c’entri il rollover, ma non saprei dirlo con certezza.

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

Ordine non chiuso.


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Gianluca @altares Participant
Summary

This topic contains 11 replies,
has 2 voices, and was last updated by robertogozzi
8 years, 1 month ago.

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