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
- This topic has 10 replies, 2 voices, and was last updated 3 years ago by MauroPro.
-
-
10/10/2021 at 10:50 AM #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
123456789101112ONCE BarCount = 0ONCE TradeON = 1IF OnMarket AND Not OnMarket[1] THENTradeON = 0BarCount = 0ENDIFIF Not OnMarket THENBarCount = BarCount + 1ENDIFIF BarCount >10 THENTradeON = 1ENDIFCODICE B
12345678if not OnMarket and OnMarket[1] thenmyBar = barIndex[1]endifif barIndex-mybar>10 thentradeON = 1elsetradeON = 0endifCODICE C
12345nBarStop=10if onMarket[1]=1 and onMarket=0 thenstart=barIndex[1]endiftradeON=barIndex-start>nBarStop10/10/2021 at 11:48 AM #179284A è 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:
123Graph Barcount //AGraph BarIndex-MyBar //BGraph barIndex-start //C10/10/2021 at 12:21 PM #179287I 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//————————————————————————————-
10/10/2021 at 12:28 PM #17929010/10/2021 at 12:30 PM #17929210/10/2021 at 1:08 PM #179295A alla riga 3 lascia solo OnMarket.
B e C devi lasciare [1], hai ragione.
Con GRAPH i valori sono identici oppure no?
10/10/2021 at 1:20 PM #17929610/10/2021 at 1:36 PM #179299A 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)
10/10/2021 at 7:41 PM #179315Ciao 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?
10/13/2021 at 5:47 PM #179619Anche 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.
10/13/2021 at 7:49 PM #179633Per 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.
-
AuthorPosts
Find exclusive trading pro-tools on