Únete hoy
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.

Sintaxis

probuilder
SET TARGET PROFIT x

Parámetros

NombreTipoPor defectoDescripción
xnúmeroningunoDistancia entre el precio de entrada y el take profit, expresada en unidades de precio del instrumento. Acepta literales, variables y expresiones.

Cómo funciona

SET TARGET PROFIT declara una orden take profit pendiente relativa al precio de entrada de la posición. En una posición long el nivel de salida se sitúa x unidades de precio por encima de la entrada; en una posición short se sitúa x unidades por debajo. Cuando el precio alcanza el nivel, la posición se cierra automáticamente.

La declaración es persistente. Una vez ejecutada, permanece activa para la posición actual y para las posiciones abiertas después, hasta que otra SET TARGET llamada la sustituya. Colocar la instrucción en su propia línea al final del código, fuera de cualquier bloque IF, es el patrón habitual para un objetivo fijo que se aplica a todas las operaciones. Envolverla en condiciones permite que el objetivo cambie a mitad de la operación, en cuyo caso la llamada más reciente define el nivel activo.

La distancia se mide en unidades de precio, siendo una unidad el POINTSIZE del instrumento. Para objetivos basados en porcentaje o en efectivo, usa las %PROFIT y $PROFIT variantes en lugar de convertir manualmente.

Ejemplos

Ejemplo 1, Entrada con MACD y objetivo de 50 unidades (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

Se abre un long cuando la línea del MACD cruza por encima de cero, y el take profit lo cierra 50 unidades de precio por encima de la entrada. Este es el ejemplo de la referencia oficial.

Ejemplo 2, Horquilla fija de objetivo y 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

Todas las posiciones llevan la misma horquilla, un take profit 120 unidades por encima de la entrada y un stop 60 unidades por debajo. Ambas declaraciones están fuera del bloque de entrada para que se apliquen a todas las operaciones.

Ejemplo 3, Objetivo escalado por volatilidad (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 distancia del objetivo se recalcula en la entrada como el doble del ATR actual, por lo que los mercados tranquilos reciben objetivos más ajustados que los volátiles.

Errores y trampas habituales

  • Unidades de precio, no puntos ni porcentaje. SET TARGET PROFIT mide su distancia en unidades de precio del instrumento. Para puntos usa SET TARGET PPROFIT, para porcentaje SET TARGET %PROFIT, para la divisa de la cuenta SET TARGET $PROFIT. Confundir la unidad produce objetivos exageradamente estrechos o amplios.
  • PROFIT no lee el beneficio. La palabra clave solo aparece dentro de la instrucción SET. Para leer el resultado acumulado de una estrategia o de una posición, usa STRATEGYPROFIT o POSITIONPERF; escribir IF profit > 0 no compila.
  • Distancia, no nivel. El valor es un desplazamiento respecto al precio de entrada, no un precio absoluto. SET TARGET PROFIT 12000 en un índice que cotiza a 12050 crea un objetivo a 12000 unidades de distancia, no un objetivo en 12000.
  • Gana la última llamada. Consecutivos SET TARGET las llamadas se sobrescriben entre sí, solo la declaración más reciente está activa. Los bloques condicionales que se disparan en el mismo bar pueden sustituir en silencio un objetivo previsto.
  • PPROFIT, distancia del take profit en puntos.
  • %PROFIT, distancia del take profit en porcentaje.
  • $PROFIT, distancia del take profit en la divisa de la cuenta.
  • SET, prefijo de todas las declaraciones de gestión de órdenes.
  • TARGET, el lado del take profit de la instrucción SET.
  • LOSS, distancia del stop loss en unidades de precio.
  • Set Target Loss, orden de objetivo colocada a una distancia de pérdida desde la entrada.
  • STRATEGYPROFIT, beneficio realizado de la estrategia en la divisa de la cuenta.
  • POSITIONPERF, rendimiento de la posición abierta.
  • TRADEPRICE, el precio de entrada de la posición actual.