Únete hoy
ProBacktest/probacktest · proorder

POINTSIZE

POINTSIZE devuelve el tamaño de un punto en unidades de precio para el instrumento actual, y se usa en ProBacktest y ProOrder para convertir precios en números de puntos.

Sintaxis

probuilder
POINTSIZE

Cómo funciona

POINTSIZE es una constante de mercado de solo lectura que no acepta argumentos. Informa del tamaño de un único punto para el instrumento al que está asociada la estrategia, expresado en las propias unidades de precio del instrumento. En un índice cotizado a 18000 un punto puede ser 1.0, mientras que en un par de forex cotizado con cinco decimales es una fracción pequeña, por lo que la constante permite que una misma estrategia se adapte a cualquier convención de cotización.

Su función principal es la conversión de unidades. Las series basadas en precio como close o AverageTrueRange se expresan en unidades de precio, mientras que instrucciones como SET STOP PLOSS y los umbrales de beneficio se expresan a menudo en puntos. Dividir una distancia de precio por POINTSIZE la convierte en puntos, y multiplicar un número de puntos por POINTSIZE la devuelve a una distancia de precio comparable con las cotizaciones.

POINTSIZE describe solo la distancia. El valor en efectivo de un movimiento de un punto es una constante aparte, POINTVALUE. Un cálculo completo en efectivo suele usar ambas, normalizando primero un movimiento de precio en puntos y convirtiendo después los puntos en dinero.

Ejemplos

Ejemplo 1, beneficio flotante de la posición abierta (ProBacktest)

probuilder
// Unrealized gain of the open trade in account currency
floatingprofit = (((close - positionprice) * pointvalue) * countofposition) / pointsize
GRAPH floatingprofit AS "Floating profit"

La distancia entre el precio actual y la entrada media se escala por el valor en efectivo de un punto, se multiplica por el position size y se normaliza por POINTSIZE, lo que da el beneficio no realizado en efectivo. Este es el ejemplo de referencia de la documentación original con los comentarios reescritos.

Ejemplo 2, paso a breakeven tras una ganancia fija en puntos (ProOrder)

probuilder
// Move the stop to entry once the long is 10 points in profit
IF longonmarket AND (high - positionprice) >= 10 * pointsize THEN
  SET STOP BREAKEVEN
ENDIF

Multiplicar 10 por POINTSIZE convierte el objetivo en puntos en una distancia de precio que puede compararse directamente con la diferencia entre el máximo y el precio medio de entrada.

Ejemplo 3, stop por ATR convertido en puntos enteros (ProBacktest)

probuilder
// Express a two-ATR stop distance as an integer point count
atr = AverageTrueRange[14](close)
stopPoints = max(1, round((2 * atr) / pointsize))

IF NOT onmarket AND close > average[50](close) THEN
  BUY 1 CONTRACTS AT MARKET
ENDIF

SET STOP PLOSS stopPoints

El ATR es una distancia de precio, así que dividir por POINTSIZE da el número de puntos que SET STOP PLOSS espera, con redondeo y un mínimo de un punto para mantener el valor válido.

Errores y trampas habituales

  • POINTSIZE no es POINTVALUE. POINTSIZE es una distancia en unidades de precio, POINTVALUE es el valor en efectivo de esa distancia. Intercambiarlos corrompe de forma silenciosa todos los cálculos de riesgo, porque ambos son números simples y el compilador no puede detectar el error.
  • El punto y el pip pueden diferir. En los instrumentos cotizados con incrementos fraccionarios, PIPSIZE y POINTSIZE pueden no ser iguales. El código que los trata como intercambiables se comporta de forma distinta entre pares de forex e índices; comprueba ambas constantes para el mercado de destino.
  • Conversiones codificadas de forma fija. Sustituir POINTSIZE por un literal como 0.0001 ata la estrategia a una única convención de cotización. El mismo código produce entonces distancias de stop incorrectas en cualquier otro instrumento.
  • Restricción de ámbito. La constante solo compila en ProBacktest y ProOrder. El código de indicador o de screener que necesite aritmética de puntos debe usar parámetros de entrada fijos en su lugar.
  • POINTVALUE, el valor en efectivo de un movimiento de un punto.
  • PIPSIZE, el tamaño de un pip en unidades de precio.
  • PIPVALUE, el valor en efectivo de un pip, sinónimo de POINTVALUE.
  • TICKSIZE, el incremento de precio negociable más pequeño.
  • POSITIONPRICE, el precio medio de entrada de la posición abierta.
  • COUNTOFPOSITION, el tamaño con signo de la posición abierta.
  • BREAKEVEN, mueve el stop o el objetivo al precio de entrada.
  • PLOSS, stop loss expresado en puntos.