Eliminare la domenica dai conteggi
Forums › ProRealTime forum Italiano › Supporto ProOrder › Eliminare la domenica dai conteggi
- This topic has 4 replies, 3 voices, and was last updated 3 years ago by MauroPro.
-
-
06/18/2021 at 1:09 PM #171989
Buon pomeriggio, posto qui il codice di un TS qualsiasi che vuole eliminare la domenica per i conteggi inerenti i parametri o trigger di entrata.
Su una discussione precedente ho letto che serve un ciclo for, posto il codice per vedere se ho scritto bene.
Grazie a tutti
Codice123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475DefParam Cumulateorders = FalseDefParam PreLoadBars = 10000//Escludo la domenicaFOR i = 1 to 1IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)ENDIFNEXTFOR i2 = 2 to 2IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)ENDIFNEXTFOR i3 = 3 to 3IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)ENDIFNEXTFOR i4 = 4 to 4IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)ENDIFNEXTFOR i5 = 5 to 5IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)ENDIFNEXT// Pattern n.8 DIREZIONALITA' LONG opposto del Pattern n.9a = Dclose(i4) < Dopen(i4) // la candela di 4 giorni fa è ribassistab = DClose(i3) > DClose(i3) // la candela di 3 giorni fa ha una chiusura maggiore rispetto a quella di 4 giorni fac = DClose(i3) > DClose(i3) // la candela di 2 giorni fa ha una chiusura maggiore rispetto a quella di 3 giorni fad = DClose(i) > DClose(i2) // la candela di ieri ha una chiusura maggiore rispetto a quella di 2 giorni fa// Pattern n.9 DIREZIONALITA' SHORT opposto del Pattern n.8aa = Dclose(i4) > Dopen(i4) // la candela di 4 giorni fa è rialzistaba = DClose(i3) < DClose(i4) and DClose(i3) < DOpen(i3) // la candela di 3 giorni fa ha una chiusura minore rispetto a quella di 4 giorni faca = DClose(i2) < DClose(i3) and DClose(i2) < DOpen(i2)// la candela di 2 giorni fa ha una chiusura minore rispetto a quella di 3 giorni fada = DClose(i) < DClose(i2) and DClose(i) < DOpen(i) // la candela di ieri ha una chiusura minore rispetto a quella di 2 giorni faif (a and b and c and d) thenPTRN008 = 1elsePTRN008 = 0endifif (aa and ba and ca and da) thenPTRN009 = 1elsePTRN009 = 0endifTimeFrame(Default)Domenica = OpenDayofWeek = 6CondBUY = Close > DHigh(i)CondSELL = Close < DLow(i)Venerdi = OpenDayofWeek = 5 and CurrentTime >=205900// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND CondBUY and not Domenica and PTRN008 or PRTN009 THENBUY 1 CONTRACTS AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND Venerdi THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND CondSELL and not Domenica and PTRN008 or PRTN009 THENSELLSHORT 1 CONTRACTS AT MARKETset stop ploss SLSHORTset target pprofit TPSHORTENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND Venerdi THENEXITSHORT AT MARKETENDIF06/18/2021 at 1:27 PM #171990Le righe da 6 a 25 non fanno assolutamente niente.
Il resto del codice non lo capisco molto.
Se provi a spiegarmi cosa vuoi fare vedo se posso aiutarti,
06/18/2021 at 2:55 PM #171994Ciao Roberto, in sostanza vorrei che quando indico in qualsiasi strategia, per esempio “Highest[10] (High)” oppure “DClose(5)”
nei conteggi non venga presa in considerazione la domenica.
06/18/2021 at 3:26 PM #171998Farlo sarebbe difficilissimo e lentissimo, perché qualunque funzione ed indicatore dovresti riscriverlo, facendo ogni volta un sacco di cicli FOR…NEXT per evitare la domenica.
L’unica è provare con gli orari personalizzati e vedere se li considera o meno.
06/18/2021 at 4:27 PM #172007Non so se ti può servire come idea, ma in un mio TS sul Nasdaq CFD che, facendo una sola operazione al giorno, compra su base oraria il minimo daily ( o vende sempre su base oraria il massimo daily) per evitare la candela della domenica ho separato il giorno del lunedi dagli altri.
Ecco il listato:
// Nasdaq – timeframe giornaliero (con updateOnClose) + timeframe orario (default – senza updateOnClose)
DEFPARAM CumulateOrders=False
DEFPARAM Flatafter=220000monday = dayOfweek=1
otherDays = (dayofweek >=2 and dayofweek <=5)//——————————————————–
timeframe(daily,updateOnClose)dayHighMonday = Dhigh(1)
dayLowMonday= Dlow(1)dayHigh = Dhigh(0)
dayLow= Dlow(0)//———————————————————
timeframe (1 hour)oneTrade = (barIndex-tradeIndex(1)>intradayBarIndex)
if (low[1]<dayLow and close>dayLow and otherDays and oneTrade) or (low[1]<dayLowMonday and close>dayLowMonday and monday and oneTrade) then
buy 1 contract at market
endifif (high[1]>dayHigh and close<dayHigh and otherDays and oneTrade) or (high[1]>dayHighMonday and close<dayHighMonday and monday and oneTrade) then
sellshort 1 contract at market
endif//———————————————————–
set stop %loss 0.5
set target %profit 1.5 -
AuthorPosts