Breakout strategy only going long..
Forums › ProRealTime forum Italiano › Supporto ProOrder › Breakout strategy only going long..
- This topic has 10 replies, 4 voices, and was last updated 1 week ago by JS.
-
-
12/28/2024 at 5:12 PM #241850
Hi guys,I’m making a strategy for the breakout of the 15 min range of the NY open.
This is the code. I have nice results, but I can’t make the code open sellshort positions, don’t understand why, can somebody help?
Thank you!Ciao ragazzi,
Sto creando una strategia per la rottura del range di 15 minuti dell’apertura di NY.
Questo è il codice. Ho buoni risultati, ma non riesco a far aprire al codice posizioni sellshort, non capisco perché, qualcuno può aiutarmi?
Grazie!15 minute NY open breakout12345678910111213141516171819202122232425262728293031// Parametri per il tradingdefparam flatafter = 200000defparam flatbefore = 154500defparam cumulateorders = false// Intervallo per calcolare il rangestartRangeTime = 153000endRangeTime = 154500// Inizializzazione delle variabiliif barindex = 0 thenrangeHigh = 0rangeLow = 0endif// Aggiornamento del range durante l'intervallo specificatoif time >= startRangeTime and time <= endRangeTime thenrangeHigh = max(high, rangeHigh)rangeLow = min(low, rangeLow)endif// Condizioni per il breakout (dopo l'intervallo)if time > endRangeTime then// Breakout al rialzoif close > rangeHigh thenbuy 1 contract at market// Breakout al ribassoelsif close < rangeLow thensellshort 1 contract at marketendifendif12/28/2024 at 6:09 PM #241851Sulla riga 12, rangeHigh = 0 , la riga 18 rangeHigh è impostata su max di (high,rangeHigh). Poiché il massimo > 0 , allora rangeHigh = alto.
Tuttavia, la riga 13 rangeLow = 0, la riga 19 rangeLow è impostata su min di (low, rangeLow). Poiché il basso > 0, allora rangeLow = 0.
Il valore minimo non può mai essere inferiore a zero, quindi la condizione non è mai vera per la riga 28.
12/28/2024 at 6:52 PM #241853Inoltre, la riga 17 non può essere uguale a ‘=’ allo stesso tempo.
Una soluzione semplice, la riga 13 impostata a 1.000.000.
Rimuovi ‘=’ dall’ora di fine della riga 17.
Il prossimo problema sarà l’azzeramento degli intervalli, poiché diventeranno sempre più grandi (alti) o più piccoli (bassi).12/28/2024 at 8:34 PM #241855Grazie mille intanto per la velocissima risposta. Chiarissimo il concetto sul problema a riga 13 e anche gli altri.
Mi puoi spiegare cosa intendi con l’azzeramento degli intervalli e di perché tenderanno ad aumentare o diminuire?
Grazie infinite!12/28/2024 at 9:15 PM #241858Aggiungere le righe di codice seguenti alla fine del programma.
Questi dovrebbero evidenziare i livelli di intervallo alto e basso.
Si noterà che, quando il tempo è attivo e un intervallo viene interrotto, il valore dell’intervallo viene aggiornato al nuovo valore.
Basta guardare la gamma alta, questa diventerà sempre più alta ad ogni pausa.
Se in una tendenza, questo potrebbe essere buono ad ogni breakout verso un nuovo massimo di tendenza.
Tuttavia, quando si arriva al punto più alto, non c’è alcuna implementazione nel codice per reimpostare il livello a un livello più basso.
Questo sarebbe lo stesso ma opposto per la pausa bassa.
Col passare del tempo, gli intervalli finiranno sempre più per essere estremamente alti e bassi. Ciò si tradurrà in una notevole quantità di tempo prima che la chiusura possa rompere nuovamente uno qualsiasi dei livelli.
12graphonprice rangeHigh coloured("lime")graphonprice rangeLow coloured("red")12/28/2024 at 9:35 PM #241860Tieni presente che, in un programma di test retrospettivo, ci sono altre 1000 barre precaricate, come impostazione predefinita, oltre alle barre nel grafico.
Ho aggiunto più unità al grafico per vedere perché la linea bassa non era nella sua posizione predefinita.
Il minimo è stato rotto da qualche parte nella sezione delle barre di precarico.
12/29/2024 at 10:38 AM #241872Pubblica solo nella lingua del forum in cui stai postando. Ad esempio solo l’inglese nei forum di lingua inglese e il francese solo nei forum di lingua francese. Grazie 🙂
1 user thanked author for this post.
12/29/2024 at 1:15 PM #241882Thank you!!
So I imagine that I should reset the interval everyday? There is a function for this?Grazie!!
Quindi immagino che dovrei reimpostare l’intervallo ogni giorno? C’è una funzione per questo?12/29/2024 at 3:53 PM #241887Prova quanto segue.
Linea 11,
if intradaybarindex = 0 then
Linea 12,
rangeHigh = low
linea 13,
rangeLow = highINTRADAYBARINDEX tiene il conto delle barre nel grafico in modo simile a BARINDEX, ma si azzera ogni giorno.
Poiché le linee di intervallo vengono ripristinate ogni giorno, la creazione di valori predefiniti come sopra, aiuta con il ridimensionamento del grafico con le linee di intervallo visualizzate.
12/29/2024 at 4:19 PM #241891Per favore leggi bene le regole basilari ben evidenziate in giallo più sotto.
Grazie 🙂
1 user thanked author for this post.
12/29/2024 at 9:01 PM #241916Ciao,
Se utilizzi un intervallo di tempo di 15 minuti e il “range” che vuoi applicare è anch’esso di 15 minuti, puoi recuperare tutte le informazioni con:Range BreakOut1234567891011121314defparam flatafter = 200000defparam flatbefore = 154500defparam cumulateorders = falseif OpenTime = 153000 thenrangeHigh = HighrangeLow = Lowendifif close > rangeHigh thenbuy 1 contract at marketelsif close < rangeLow thensellshort 1 contract at marketendif1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on