Iscriviti ora
ProBacktest/probacktest · proorder

$TRAILING

L'istruzione $TRAILING imposta un trailing stop come distanza monetaria fissa nella valuta dello strumento con SET STOP $TRAILING in ProBacktest e ProOrder.

Sintassi

probuilder
SET STOP $TRAILING x

Parametri

NomeTipoPredefinitoDescrizione
xnumericonessunoMassima restituzione consentita rispetto al miglior prezzo dall'ingresso, espressa nella valuta dello strumento negoziato.

Come funziona

$TRAILING si combina con SET STOP soltanto. Si comporta come SET STOP $LOSS con una differenza: il prezzo di riferimento avanza a scatti. Per una posizione long lo stop segue sotto il prezzo più alto raggiunto dall'ingresso, a una distanza equivalente a x unità di valuta data la position size, e non scende mai. Per una posizione short segue al di sopra del prezzo più basso raggiunto. Quando il prezzo ritraccia dell'intera distanza, la posizione si chiude.

L'importo in denaro viene tradotto in una distanza di prezzo attraverso la position size e il valore del punto dello strumento, quindi lo stesso x produce un trail di prezzo più stretto su una posizione più grande. L'impostazione persiste per la posizione corrente e per tutte quelle future fino a un'altra SET STOP la chiamata lo sovrascrive, e un valore di 0 lo disattiva.

L'effetto pratico è un limite a quanto profitto aperto l'operazione può restituire, misurato in termini rilevanti per il conto piuttosto che in punti o percentuale.

Esempi

Esempio 1, Ingresso su pullback con un trail di 100 unità di valuta (ProBacktest)

probuilder
// Moving averages framing the pullback
i1 = Average[100](close)
i2 = Average[5](close)

// Uptrend pullback with three rising lows
tradeinitiate = Close > i1 AND Close < i2 AND Low[3] > Low[2] AND Low[2] > Low[1] AND Low[1] > Low

IF NOT LongOnMarket AND tradeinitiate THEN
    BUY 1 CONTRACTS AT MARKET
    // Give the trade at most 100 of retracement from its best price
    SET STOP $TRAILING 100
ENDIF

La strategia compra i pullback in un trend rialzista. Dall'ingresso in poi lo stop segue il prezzo massimo raggiunto ed esce dopo un ritracciamento del valore di 100 unità di valuta.

Esempio 2, Trail monetario su un breakout 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 above the lows, exit after a 75 currency-unit bounce
SET STOP $TRAILING 75

Sul lato short il trail segue il prezzo verso il basso; solo un rimbalzo del valore di 75 unità di valuta contro la posizione attiva l'uscita.

Esempio 3, Prima stop monetario statico, poi trail dopo l'attivazione (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT OnMarket AND close crosses over Highest[20](high)[1] THEN
    BUY 1 CONTRACT AT MARKET
    // Fixed risk while the breakout proves itself
    SET STOP $LOSS 120
ENDIF

// Once the trade is 100 ahead in money terms, switch to a trail
IF LongOnMarket AND (close - TRADEPRICE) * POINTVALUE / POINTSIZE >= 100 THEN
    SET STOP $TRAILING 60
ENDIF

Un'uscita in due fasi espressa interamente in denaro: un tetto di rischio statico di 120 all'ingresso, sostituito da una restituzione trailing di 60 quando il profitto aperto raggiunge 100. La conversione usa POINTVALUE e POINTSIZE per convertire il movimento di prezzo in valuta per una posizione da un contratto.

Errori e insidie comuni

  • Abbinamento SET errato. $TRAILING è un'istruzione di stop e si combina con SET STOP solo. Non esiste SET TARGET $TRAILING; i target di profitto usano $PROFIT.
  • Denaro, non punti. SET STOP $TRAILING 100 consente una restituzione pari a 100 unità di valuta, non 100 punti. La variante in punti è PTRAILING, e confondere i due cambia la distanza dello stop in base al valore del punto dello strumento.
  • La position size riscala il trail. Poiché la distanza monetaria è ripartita sulla posizione, raddoppiare la quantità dimezza il divario di prezzo. Modifiche alla position size possono trasformare un trail comodo in uno all'interno del normale rumore delle barre.
  • Un solo slot di stop. $TRAILING, %TRAILING, $LOSS, PLOSS e BREAKEVEN sovrascrivono lo stesso stop interno; solo il più recente SET STOP la chiamata è attiva. Alternarle a ogni bar produce uscite irregolari.
  • Granularità del backtest. ProBacktest aggiorna il livello trascinato dai dati delle barre. L'esecuzione live trascina tick per tick, quindi le uscite live possono differire leggermente da quelle in backtest sulle barre rapide.
  • %TRAILING, trailing stop come percentuale del prezzo della posizione.
  • PTRAILING, trailing stop come distanza in punti.
  • TRAILING, panoramica della famiglia trailing stop.
  • $LOSS, stop loss statico come importo monetario fisso.
  • $PROFIT, take profit come importo fisso in denaro.
  • BREAKEVEN, sposta lo stop o il target al prezzo di ingresso.
  • STOP, ordini stop pendenti e la famiglia SET STOP.
  • POINTVALUE, valore in valuta di un punto, usato nella conversione da denaro a prezzo.
  • LONGONMARKET, vero mentre una posizione long è aperta.