Iscriviti ora
ProBacktest/probacktest · proorder

LOSS

LOSS imposta uno stop loss con SET STOP LOSS x in ProBacktest e ProOrder, chiudendo un'operazione in perdita quando il prezzo si muove di x unità di prezzo contro il prezzo medio di ingresso.

Sintassi

probuilder
SET STOP LOSS x

Parametri

NomeTipoPredefinitoDescrizione
xnumericonessunoDistanza dal prezzo medio della posizione, espressa nelle unità di prezzo dello strumento negoziato.

Come funziona

SET STOP LOSS registra uno stop protettivo presso il motore di esecuzione. La distanza x è misurato dal prezzo medio della posizione, quindi per una posizione long lo stop si colloca all'ingresso meno x, e per una posizione short all'ingresso più x. Lo stesso valore positivo funziona per entrambe le direzioni, il motore inverte automaticamente il lato.

La distanza è espressa in unità di prezzo grezze. Su uno strumento quotato con cinque decimali, SET STOP LOSS 0.0050 posiziona lo stop a 50 pips di distanza. Su un indice quotato in punti interi, la stessa istruzione lo posizionerebbe a mezzo centesimo di distanza, il che è quasi certamente errato. Per distanze in punti o pips indipendentemente dalla quotazione, SET STOP PLOSS è la variante più sicura, e SET STOP %LOSS esprime la distanza come percentuale del prezzo di ingresso.

L'istruzione è dichiarativa. Una volta eseguita, lo stop resta associato alla posizione corrente e alle posizioni successive fino a quando un altro SET STOP istruzione la sostituisce o SET STOP LOSS 0 lo annulla. È prassi comune mettere l'istruzione subito dopo l'ordine di ingresso, così i due restano sempre allineati.

In ProBacktest lo stop è valutato rispetto ai massimi e minimi intrabar, in ProOrder in live risiede presso il broker e può essere eseguito con slippage nei mercati veloci.

Esempi

Esempio 1, Ingresso MACD con stop a distanza fissa (ProOrder)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0

IF NOT LongOnMarket AND long THEN
  BUY 1 CONTRACTS AT MARKET
  // stop placed 0.0050 price units below the average entry price
  SET STOP LOSS 0.0050
ENDIF

Un long si apre quando la linea MACD incrocia sopra lo zero, con uno stop 0.0050 unità di prezzo sotto l'ingresso. Il valore è adatto a uno strumento quotato con cinque decimali, come una coppia valutaria principale.

Esempio 2, Distanza di stop scalata sulla volatilità (ProBacktest)

probuilder
// distance adapts to current volatility
atr = AverageTrueRange[14](close)

IF NOT OnMarket AND close crosses over Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS 2 * atr
ENDIF

La distanza di stop è pari a due ATR, quindi si allarga nei mercati volatili e si restringe in quelli tranquilli. L'espressione viene ricalcolata a ogni ingresso, mantenendo il rischio proporzionale alle condizioni.

Esempio 3, Stop sul lato short (ProOrder)

probuilder
short = close crosses under Average[100](close)

IF NOT ShortOnMarket AND short THEN
  SELLSHORT 1 CONTRACT AT MARKET
  // same positive distance, the engine places it above the short entry
  SET STOP LOSS 0.0080
ENDIF

Per una posizione short il motore colloca lo stop sopra il prezzo medio di ingresso. La distanza resta un numero positivo, non serve nessun cambio di segno.

Errori e insidie comuni

  • Unità di prezzo, non punti. x è una distanza di prezzo grezza. SET STOP LOSS 10 su una coppia valutaria a cinque decimali significa 10.0000 di prezzo, una distanza enorme. Per uno stop di 10 pip scrivi SET STOP LOSS 10 * PipSize o usa SET STOP PLOSS 10.
  • Misurata dall'ingresso, non dal prezzo corrente. Il livello di stop è ancorato al prezzo medio della posizione. Richiamare l'istruzione in seguito non fa seguire lo stop dall'ultima chiusura, ma lo riancora alla stessa distanza dall'ingresso. Il trailing richiede $TRAILING, %TRAILING, o TRAILING varianti.
  • L'impostazione persiste. A SET STOP LOSS eseguita una volta continua ad applicarsi a ogni posizione successiva fino a quando non viene sostituita. Una strategia che imposta uno stop stretto in un ramo e dimentica di reimpostarlo altrove trascina quello stop in operazioni non correlate.
  • Le esecuzioni nel backtest sono ottimistiche. ProBacktest presume che lo stop venga eseguito esattamente al suo livello. Gli stop in live possono slittare oltre il livello nei mercati veloci, quindi le perdite realizzate possono superare la distanza configurata.
  • %LOSS, stop loss come percentuale del prezzo di ingresso.
  • $LOSS, stop loss come importo in contanti.
  • PLOSS, stop loss come distanza in punti.
  • Set Target Loss, uscire da una posizione in perdita a una distanza avversa fissa.
  • Set Stop Profit, stop che blocca una distanza di profitto.
  • STOP, ordini stop pendenti per ingressi e uscite.
  • TARGET, controparte take profit della famiglia degli stop.
  • BREAKEVEN, sposta lo stop o il target al prezzo di ingresso.
  • TRADEPRICE, il prezzo di ingresso della posizione corrente.
  • TRAILING, trailing stop che segue il movimento favorevole del prezzo.