Iscriviti ora
ProBacktest/probacktest · proorder

TRAILING

TRAILING imposta un trailing stop in ProBacktest e ProOrder tramite SET STOP TRAILING x, muovendo lo stop con il prezzo a una distanza fissa di x punti dal mercato.

Sintassi

probuilder
SET STOP TRAILING x

Parametri

NomeTipoPredefinitoDescrizione
xnumericonessunoDistanza in punti tra lo stop e il prezzo più favorevole raggiunto.

Come funziona

Uno stop fisso resta dove è stato collocato. Un trailing stop segue l'operazione. SET STOP TRAILING x posiziona lo stop x punti di distanza dal prezzo e poi lo sposta progressivamente man mano che la posizione guadagna: per una long lo stop sale quando si fanno nuovi massimi, per una short scende quando si fanno nuovi minimi. Lo stop si stringe soltanto, un movimento contrario non lo riporta mai indietro.

Il risultato è un'uscita integrata che lascia correre un'operazione in guadagno limitando quanto profitto aperto può essere restituito. Quando il prezzo si inverte di x punti dal suo livello migliore, la posizione si chiude. Non serve codice manuale di gestione dello stop, il motore mantiene il livello barra per barra.

La distanza è espressa in punti. Istruzioni affini coprono altre unità, PTRAILING segue in pip, %TRAILING in percentuale del prezzo, e $TRAILING nella valuta del conto. Tutti occupano lo stesso slot di stop interno di SET STOP LOSS e BREAKEVEN, quindi il più recente SET STOP istruzione è quella in vigore.

Esempi

Esempio 1, Ingresso su pullback protetto da un trail di 10 punti (ProOrder)

probuilder
// Trend and pullback filters
i1 = average(close)[100]
i2 = average(close)[5]

// Enter on a pullback inside a longer uptrend, exit on strength
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

// Safety net: trail the stop 10 points behind the best price
SET STOP TRAILING 10

La strategia ha la propria regola di uscita e il trailing stop funge da rete di sicurezza permanente a 10 punti dietro il prezzo più favorevole. Questo conserva l'esempio di riferimento per l'istruzione.

Esempio 2, Distanza di trailing scalata sull'ATR (ProBacktest)

probuilder
atr = AverageTrueRange[14](close)
// Trail at twice the ATR, converted into points
trailPoints = ROUND(2 * atr / pointsize)

IF NOT onmarket AND close crosses over average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP TRAILING trailPoints

La distanza di trailing si adatta alla volatilità. Nei mercati tranquilli lo stop resta aderente al prezzo, in quelli volatili rimane abbastanza lontano per non essere fatto saltare dal rumore.

Esempio 3, Trail attivato solo quando l'operazione è in profitto (ProOrder)

probuilder
IF NOT onmarket AND close > highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS 30
ENDIF

// Switch from fixed stop to a tight trail once 20 points in profit
IF longonmarket AND close - tradeprice >= 20 * pointsize THEN
  SET STOP TRAILING 10
ENDIF

L'operazione inizia con uno stop fisso ampio. Una volta guadagnati 20 punti, il codice lo sostituisce con un trailing stop di 10 punti, consolidando la maggior parte del guadagno e lasciando spazio per proseguire.

Errori e insidie comuni

  • Punti, non valuta o percentuale. SET STOP TRAILING 10 significa 10 punti. Per distanze in pip, percentuali o in denaro usa PTRAILING, %TRAILING, o $TRAILING, confondere le unità sposta lo stop di ordini di grandezza su alcuni strumenti.
  • Un solo slot di stop. Trailing stop, SET STOP LOSS, e BREAKEVEN si sovrascrivono a vicenda, solo l'istruzione più recente è attiva. Il codice che emette uno stop fisso su ogni barra dopo l'istruzione di trailing disattiva silenziosamente il trailing.
  • Troppo stretto per il timeframe. Una distanza inferiore al normale rumore da barra a barra viene colpita quasi immediatamente. Scala la distanza alla volatilità, per esempio con ATR, invece di scegliere un piccolo numero tondo.
  • Le esecuzioni in backtest sono idealizzate. ProBacktest esce esattamente al livello trascinato. L'esecuzione live di ProOrder può oltrepassarlo nei mercati rapidi, quindi i sistemi con trailing stop di solito rendono leggermente peggio in live che nel backtest.
  • PTRAILING, trailing stop espresso in pip.
  • %TRAILING, trailing stop espresso in percentuale del prezzo.
  • $TRAILING, trailing stop espresso nella valuta del conto.
  • STOP, configurazione dello stop loss fisso con SET STOP LOSS.
  • BREAKEVEN, sposta lo stop o il target al prezzo di ingresso.
  • TARGET, configurazione del take profit per la posizione.
  • TRADEPRICE, prezzo di ingresso della posizione corrente.
  • LONGONMARKET, vero mentre una posizione long è aperta.