QUIT
QUIT dans ProBacktest et ProOrder arrête immédiatement un système de trading, en clôturant les positions ouvertes et en annulant les ordres en attente. Syntaxe et mises en garde sur le redémarrage.
Syntaxe
QUITComment ça marche
Lorsque l'exécution atteint une instruction QUIT, le système de trading s'arrête sur ce bar. Toute position ouverte est clôturée au marché, tous les ordres stop et limite en attente sont annulés, et la stratégie cesse de traiter les bars suivants. L'arrêt est définitif du point de vue du code : aucune instruction ne peut redémarrer un système arrêté, donc reprendre le trading nécessite de relancer la stratégie manuellement depuis la plateforme.
Dans ProBacktest, l'effet est le même en simulation. Le test se termine sur le bar où QUIT s'exécute et le reste de l'historique est ignoré, ce qui est utile pour modéliser une limite de capital stricte.
QUIT est presque toujours encadré par une condition. Les schémas habituels sont un plancher d'equity lu depuis STRATEGYPROFIT, une heure d'arrêt lue depuis les constantes d'horloge comme CurrentHour, ou une garde sur l'état de la position construite à partir de ONMARKET, LONGONMARKET ou SHORTONMARKET. Il agit comme dernière ligne de défense après les protections par trade telles que les stops et les objectifs.
Exemples
Exemple 1, Arrêt à 22:00 en position short (ProOrder)
// Stop the system at 22:00 if a short position is still open
IF ShortOnMarket AND CurrentHour = 22 THEN
QUIT
ENDIFAu premier bar de l'heure 22:00 avec une position short ouverte, la position est clôturée et le système s'arrête. Ceci est le premier exemple tiré de la référence officielle.
Exemple 2, Coupe-circuit sur l'equity (ProOrder)
// Terminate the strategy once it has lost 200 units of account currency
IF StrategyProfit < -200 THEN
QUIT
ENDIFSTRATEGYPROFIT suit le résultat cumulé du système. Dès que la perte dépasse 200 unités de devise, QUIT solde les positions et arrête définitivement le trading.
Exemple 3, Limite de drawdown depuis le pic d'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
ENDIFAu lieu d'un seuil de perte fixe, le coupe-circuit se déclenche sur un drawdown mesuré depuis la meilleure equity atteinte, une façon courante de modéliser une limite de risque de type fonds dans un backtest.
Erreurs et pièges courants
- Pas de redémarrage programmatique. Une fois QUIT exécuté, le système est arrêté définitivement. Aucune instruction ne le réarme ; redémarrer signifie relancer la stratégie manuellement. Une condition qui se déclenche trop facilement peut mettre silencieusement hors ligne un système en réel.
- Sortie au marché, avec slippage. QUIT clôture la position ouverte au prix du marché. Dans des conditions rapides, l'exécution peut être nettement moins bonne que le dernier prix coté, de sorte que la perte réalisée peut dépasser le seuil qui a déclenché l'arrêt.
- Un QUIT inconditionnel arrête dès le premier bar. Placé en dehors de tout bloc IF, QUIT s'exécute immédiatement et la stratégie ne trade jamais. Il doit toujours être placé derrière une condition.
- Les backtests tronqués faussent les statistiques. Dans ProBacktest, QUIT met fin à la simulation prématurément. Comparer des exécutions où une version s'arrête à mi-parcours des données avec une version qui va jusqu'au bout n'est pas une comparaison équivalente ; vérifiez le nombre de bars réellement tradés.
Instructions liées
STRATEGYPROFIT, profit cumulé du système dans la devise du compte.CurrentHour, heure du bar en cours, utile pour les arrêts programmés.ONMARKET, vrai tant qu'une position est ouverte.SHORTONMARKET, vrai tant qu'une position short est ouverte.LONGONMARKET, vrai tant qu'une position long est ouverte.FLATAFTER, force la stratégie à être hors position après une heure donnée chaque jour.FLATBEFORE, force la stratégie à être hors position avant une heure donnée chaque jour.SELL, clôture une position long ouverte.EXITSHORT, clôture une position short ouverte.