Iscriviti ora
ProBacktest/probacktest · proorder

%TRAILING

L'istruzione %TRAILING imposta un trailing stop come percentuale del prezzo della posizione con SET STOP %TRAILING nel codice ProRealTime™ ProBacktest e ProOrder.

Sintassi

probuilder
SET STOP %TRAILING x

Parametri

NomeTipoPredefinitoDescrizione
xnumericonessunoDistanza percentuale mantenuta tra lo stop e il prezzo più favorevole raggiunto dall'ingresso. Decimali come 1.5 sono accettati.

Come funziona

%TRAILING si combina con SET STOP solo. A differenza dello statico SET STOP %LOSS, la variante trailing avanza a scatti. Per una posizione long lo stop parte x per cento sotto il prezzo della posizione e sale ogni volta che il prezzo segna un nuovo massimo dall'ingresso, mantenendo sempre il x percento di distanza da quel massimo. Non scende mai. Per una posizione short la logica è speculare: lo stop segue x percento sopra il prezzo minimo raggiunto.

Una volta eseguita l'istruzione, l'impostazione persiste e si applica alla posizione corrente e a tutte le posizioni future fino a un'altra SET STOP la chiamata lo sostituisce. Un valore di 0 disattiva il trailing stop.

Poiché la distanza è una percentuale, il divario assoluto si allarga quando il prezzo sale e si restringe quando scende, il che mantiene la protezione proporzionale su strumenti con ampi intervalli di prezzo. Quando il livello trascinato viene raggiunto, la posizione si chiude a mercato come uno stop ordinario.

Esempi

Esempio 1, Ingresso in trend protetto da un trail dell'1.5 percento (ProBacktest)

probuilder
// Long-term and short-term moving averages
i1 = Average[100](close)
i2 = Average[5](close)

// Enter on a pullback inside an uptrend, after three rising lows
tradeinitiate = Close > i1 AND Close < i2 AND Low[3] > Low[2] AND Low[2] > Low[1] AND Low[1] > Low
tradeclose = Close > Close[1]

IF NOT LongOnMarket AND tradeinitiate THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF

IF LongOnMarket AND tradeclose THEN
    SELL AT MARKET
ENDIF

// Trail the stop 1.5 percent below the highest price since entry
SET STOP %TRAILING 1.5

La strategia compra i pullback in un trend rialzista ed esce sulla forza. Se il segnale di uscita non scatta mai, il trailing stop chiude la posizione dopo un ritracciamento dell'1.5 percento dal miglior prezzo raggiunto.

Esempio 2, Trail percentuale su un breakdown short (ProOrder)

probuilder
support = Lowest[20](low)
IF NOT ShortOnMarket AND close crosses under support[1] THEN
    SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// The stop trails 2 percent above the lowest price since entry
SET STOP %TRAILING 2

Sul lato short lo stop segue il prezzo verso il basso e solo un rimbalzo del 2 percento dal minimo chiude l'operazione.

Esempio 3, Prima stop fisso, poi trail quando l'operazione è in profitto (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND RSI[14](close) < 30 THEN
    BUY 1 CONTRACT AT MARKET
    // Static protection while the trade develops
    SET STOP %LOSS 1
ENDIF

// Switch to a tighter trailing stop once price is 1 percent ahead
IF LongOnMarket AND close >= TRADEPRICE * 1.01 THEN
    SET STOP %TRAILING 0.5
ENDIF

Un pattern comune in due fasi: uno stop percentuale statico limita il rischio iniziale, poi uno più stretto %TRAILING subentra quando la posizione mostra un profitto. Il passaggio è a senso unico per il resto dell'operazione perché la condizione resta vera una volta raggiunta, e ogni esecuzione mantiene lo stesso valore.

Errori e insidie comuni

  • Abbinamento SET errato. %TRAILING è un'istruzione di stop, quindi si combina con SET STOP solo. SET TARGET %TRAILING non è una forma valida; i target usano %PROFIT.
  • Un solo slot di stop. %TRAILING, %LOSS, $TRAILING, PLOSS e BREAKEVEN scrivono tutti sullo stesso stop interno. Il più recente SET STOP chiamata prevale, quindi mescolare uno stop statico e un trailing stop nella logica barra per barra sostituisce l'uno con l'altro invece di combinarli.
  • Trailing basato sulle barre nei backtest. ProBacktest aggiorna il livello trascinato dai dati delle barre, quindi i picchi intrabarra possono essere gestiti in modo ottimistico rispetto all'esecuzione live tick per tick. Aspettati piccole differenze tra le esecuzioni in backtest e quelle live.
  • Percentuale troppo stretta. Un trailing stop inferiore al range tipico della bar dello strumento viene colpito quasi immediatamente. Confronta x rispetto alla volatilità media, per esempio una percentuale derivata da AverageTrueRange, prima di fissare il valore.
  • $TRAILING, trailing stop come importo fisso in denaro.
  • PTRAILING, trailing stop come distanza in punti.
  • TRAILING, panoramica della famiglia trailing stop.
  • %LOSS, stop loss statico come percentuale del prezzo della posizione.
  • %PROFIT, take profit come percentuale del prezzo della posizione.
  • BREAKEVEN, sposta lo stop o il target al prezzo di ingresso.
  • STOP, ordini stop pendenti e la famiglia SET STOP.
  • TRADEPRICE, prezzo di ingresso di una data operazione.
  • LONGONMARKET, vero mentre una posizione long è aperta.