Verifica codice: non tradare per x barre dopo un trade

Forums ProRealTime forum Italiano Supporto ProOrder Verifica codice: non tradare per x barre dopo un trade

Viewing 11 posts - 1 through 11 (of 11 total)
  • #179282

    Ciao Roberto, ti volevo chiedere se questi tre codici per dire al TS di non tradare dopo x  barre sono equivalenti.

    Te lo chiedo perchè a volte i risultati sono differenti. Quindi o non sono completamente equivalenti o c’è qualche problema nel proBackTest come penso.

    CODICE A

    CODICE B

    CODICE C

     

     

     

     

     

    #179284

    A è corretto.

    B alla riga 2 togli [1] a Barindex.

    C alla riga 3 togli [1] a Barindex.

    Dovrebbero funzionare, non ho verificato.

    Se usi GRAPH lo verifichi velocemente:

    #179287

    I codici B e C quando sono uguali  e quando sono uguali al codice A sono scritti entrambi con [1] come li avevo scritti.

    Ho testato questa semplice parte di un codice più complesso . (DAX 15 minuti).

    Con 10 K di storico sul Dax a 15 minuti i tre codici sono uguali (immagine 10K) però già a 50k sono diversi (immagine 50K). Puoi provare?

    CODICE A

    defparam cumulateorders = false
    avgHull = average[130,7]
    //————————————————-
    ONCE BarCount = 0
    ONCE TradeON = 1
    IF OnMarket AND Not OnMarket[1] THEN
    TradeON = 0
    BarCount = 0
    ENDIF
    IF Not OnMarket THEN
    BarCount = BarCount + 1
    ENDIF
    IF BarCount >10 THEN
    TradeON = 1
    ENDIF
    //————————————————————–
    if close > avgHull and tradeON=1 then
    buy 1 contract at market
    endif
    //——————————————————————————————–
    set stop %loss 0.8
    set target %profit 1.5
    //————————————————————————————-

    CODICE B

    defparam cumulateorders = false
    avgHull = average[130,7]
    //————————————————-
    if not OnMarket and OnMarket[1] then
    myBar = barIndex[1]
    endif
    if barIndex-mybar>10 then
    tradeON = 1
    else
    tradeON = 0
    endif
    //————————————————————–
    if close > avgHull and tradeON=1 then
    buy 1 contract at market
    endif
    //——————————————————————————————–
    set stop %loss 0.8
    set target %profit 1.5

    //————————————————————————————-

    CODICE C

    defparam cumulateorders = false
    avgHull = average[130,7]
    //————————————————-
    nBarStop=10
    if onMarket[1]=1 and onMarket=0 then
    start=barIndex[1]
    endif
    tradeON=barIndex-start>nBarStop
    //————————————————————–
    if close > avgHull and tradeON then
    buy 1 contract at market
    endif
    //——————————————————————————————–
    set stop %loss 0.8
    set target %profit 1.5

    //————————————————————————————-

    #179290

    Ecco il test a 100k dei tre sistemi, secondo me NON funziona bene il proBackTest (perde per strada qualche operazione ogni tanto il che sarebbe abbastanza grave)

    #179292

    Se hai tempo prova a testare i tre TS sopra riportati con vari periodi storici, e se confermi la cosa apro una segnalazione al reparto tecnico

    #179295

    A alla riga 3 lascia solo OnMarket.

    B e C devi lasciare [1], hai ragione.

    Con GRAPH i valori sono identici oppure no?

     

    #179296

    Sono uguali fino a che non trovi l’operazione mancante. Questa si trova prima dall’equity line che dal graph.

     

    #179299

    A parte problemi (da verificare con certezza) del probacktest, i codici B e C sono uguali,

    Non sono ancora convinto che sia uguale a questi il codice A.

    Riesci ad accertare se i tre codici sono uguali con sicurezza ?(quando li provo in TS complessi le differenze sono rilevanti)

    #179315

    Ciao Roberto, devo ancora verificare bene se:  il codice A è uguale o simile ai codici B e C (che sono uguali)

    Per quanto riguarda invece  il funzionamento del proBackTest la cosa è chiara: non funziona bene (lo avevo notato anche altre volte con TS e strumenti differenti, ma senza porgervi troppa attenzione).

    Guarda queste due slide dello stesso TS in cui è applicato una volta  il codice B ed un altra volta il codice C  (vedi sopra).

    Alle 20: 25 i risultati sono differenti, in quello con il codice C mancano due operazioni che il proBackTest ha saltato.

    Alle 20:27 ho semplicemente riapplicato gli stessi TS e questa volta i risultati sono uguali! (come devono essere dato che i due codici sono equivalenti).

    Cosa ne pensi? Ti è mai capitato?

    #179619

    Anche a me danno, a volte, risultati diversi. Tutti e tre i codici.

    Faccio il backtest ed ho un risultato, lo rifaccio e cambia, oppure lo cambia a quello successivo ancora e se lo faccio di nuovo torna com’era prima.

    Non capisco il perché, evidentemente c’è un motivo (o un difetto) tecnico che non conosco.

    Ti consiglio di chiedere l’assistenza di ProRealTime.

     

    #179633

    Per quanto riguarda il probacktest è evidente che ha dei problemi. La cosa “sembra” migliorare togliendo la modalità “probacktest in modalità tick per tick”.

    Per quanto riguarda invece l’uguaglianza dei tre codici, dalle mie prove risultano essere tutti e tre uguali SE utilizzati in codici semplici. In codici complessi (dove ci sono altri snippets) l’unico che funziona bene (ossia che rispetta sempre gli intervalli) è il codice A, quindi conviene utilizzare sempre questo.

     

Viewing 11 posts - 1 through 11 (of 11 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login