SET
SET in ProBacktest and ProOrder introduces order management commands such as SET TARGET PROFIT and SET STOP LOSS. Variants, syntax, and errors explained.
Sintassi
SET TARGET PROFIT value
SET STOP LOSS valueParametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
value | numero | nessuno | Distanza dal prezzo di ingresso alla quale si attiva l'uscita, nell'unità implicata dalla parola chiave che segue STOP o TARGET. Accetta valori letterali, variabili ed espressioni. |
Come funziona
SET introduces the two families of exit declarations. SET STOP definisce dove la posizione si chiude in perdita, e SET TARGET definisce dove si chiude in profitto. Ogni famiglia accetta diverse parole chiave di unità: LOSS e PROFIT misurano la distanza in unità di prezzo, PLOSS e PPROFIT in punti, %LOSS e %PROFIT in percentuale, $LOSS e $PROFIT nella valuta del conto. Oltre alle distanze fisse, SET STOP accetta anche le varianti trailing TRAILING, PTRAILING, %TRAILING e $TRAILING, ed entrambi i lati accettano BREAKEVEN.
Una dichiarazione SET è persistente. Si applica alla posizione attualmente aperta e a ogni posizione aperta successivamente, finché un'altra chiamata SET sullo stesso lato non la sostituisce. Esistono esattamente due slot, uno sul lato stop e uno sul lato target; all'interno di uno slot vince la chiamata più recente. Scritta senza condizioni alla fine del codice, una dichiarazione funziona come bracket permanente su tutte le operazioni. Scritta dentro blocchi IF, adatta l'uscita mentre l'operazione si sviluppa, ed è così che si esprime la logica di breakeven e di protezione del profitto.
I valori sono distanze dal prezzo di ingresso, non livelli di prezzo assoluti. Per una posizione long la distanza dello stop si estende sotto l'ingresso e la distanza del target sopra; una posizione short rispecchia entrambe.
Esempi
Esempio 1, Bracket permanente su ogni operazione (ProBacktest)
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100Ogni operazione ha un take profit a 120 unità di prezzo dall'ingresso e uno stop a 100 unità dall'ingresso. Questo è l'esempio del riferimento ufficiale.
Esempio 2, Bracket basato su percentuale (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Exit at plus 2 percent or minus 1 percent from entry
SET TARGET %PROFIT 2
SET STOP %LOSS 1Le varianti percentuali mantengono il bracket proporzionale al prezzo dello strumento, il che rende lo stesso codice riutilizzabile su mercati con prezzi diversi.
Esempio 3, Restringere lo stop mentre l'operazione lavora (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER highest[20](high)[1] THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Initial stop, replaced by a tighter trailing stop once in profit
IF onmarket AND close - tradeprice < 20 * pointsize THEN
SET STOP PLOSS 20
ELSIF onmarket THEN
SET STOP PTRAILING 10
ENDIFLo slot dello stop viene riscritto a ogni bar, uno stop fisso di 20 punti all'inizio dell'operazione, poi un trailing stop di 10 punti quando la posizione è in profitto di 20 punti. L'ultima chiamata SET sul lato stop è sempre quella attiva.
Errori e insidie comuni
- SET is not assignment. Le variabili vengono assegnate con
=, come ina = 10. SET precede solo le parole chiave di gestione degli ordini;SET a 10non compila, eSTOP LOSS 100senza SET non compila nemmeno. - Distanze, non livelli di prezzo.
SET STOP LOSS 100piazza lo stop a 100 unità di prezzo dall'ingresso, non al prezzo 100. I livelli assoluti devono prima essere convertiti in una distanza da TRADEPRICE. - Uno slot per lato, vince l'ultima chiamata. Due
SET STOPrighe che vengono eseguite entrambe sulla stessa barra lasciano attiva solo la seconda. I blocchi IF sovrapposti sono la fonte abituale di uno stop che silenziosamente differisce da quanto previsto. - Le dichiarazioni sopravvivono all'operazione. Una chiamata SET continua ad applicarsi alle posizioni future finché non viene sostituita. Un restringimento condizionale che scatta tardi in un'operazione si trasferisce al bar di ingresso dell'operazione successiva, a meno che il codice non reimposti il bracket quando non vi sono posizioni aperte.
Istruzioni correlate
STOP, il lato stop loss dell'istruzione SET.TARGET, il lato take profit dell'istruzione SET.BREAKEVEN, sposta lo stop o il target al prezzo di ingresso.TRAILING, distanza del trailing stop in unità di prezzo.PTRAILING, distanza del trailing stop in punti.Set Stop Profit, ordine stop collocato a una distanza di profitto dall'ingresso.Set Target Loss, ordine target collocato a una distanza di perdita dall'ingresso.PROFIT, distanza di take profit in unità di prezzo.LOSS, distanza dello stop loss in unità di prezzo.PPROFIT, distanza del take profit in punti.PLOSS, distanza di stop loss in punti.