QUIT
QUIT en ProBacktest y ProOrder detiene inmediatamente un sistema de trading, cerrando las posiciones abiertas y cancelando las órdenes pendientes. Sintaxis y advertencias sobre el reinicio.
Sintaxis
QUITCómo funciona
Cuando la ejecución llega a una sentencia QUIT, el sistema de trading se apaga en esa bar. Cualquier posición abierta se cierra a mercado, todas las órdenes stop y limitadas pendientes se cancelan, y la estrategia deja de procesar más bars. El apagado es definitivo desde el punto de vista del código: ninguna instrucción puede reiniciar un sistema detenido, por lo que reanudar la operativa requiere relanzar la estrategia manualmente desde la plataforma.
En ProBacktest el efecto es el mismo en simulación. La prueba termina en la bar en la que se ejecuta QUIT y el historial restante se ignora, lo que resulta útil para modelar un límite de capital estricto.
QUIT casi siempre va envuelto en una condición. Los patrones habituales son un suelo de equity leído de STRATEGYPROFIT, una hora de apagado leída de las constantes de reloj como CurrentHour, o una comprobación del estado de la posición construida con ONMARKET, LONGONMARKET o SHORTONMARKET. Actúa como la última línea de defensa después de las protecciones por operación, como los stops y los objetivos.
Ejemplos
Ejemplo 1, Apagar a las 22:00 estando short (ProOrder)
// Stop the system at 22:00 if a short position is still open
IF ShortOnMarket AND CurrentHour = 22 THEN
QUIT
ENDIFEn la primera bar de la hora 22:00 con una posición short abierta, la posición se cierra y el sistema se detiene. Este es el primer ejemplo de la referencia oficial.
Ejemplo 2, Interruptor de corte por equity (ProOrder)
// Terminate the strategy once it has lost 200 units of account currency
IF StrategyProfit < -200 THEN
QUIT
ENDIFSTRATEGYPROFIT sigue el resultado acumulado del sistema. Una vez que la pérdida supera las 200 unidades monetarias, QUIT cierra todas las posiciones y detiene la operativa de forma permanente.
Ejemplo 3, Límite de drawdown desde el pico de equity (ProBacktest)
// Track the equity high-water mark
ONCE peakEquity = 0
equity = StrategyProfit
IF equity > peakEquity THEN
peakEquity = equity
ENDIF
// Stop the test after a 500-unit drawdown from the peak
IF peakEquity - equity >= 500 THEN
QUIT
ENDIFEn lugar de un suelo de pérdida fijo, el interruptor de corte se activa con un drawdown medido desde la mejor equity alcanzada, una forma habitual de modelar en un backtest un límite de riesgo al estilo de un fondo.
Errores y trampas habituales
- Sin reinicio programático. Una vez que se ejecuta QUIT, el sistema queda detenido definitivamente. No hay ninguna instrucción que lo rearme; reiniciar significa relanzar la estrategia manualmente. Una condición que se active con demasiada facilidad puede dejar un sistema en real fuera de línea sin avisar.
- Salida a mercado, con slippage. QUIT cierra la posición abierta a precio de mercado. En condiciones rápidas la ejecución puede ser notablemente peor que el último precio cotizado, por lo que la pérdida realizada puede superar el umbral que provocó el apagado.
- Un QUIT sin condición detiene el sistema en la primera bar. Colocado fuera de cualquier bloque IF, QUIT se ejecuta inmediatamente y la estrategia nunca opera. Debe situarse siempre detrás de una condición.
- Los backtests truncados distorsionan las estadísticas. En ProBacktest, QUIT finaliza la simulación antes de tiempo. Comparar ejecuciones en las que una versión se detiene a mitad de los datos con una versión que llega hasta el final no es una comparación equivalente; comprueba el número de bars realmente operadas.
Instrucciones relacionadas
STRATEGYPROFIT, beneficio acumulado del sistema en la divisa de la cuenta.CurrentHour, hora de la bar actual, útil para apagados programados.ONMARKET, verdadero mientras hay alguna posición abierta.SHORTONMARKET, verdadero mientras hay una posición short abierta.LONGONMARKET, verdadero mientras hay una posición long abierta.FLATAFTER, fuerza a la estrategia a quedarse sin posiciones después de una hora dada cada día.FLATBEFORE, fuerza a la estrategia a quedarse sin posiciones antes de una hora dada cada día.SELL, cierra una posición long abierta.EXITSHORT, cierra una posición short abierta.