Iscriviti ora
ProBacktest/probacktest · proorder

PROFIT

SET TARGET PROFIT in ProBacktest and ProOrder places a take profit a fixed number of price units from entry. PROFIT syntax, examples, and common errors.

Sintassi

probuilder
SET TARGET PROFIT x

Parametri

NomeTipoPredefinitoDescrizione
xnumeronessunoDistanza tra il prezzo di ingresso e il take profit, espressa in unità di prezzo dello strumento. Accetta letterali, variabili ed espressioni.

Come funziona

SET TARGET PROFIT dichiara un ordine di take profit pendente relativo al prezzo di ingresso della posizione. Per una posizione long il livello di uscita si colloca x unità di prezzo sopra l'ingresso; per una posizione short si colloca x unità sotto. Quando il prezzo raggiunge il livello, la posizione si chiude automaticamente.

La dichiarazione è persistente. Una volta eseguita, resta attiva per la posizione corrente e per le posizioni aperte successivamente, fino a un'altra SET TARGET chiamata la sostituisce. Collocare l'istruzione su una riga propria alla fine del codice, al di fuori di qualsiasi blocco IF, è il pattern comune per un target fisso che si applica a ogni operazione. Racchiuderla in condizioni consente al target di cambiare durante l'operazione, nel qual caso la chiamata più recente definisce il livello attivo.

La distanza è misurata in unità di prezzo, dove un'unità è il POINTSIZE dello strumento. Per target basati su percentuale o su importo in denaro, usa %PROFIT e $PROFIT varianti invece di convertire manualmente.

Esempi

Esempio 1, Ingresso su MACD con obiettivo di 50 unità (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
IF NOT LongOnMarket AND long THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF
// Close the position once it gains 50 price units
SET TARGET PROFIT 50

Si apre una posizione long quando la linea del MACD incrocia sopra lo zero, e il take profit la chiude 50 unità di prezzo sopra l'ingresso. Questo è l'esempio del riferimento ufficiale.

Esempio 2, Bracket fisso di obiettivo e stop (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Fixed exit bracket around the entry price
SET TARGET PROFIT 120
SET STOP LOSS 60

Ogni posizione porta lo stesso bracket, un take profit 120 unità sopra l'ingresso e uno stop 60 unità sotto. Entrambe le dichiarazioni si trovano fuori dal blocco di ingresso, quindi si applicano a tutte le operazioni.

Esempio 3, Obiettivo scalato sulla volatilità (ProOrder)

probuilder
atr = AverageTrueRange[14](close)

IF NOT onmarket AND RSI[14](close) < 30 THEN
  BUY 1 CONTRACT AT MARKET
  // Target distance adapts to recent volatility
  SET TARGET PROFIT ROUND(2 * atr)
ENDIF

La distanza dell'obiettivo viene ricalcolata all'ingresso come il doppio dell'ATR corrente, quindi i mercati tranquilli ottengono obiettivi più stretti di quelli volatili.

Errori e insidie comuni

  • Unità di prezzo, non punti o percentuale. SET TARGET PROFIT misura la sua distanza in unità di prezzo dello strumento. Per i punti usa SET TARGET PPROFIT, per la percentuale SET TARGET %PROFIT, per la valuta del conto SET TARGET $PROFIT. Confondere l'unità produce obiettivi enormemente troppo stretti o troppo ampi.
  • PROFIT non legge il profitto. La parola chiave compare solo all'interno dell'istruzione SET. Per leggere il risultato corrente di una strategia o di una posizione, usa STRATEGYPROFIT o POSITIONPERF; scrivere IF profit > 0 non compila.
  • Distanza, non livello. Il valore è uno scostamento dal prezzo di ingresso, non un prezzo assoluto. SET TARGET PROFIT 12000 su un indice quotato a 12050 crea un target distante 12000 unità, non un target a 12000.
  • Vince l'ultima chiamata. Consecutivi SET TARGET le chiamate si sovrascrivono a vicenda, solo la dichiarazione più recente è attiva. Blocchi condizionali che si attivano sulla stessa barra possono sostituire silenziosamente un target previsto.
  • PPROFIT, distanza del take profit in punti.
  • %PROFIT, distanza del take profit in percentuale.
  • $PROFIT, distanza del take profit nella valuta del conto.
  • SET, prefisso di tutte le dichiarazioni di gestione degli ordini.
  • TARGET, il lato take profit dell'istruzione SET.
  • LOSS, distanza dello stop loss in unità di prezzo.
  • Set Target Loss, ordine target collocato a una distanza di perdita dall'ingresso.
  • STRATEGYPROFIT, profitto realizzato della strategia nella valuta del conto.
  • POSITIONPERF, performance della posizione aperta.
  • TRADEPRICE, il prezzo di ingresso della posizione corrente.