Il mio primo Loop
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Il mio primo Loop
- This topic has 4 replies, 2 voices, and was last updated 9 months ago by andrea trevisan.
-
-
02/15/2024 at 11:34 AM #228217
Buon giorno o costruito un indicatore su rsi, sembra che funzioni però vorrei avere la conferma.
Come prima condizione RSI deve incrociare al ribasso una media mobile[8](RSI) in situazione di ipercomprato(sia per RSI che per la media mobile)
Dal momento che si è verificata questa condizione il segnale lo cerco nelle (X) candele successive, nel momento che la media mobile ha un valore minore rispetto alla media mobile sulla candela precedente, questo è il codice:
Ho un dubbio sull’utilità del BRAKE.
//////////variabili//////////
Miorsi = RSI[14](close)
Miamedia = average[8](Miorsi)
Ipercomprato = Miorsi and Miamedia > 70
Ipervenduto = Miorsi and Miamedia < 30
Segnale = Miamedia < Miamedia[1]
Segnale2 = Miamedia > Miamedia[1]
//////////Filtro 1 Segnale Short//////////
Filtro1 = 0
For I = 0 to 10 do
If Ipercomprato and Miorsi crosses under Miamedia and Segnale THEN
Filtro1 = 1
break
endif
next
if Filtro1 THEN
DRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)
endif
//////////Filtro 2 segnale Long//////////
Filtro2 = 0
for i = 0 to 10 DO
if ipervenduto and Miorsi crosses over Miamedia and Segnale2 then
DRAWARROWUP(barindex, (Miamedia-5))Coloured(0,255,0)
endif
break
next
return Miorsi coloured(0,0,250),70 coloured(250,0,0),30coloured(0,250,0),Miamedia, 5002/16/2024 at 9:24 AM #228242Salve
Se si desidera mostrare gli incroci RSI con lo smoothing, è possibile utilizzare questo codice. Non è necessario eseguire il loop.
Se si volesse memorizzare, ad esempio, la barra in cui si verifica, allora avrebbe senso.
D’altra parte, il vostro codice presenta un errore nella definizione di ipercomprato e ipervenduto.
Ecco il codice1234567891011121314151617//////////variabili//////////Miorsi = RSI[10](close)Miamedia = average[8](Miorsi)Ipercomprato = Miorsi > 70 and Miamedia > 70Ipervenduto = Miorsi < 30 and Miamedia < 30Segnale = Miamedia < Miamedia[1]Segnale2 = Miamedia > Miamedia[1]//////////Filtro 1 Segnale Short//////////if Ipercomprato and Miorsi crosses under Miamedia and Segnale THENDRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)endif//////////Filtro 2 segnale Long//////////if ipervenduto and Miorsi crosses over Miamedia and Segnale2 thenDRAWARROWUP(barindex, (Miamedia-5))Coloured(0,255,0)endifreturn Miorsi coloured(0,0,250),70 coloured(250,0,0),30coloured(0,250,0),Miamedia, 5002/16/2024 at 10:05 AM #228249Scusa ma non mi sono spiegato bene, quello che stò cercando di fare non è trovare tutti i filtri nello stesso tempo, ma in due tempi diversi, cioè: prima deve verificarsi l’incrocio al ribasso dell’ RSI sulla sua mediamobile, da li il segnale mi dovrebbe apparire solo quando la media mobile e inferiore al valore della candela precedente, ovvero se avviene l’incrocio al ribasso, ma per due candele la media mobile continua a salire, non devo evere il segnale, se alla terza candela si verifica il ribasso a quel punto vorrei il segnale, ecco perchè o pensato ad un loop.
Un pò complicato lo ammetto, ma è per non stare a controllare sempre a vista, su due piedi mi è venuto in mente questo codice che potrebbe avere un senso.
//////////variabili//////////
Miorsi = RSI[14](close)
Miamedia = average[8](Miorsi)
Ipercomprato = Miorsi and Miamedia > 70
Ipervenduto = Miorsi and Miamedia < 30
Segnale = Miamedia < Miamedia[1]//////////Filtro 1 Segnale Short//////////
Filtro1 = 0
For I = 0 to 10 do
If Ipercomprato and Miorsi crosses under Miamedia THEN
Filtro1 = Filtro1 + 1
endifIf filtro1 <= 10 and Segnale then
DRAWARROWDOWN(barindex,(Miamedia+5)) coloured(250,0,0)
endifbreak
next
return
02/16/2024 at 12:56 PM #228288Ciao
Non ho capito.
Ecco una proposta senza loop.123456789101112131415161718192021222324252627282930313233343536373839404142434445//////////variabili//////////periods = 10Miorsi = RSI[periods](close)Miamedia = average[8](Miorsi)Ipercomprato = Miorsi > 70 and Miamedia > 70Ipervenduto = Miorsi < 30 and Miamedia < 30Segnale = Miamedia < Miamedia[1]Segnale2 = Miamedia > Miamedia[1]//////////Filtro 1 Segnale Short/////////////start checkingif Ipercomprato and Miorsi crosses under Miamedia thencheckshort = 1elsecheckshort = checkshortendif///count x barsif Miorsi < Miamedia thenx = 1 + xelsex = 0endif///setup shortif checkshort and x>0 and x<10 and segnale thencheckshort = 0drawarrowdown(barindex,Miamedia+5)coloured("red")endif//////////Filtro 2 Segnale Long//////////if Ipervenduto and Miorsi crosses over Miamedia thenchecklong = 1elsechecklong = checklongendif///count y barsif Miorsi > Miamedia theny = 1 + yelsey = 0endif///setup longif checklong and y>0 and y<10 and segnale2 thenchecklong = 0DRAWARROWUP(barindex, Miamedia-5)Coloured("green")endifreturn Miorsi as "RSI" coloured(0,0,250),Miamedia as "Media",70 coloured(250,0,0),30coloured(0,250,0), 5002/19/2024 at 10:57 AM #228386 -
AuthorPosts
Find exclusive trading pro-tools on