Definizione di un punto cross
Forums › ProRealTime forum Italiano › Supporto ProOrder › Definizione di un punto cross
- This topic has 3 replies, 2 voices, and was last updated 2 weeks ago by
Iván.
-
-
07/21/2025 at 9:24 AM #248991
Salve, chiedo un aiuto per definire correttamente un punto chiave da utilizzare nel mio sistema. Di seguito un esempio:
Ind1 = Supertrend[30,50]
Punto L = Close CROSSES OVER Ind1
Punto S = Close CROSSES UNDER Ind1c1 = (NOT ONMARKET AND Close > Ind1 AND Ind1<Punto L)
IF c1 THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF// Condizioni per uscire da posizioni long
c2 = (SHORTONMARKET AND Close < Ind2)
IF c2 THEN
EXITSHORT 1 CONTRACTS AT MARKET
ENDIFc3 = (SHORTONMARKET AND Ind1>Punto L)
IF c3 THEN
EXITSHORT 1 CONTRACTS AT MARKET
ENDIFOvviamente lo script continua con la situazione opposta riferita al Punto S.
Grazie in anticipo
07/21/2025 at 9:59 AM #248995Ciao,
Il problema principale è che stai assegnando a Punto L e Punto S un valore booleano (il risultato di crosses over / crosses under) e poi tenti di usare questi valori come livelli di prezzo nelle comparazioni (Ind1 < Punto L o Ind1 > Punto L), il che non ha senso: un booleano non è un prezzo.
Per risolvere la situazione, bisogna separare due concetti:
Segnale di incrocio (booleano): rilevare il momento in cui il prezzo incrocia l’indicatore.
Livello di riferimento (numerico): memorizzare il valore di Ind1 nella barra in cui si è verificato l’incrocio per confrontarlo successivamente.
Di seguito un esempio di come farlo in ProBuilder:
1234567891011121314151617181920212223242526272829303132333435363738394041424344// 1) Calcolo del SupertrendperiodATR = 20multiplier = 3Ind1 = Supertrend[periodATR,multiplier]// 2) Rilevazione del segnale di incrociopuntoLsenal = close crosses over Ind1 // segnale vero nella barra in cui il prezzo incrocia al rialzopuntoSsenal = close crosses under Ind1 // segnale vero nella barra in cui il prezzo incrocia al ribasso// 3) Registrazione del valore di Ind1 al momento del segnaleONCE puntoLnivel = 0 // inizializza solo una voltaONCE puntoSnivel = 0IF puntoLsenal THENpuntoLnivel = Ind1 // salvo il livello di Ind1 al segnale longENDIFIF puntoSsenal THENpuntoSnivel = Ind1 // salvo il livello di Ind1 al segnale shortENDIF// 4) Logica di entrata in vendita (short) usando puntoLnivelc1 = NOT onmarket AND close > Ind1 AND Ind1 <= puntoLnivelIF c1 THENSELLSHORT 1 CONTRACTS AT MARKETENDIF// 5) Uscita dalla posizione shortc2 = shortonmarket AND close crosses under Ind1 // uscita per incrocio a ribasso del prezzoc3 = shortonmarket AND Ind1 > puntoLnivel // uscita se Ind1 supera il livello catturatoIF c2 OR c3 THENEXITSHORT AT MARKETENDIF// La logica per “Punto S” (long) è speculare:// - usare puntoSnivel invece di puntoLnivel// - invertire crosses under / crosses over// - invertire le comparazioni// Visualizzazione su graficographonprice puntoLnivelgraphonprice puntoSnivelgraphonprice Ind11 user thanked author for this post.
07/21/2025 at 11:13 AM #24899807/21/2025 at 11:52 AM #249000 -
AuthorPosts