Snippet x attesa N barre dopo chiusura di un trade
Forums › ProRealTime forum Italiano › Supporto ProOrder › Snippet x attesa N barre dopo chiusura di un trade
- This topic has 3 replies, 2 voices, and was last updated 2 years ago by robertogozzi.
-
-
05/11/2022 at 9:24 AM #193035
Ciao Roberto, volevo chiederti se è possibile includere in questo snippetCode (funzionante) che permette di attendere N barre dopo la chiusura di un trade, anche i trades che aprono e chiudono nella stessa barra,
Per maggior chiarezza: se un TS apre un trade nella barra 1 e lo chiude nella barra 2 (o superiore) lo snippet permette di attendere N barre prima di aprire il trade successivo.
Se invece un TS (vd immagine) apre e chiude un trade nella barra 1, lo snippet non funziona (non attende il numero di barre).
Esempio (Nasdaq cfd- 15m – 10k): il giorno venerdi 6 maggio 2022 il TS apre e chiude un trade nella stessa barra ed infatti poi, erroneamente, prende il segnale seguente prima di attendere 20 barre, come fa lo stesso TS (quello sotto nel grafico) senza snippet.
12345678910111213141516171819once barCount = 0waitingBars = 20 //barsToWaitAfterTradeonce tradeCount = 1if (longOnMarket and not onMarket[1]) or (longOnMarket and shortOnMarket[1]) or (longOnMarket[1] and shortOnMarket) thentradeCount = 0barCount = 0endifif not longOnMarket thenbarCount = barCount + 1endifif barCount > waitingBars thentradeCount = 1endif//--------------------------------------------------------------if close crosses over average[50,0](close) and not onMarket and barCount > waitingBars thenbuy 1 contract at marketendifset target pProfit 100set stop pLoss 10005/12/2022 at 8:59 AM #193087Sostituisci la riga 4 con questa:
1If (OnMarket and Not OnMarket[1]) or ((Not OnMarket and Not OnMarket[1] and (StrategyProfit <> StrategyProfit[1])) or (LongOnMarket and ShortOnMarket[1]) or (LongOnMarket[1] and ShortOnMarket) Then1 user thanked author for this post.
05/12/2022 at 10:03 AM #193097Grazie Roberto, funziona (manca una parentesi nella formula che hai scritto dopo il secondo “not onMarket[1]”
In pratica è come la formula che usa il tuo nuovo snippet per effettuare il massimo numero di operazioni al giorno:
newTrades = (onMarket and not onMarket[1]) or (longOnMarket and shortOnMarket[1]) or (longOnMarket[1] and shortOnMarket) or ((not OnMarket and not onMarket[1]) and (strategyProfit <> strategyProfit[1]))Penso che questa sia la formulazione migliore per determinare se c’è stata un operazione includendo operazioni che si aprono e chiudono sulla stessa barra.Andrebbe rimpiazzato questa riga di codice anche in snippet più vecchi e non molto precisi che si trovano nel forum (come quello che ho riportato all’inizio) che hanno bisogno (per diversi motivi) di verificare se c’è stata un operazione.05/12/2022 at 12:11 PM #193110Scusa per la parentesi, hai ragione.
Si, è proprio quello snippet li, solo che (me ne sono accorto proprio la settimana scorsa) nel caso di operazioni aperte e chiuse sulla stessa barra, verifica e conteggia solo quelle negative o positive, quelle che hanno avuto un pareggio perfetto (credo rarissime) no, perché STRATEGYPROFIT risulta identica alla barra precedente.
Ho pensato a questa modifica, che include anche questi rari casi:
1IF (OnMarket AND Not OnMarket[1]) OR ((Not OnMarket AND Not OnMarket[1]) AND (StrategyProfit <> StrategyProfit[1])) OR (LongOnMarket AND ShortOnMarket[1]) OR (LongOnMarket[1] AND ShortOnMarket) OR ((TradeIndex(1) = TradeIndex(2)) AND (BarIndex = TradeIndex(1)) AND (BarIndex > 0) AND (StrategyProfit = StrategyProfit[1])) THENIn pratica verifica che STRATEGYPRIFIT sia identica, che non fosse a mercato prima, né dopo (quindi una sola barra) e che l’operazione si sia davvero chiusa la barra precedente e che si sia anche aperta nella stessa barra, tramite TRADEINDEX.
-
AuthorPosts
Find exclusive trading pro-tools on