Únete hoy
ProBacktest/probacktest · proorder

SELL

SELL en ProBacktest y ProOrder cierra una posición long abierta. SELL sale de posiciones long mientras SELLSHORT abre posiciones short. Sintaxis, tipos de órdenes y ejemplos explicados.

Sintaxis

probuilder
SELL AT MARKET
probuilder
SELL x CONTRACT AT MARKET
probuilder
SELL AT price STOP

Cómo funciona

SELL es la instrucción de salida del lado long. Escrita sin cantidad, SELL AT MARKET cierra toda la posición long abierta al siguiente precio disponible. Con una cantidad, como SELL 1 CONTRACT AT MARKET, cierra solo una parte de una posición mayor, que es la forma de expresar la salida escalonada.

También están disponibles las formas pendientes: SELL AT price LIMIT sale a un nivel indicado o mejor por encima del mercado, una orden de toma de beneficios, y SELL AT price STOP sale cuando el precio atraviesa un nivel, una orden de stop manual. Como con todas las órdenes pendientes en ProBacktest y ProOrder, una orden no ejecutada se cancela después de un bar y debe reenviarse mientras la regla de salida siga siendo válida.

La distinción con SELLSHORT importa. SELL solo reduce o cierra una posición long; cuando la estrategia está fuera del mercado o short, una orden SELL no tiene efecto. SELLSHORT abre una nueva posición short, y EXITSHORT la cierra. Las cuatro instrucciones de órdenes se emparejan como BUY con SELL para el lado long, y SELLSHORT con EXITSHORT para el lado short.

Ejemplos

Ejemplo 1, Salida basada en reglas de una posición long (ProBacktest)

probuilder
// Close the long at market when the exit conditions are met
IF LongOnMarket AND ExitConditions THEN
    SELL AT MARKET
ENDIF

La posición se cierra al precio de mercado actual cuando se activa la regla de salida mientras hay una operación long abierta. Este es el ejemplo de la referencia oficial.

Ejemplo 2, Reducir la mitad de la posición después de una ganancia (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Enter with two contracts when flat
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
  BUY 2 CONTRACT AT MARKET
ENDIF

// Take half off after a 2 percent gain from entry
IF longonmarket AND close >= tradeprice * 1.02 AND countofposition = 2 THEN
  SELL 1 CONTRACT AT MARKET
ENDIF

// Close the remainder when the trend turns
IF longonmarket AND close CROSSES UNDER Average[50](close) THEN
  SELL AT MARKET
ENDIF

Un SELL con cantidad especificada cierra parte de la posición, mientras que el SELL final sin cantidad liquida lo que quede.

Ejemplo 3, Salida con orden stop pendiente por debajo de la entrada (ProOrder)

probuilder
// Maintain a resting exit 50 points below the entry price
IF longonmarket THEN
  SELL AT tradeprice - 50 * pointsize STOP
ENDIF

La orden stop pendiente se vuelve a enviar en cada barra mientras la posición long está abierta, manteniendo una salida fija 50 puntos por debajo del precio de ejecución.

Errores y trampas habituales

  • SELL no es SELLSHORT. SELL cierra posiciones long; SELLSHORT abre posiciones short. Una estrategia que pretende ponerse short y emite SELL estando fuera del mercado no hace nada, y el error es silencioso porque la orden simplemente se ignora.
  • No hay posición long que cerrar. Cuando la estrategia está plana o short, SELL no tiene efecto. Protege los bloques de salida con IF LongOnMarket THEN así la intención del código queda explícita.
  • Las salidas pendientes caducan después de una barra. Una orden en espera SELL ... STOP o SELL ... LIMIT orden se cancela si no se ejecuta después del siguiente bar. Reenvíala en cada bar mientras la posición esté abierta, como en el ejemplo 3.
  • Discrepancia en la cantidad parcial. Un SELL con una cantidad especificada mayor que la posición abierta simplemente cierra la posición; no la invierte a short. Comprueba el tamaño con COUNTOFPOSITION antes de reducir la posición en cantidades fijas.
  • BUY, abre una posición long.
  • SELLSHORT, abre una posición short.
  • EXITSHORT, cierra una posición short.
  • MARKET, ejecución inmediata al precio actual.
  • LIMIT, orden pendiente a un precio indicado o mejor.
  • STOP, orden pendiente que se activa cuando el precio cruza un nivel.
  • LONGONMARKET, verdadero mientras hay una posición long abierta.
  • ONMARKET, verdadero mientras hay alguna posición abierta.
  • TRADEPRICE, el precio de ejecución de una operación pasada.