Salve vorrei sapere come si codifica questa cosa. Ad esempio , oggi entro long e voglio mettere lo stop loss sul minimo di ieri. Oppure oggi entro short e vorrei mettere lo stop loss sui massimi di ieri. Inoltre vorrei inserire in contemporanea uno stop loss massimo di 100 punti. Grazie.
Sì, è possibile programmare un Stop Loss dinamico in ProRealTime che segua queste regole:
- Se entri long → Lo Stop Loss viene impostato sul minimo del giorno precedente, ma se questo è a più di 100 punti di distanza, si utilizza questo limite.
- Se entri short → Lo Stop Loss viene impostato sul massimo del giorno precedente, ma se questo è a più di 100 punti di distanza, si utilizza questo limite.
Nota importante: Il prezzo effettivo di ingresso in posizione è l’apertura della candela successiva alla condizione, quindi idealmente dovremmo ricalcolare lo stop una volta che l’operazione è aperta. Per ora, il codice gestisce il calcolo con il prezzo di chiusura.
// Definizione del limite massimo di Stop Loss in punti
MaxStopLoss = 100
// Ottenere il massimo e il minimo del giorno precedente
highPrevDay = DHigh(1) // Massimo del giorno precedente
lowPrevDay = DLow(1) // Minimo del giorno precedente
// Condizione di ingresso long
IF NOT OnMarket AND conditionLong THEN
entryPrice = close // Memorizza il prezzo di chiusura come riferimento
stopLossLong = MAX(lowPrevDay, entryPrice - MaxStopLoss * pipsize) // SL: minimo del giorno precedente o -100 punti
BUY 1 CONTRACT AT MARKET
SET STOP PRICE stopLossLong
ENDIF
// Condizione di ingresso short
IF NOT OnMarket AND conditionShort THEN
entryPrice = close // Memorizza il prezzo di chiusura come riferimento
stopLossShort = MIN(highPrevDay, entryPrice + MaxStopLoss * pipsize) // SL: massimo del giorno precedente o +100 punti
SELLSHORT 1 CONTRACT AT MARKET
SET STOP PRICE stopLossShort
ENDIF