Uscita da una strategia di reversal
Forums › ProRealTime forum Italiano › Supporto ProOrder › Uscita da una strategia di reversal
- This topic has 32 replies, 2 voices, and was last updated 3 years ago by MauroPro.
-
-
06/16/2021 at 11:58 AM #171841
Ciao Roberto, mi riallaccio a questo topic sulle chiusure per chiederti come scriveresti l’uscita da una strategia di reversal quando si verifica la seguente condizione:
close della barra attuale < close di ieri alle 17:24 (dato che la formula MTF sotto riportata non prende, per i cfd, come riferimento le 17:24)
timeframe(daily,updateOnClose)
dayClose = Dclose(o)
quindi non funziona scrivere nel TF di default:
if longOnMarket and close>dayClose then // l’entrata long è quindi alla notte in gap down e si esce in gain alla chiusura del gap
sell 1 contracts at market
endif06/16/2021 at 12:01 PM #17184206/16/2021 at 12:11 PM #171846Riguarda una strategia, quindi va aperto un nuovo argomento nel supporto ProOrder.
L’ho spostato io.
Se vuoi fare un riferimento ad altri argomenti puoi postare un link.
06/16/2021 at 2:22 PM #17186706/16/2021 at 2:30 PM #171869Eccolo:
1234IF close > Dclose(1) THENSELL AT MARKET //LongEXITSHORT AT MARKET //ShortENDIF06/16/2021 at 2:33 PM #17187006/16/2021 at 2:35 PM #17187106/16/2021 at 2:58 PM #171876La data puoi stabilirla tu, che siano le 10:00 o quella di chiusura:
1234567IF Time = 172400 THENChiusura = closeENDIFIF close > Chiusura THENSELL AT MARKET //LongEXITSHORT AT MARKET //ShortENDIF06/16/2021 at 3:01 PM #171877In effetti se metti le 10:00 potrebbero essere quelle di oggi, quindi va fatto così:
12345678910ONCE PrevClose = 9999999ONCE Chiusura = 9999999IF Time = 100000 THENPrevClose = ChiusuraChiusura = closeENDIFIF close > PrevClose THENSELL AT MARKET //LongEXITSHORT AT MARKET //ShortENDIF06/16/2021 at 3:03 PM #171878Grazie per la risposta ti chiedo alcuni chiarimenti:
- Come faccio a dirgli che devono essere le 172400 di ieri e non di oggi?
- Se uso Dclose: IG a che orario si riferisce? Mi sembra l’una di notte, ma vorrei una conferma.
- Se uso Dclose con updateOnClose, per avere, quale che sia per IG, l’orario che prende di chiusura devo scrivere, per avere la “chiusura” di ieri: Dclose(0) o Dclose(1)?
06/16/2021 at 3:20 PM #171879Pensavo che alle 17:24 tu facessi chiudere l’operatività.
Usa il secondo post, quello delle 10 e sostituisci l’ora.
Dclose usa la chiusura della barra Daily, adesso è all’una, con l’ora solare alla mezzanotte (per la precisione adesso 00:59:59, prima alle 23:59:59, perché 00:00 era già il giorno successivo, come pure lo è alle 01:00 adesso)
Se usi un TF intraday devi usare Dclose(1) per la barra di ieri, che ci sia UpdateOnClose o meno, però io consiglio di usare il Timeframe DAILY con UpdateOnClose o Default (a meno che tu non abbia raggiunto il limite di 6 timeframe diversi, 5 + quello di default, però i TF con e senza UpdateOnClose sono considerati 1 anche se scritti due volte):
12345678910111213141516171819202122//Questi sono identici, però io preferisco quello che usa il DAILY//, con UpdateOnClose o con Default://Timeframe(4h,UpdateOnClose)ChiusuraIeri = Dclose(1)//Timeframe(4h,Default)ChiusuraIeri = Dclose(1) //esattamente come sopra perché// la chiusura giornaliera di ieri// non può mai più cambiare//Timeframe(Daily,UpdateOnClose)ChiusuraIeri = close //come sopra, perché UpdateOnClose// aggiorna la variabile alla chiusura// della candela DAILY, quindi in// corso di formazione non cambia.//Timeframe(Daily,Default) //come sopra, ma in questo caso// occorre usare [1] perché CLOSE// aggiorna la variabile durante la// formazione in corso.ChiusuraIeri = close[1]1 user thanked author for this post.
06/16/2021 at 3:23 PM #171880Nel post sopra sono considerati usati 3 Timeframe (i due indicati, anche se scritti 4 volte, più quello di default, che è quello sul grafico, a meno che non sia uguale ad uno dei due già presenti nel codice).
06/16/2021 at 7:34 PM #171899Ciao Roberto, ho provato ad utilizzare la tua formula in una bozza sperimentale di TS appena costruito.
Tuttavia non mi sembra che PrevClose funzioni bene: non rispetta le distanze con un Flag che ho inserito. Probabilmente sbaglio qualcosa. Quando hai tempo puoi controllare? (Dax 3 minuti)
Grazie
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172// Dax 3 minutiDEFPARAM CumulateOrders=FalseDEFPARAM Flatbefore = 000000DEFPARAM Flatafter = 220000myST= superTrend[3,10]ONCE PrevClose = 9999999ONCE Chiusura = 9999999IF Time = 173000 THENPrevClose = ChiusuraChiusura = close// if close > PrevClose then//sell at market//exitShort at market//endifENDIF//------------------------------------------If not onmarket thenmaxPrice=0minPrice=closehighReached=0lowReached=0endif//----------------------------------------If not onMarket thenmaxPrice=Max(maxPrice,high)if maxPrice-PrevClose>30*pointSize thenhighReached=1elsehighReached=0endifendifIf not onMarket thenminPrice=Min(minPrice,low)if PrevClose-minPrice>30*pointSize thenlowReached=1elselowReached=0endifendif//-------------------------------------------------if close crosses under myST and highReached=1 thencrossUnderST=1endifif close crosses over myST and lowReached=1 thencrossOverST=1endif//----------------------------------------------------if not onMarket and crossOverST = 1 thenbuy 1 contracts at marketendifif longOnMarket and close>PrevClose thensell 1 contracts at marketcrossOverST=0lowReached=0endifif not onMarket and crossUnderST=1 thensellShort 1 contracts at marketendifif shortOnMarket and close<PrevClose thenexitShort 1 contracts at marketcrossUnderST=0highReached=0endif//--------------------------------------------------------set stop pLoss 5006/17/2021 at 9:57 AM #171916Mi pare funzioni.
Se noti valori erreti Indicami i dati per poterlo verificare.
Prende il valore delle 173000 (cioè della candela che si è aperta alle 172500). Puoi sostituire TIME (orario di chiusura candela) con OPENTIME (orario di apertura candela).
06/17/2021 at 10:30 AM #171917Ho messo nelle righe 28 e 37 del codice sopra riportato rispettivamente: maxPrice-prevClose>50*pointSize e prevClose-minPrice>50*poinSize per rendere il problema più chiaro.
Nell’immagine si vede che la differenza tra le 17:30 di ieri (15707) ed il minimo raggiunto a 15669 (i due rettangoli azzurri nell’immagine) è inferiore a 50 punti, quindi il TS non dovrebbe entrare in quanto il flag lowReached dovrebbe essere 0.
-
AuthorPosts
Find exclusive trading pro-tools on