Word nu lid
ProBacktest/probacktest · proorder

QUIT

QUIT in ProBacktest en ProOrder stopt een handelssysteem onmiddellijk, sluit open posities en annuleert openstaande orders. Syntaxis en aandachtspunten bij herstarten.

Syntaxis

probuilder
QUIT

Hoe het werkt

Wanneer de uitvoering een QUIT-statement bereikt, wordt het handelssysteem op die bar afgesloten. Elke open positie wordt tegen de markt gesloten, alle openstaande stop- en limietorders worden geannuleerd en de strategie stopt met het verwerken van verdere bars. De afsluiting is definitief vanuit het oogpunt van de code: geen enkele instructie kan een gestopt systeem herstarten, dus het handelen hervatten vereist dat de strategie handmatig vanuit het platform opnieuw wordt gestart.

In ProBacktest is het effect in simulatie hetzelfde. De test eindigt op de bar waar QUIT wordt uitgevoerd en de resterende historie wordt genegeerd, wat nuttig is om een harde kapitaalgrens te modelleren.

QUIT wordt bijna altijd in een voorwaarde gezet. De gebruikelijke patronen zijn een equity-bodem gelezen uit STRATEGYPROFIT, een stoptijd gelezen uit de klokconstanten zoals CurrentHour, of een controle op de positiestatus opgebouwd met ONMARKET, LONGONMARKET of SHORTONMARKET. Het werkt als de laatste verdedigingslinie na bescherming per trade zoals stops en targets.

Voorbeelden

Voorbeeld 1, Stoppen om 22:00 terwijl je short zit (ProOrder)

probuilder
// Stop the system at 22:00 if a short position is still open
IF ShortOnMarket AND CurrentHour = 22 THEN
  QUIT
ENDIF

Bij de eerste bar van het uur 22:00 met een open short-positie wordt de positie gesloten en stopt het systeem. Dit is het eerste voorbeeld uit de officiële referentie.

Voorbeeld 2, Equity kill switch (ProOrder)

probuilder
// Terminate the strategy once it has lost 200 units of account currency
IF StrategyProfit < -200 THEN
  QUIT
ENDIF

STRATEGYPROFIT houdt het cumulatieve resultaat van het systeem bij. Zodra het verlies 200 valuta-eenheden overschrijdt, maakt QUIT alle posities flat en stopt het handelen permanent.

Voorbeeld 3, Drawdown-limiet vanaf de equity-piek (ProBacktest)

probuilder
// 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
ENDIF

In plaats van een vaste verliesbodem gaat de kill switch af op een drawdown gemeten vanaf de hoogst bereikte equity, een gebruikelijke manier om een risicolimiet in fondsstijl in een backtest te modelleren.

Veelvoorkomende fouten en valkuilen

  • Geen programmatische herstart. Zodra QUIT wordt uitgevoerd, is het systeem definitief gestopt. Er is geen instructie die het opnieuw activeert; herstarten betekent de strategie handmatig opnieuw starten. Een voorwaarde die te makkelijk afgaat, kan een live systeem stilletjes offline halen.
  • Uitstap tegen de markt, met slippage. QUIT sluit de open positie tegen marktprijs. In snelle omstandigheden kan de fill merkbaar slechter zijn dan de laatst gequoteerde prijs, dus het gerealiseerde verlies kan de drempel die de stop veroorzaakte overschrijden.
  • Een onvoorwaardelijke QUIT stopt op de eerste bar. Buiten elk IF-blok geplaatst wordt QUIT onmiddellijk uitgevoerd en handelt de strategie nooit. Hij moet altijd achter een voorwaarde staan.
  • Afgekapte backtests vertekenen de statistieken. In ProBacktest beëindigt QUIT de simulatie vroegtijdig. Runs vergelijken waarbij de ene versie halverwege de data stopt met een versie die tot het einde doorloopt, is geen vergelijking van gelijke met gelijke; controleer het aantal bars dat werkelijk is verhandeld.
  • STRATEGYPROFIT, cumulatieve winst van het systeem in accountvaluta.
  • CurrentHour, uur van de huidige bar, nuttig voor stoppen op tijd.
  • ONMARKET, waar zolang er een positie open is.
  • SHORTONMARKET, waar zolang er een short positie open is.
  • LONGONMARKET, waar zolang er een long positie open is.
  • FLATAFTER, dwingt de strategie elke dag na een bepaald tijdstip flat.
  • FLATBEFORE, dwingt de strategie elke dag vóór een bepaald tijdstip flat.
  • SELL, sluit een open long positie.
  • EXITSHORT, sluit een open short positie.