QUIT
QUIT i ProBacktest og ProOrder stopper et handelssystem umiddelbart, lukker åpne posisjoner og kansellerer ventende ordrer. Syntaks og forbehold om omstart.
Syntaks
QUITSlik fungerer det
Når kjøringen når en QUIT-setning, stenges handelssystemet ned på den baren. Enhver åpen posisjon lukkes til markedspris, alle ventende stopp- og limitordrer kanselleres, og strategien slutter å behandle flere barer. Nedstengningen er endelig fra kodens synspunkt: ingen instruksjon kan starte et stoppet system på nytt, så for å gjenoppta handelen må strategien startes manuelt fra plattformen.
I ProBacktest er effekten den samme i simulering. Testen avsluttes på baren der QUIT kjøres, og resten av historikken ignoreres, noe som er nyttig for å modellere en hard kapitalgrense.
QUIT pakkes nesten alltid inn i en betingelse. De vanlige mønstrene er et equity-gulv lest fra STRATEGYPROFIT, et nedstengningstidspunkt lest fra klokkekonstantene som CurrentHour, eller en sjekk av posisjonsstatus bygget på ONMARKET, LONGONMARKET eller SHORTONMARKET. Den fungerer som siste forsvarslinje etter beskyttelser per handel som stopp og mål.
Eksempler
Eksempel 1, Steng ned 22:00 i short (ProOrder)
// Stop the system at 22:00 if a short position is still open
IF ShortOnMarket AND CurrentHour = 22 THEN
QUIT
ENDIFPå den første baren i timen 22:00 med en åpen short-posisjon lukkes posisjonen og systemet stopper. Dette er det første eksempelet fra den offisielle referansen.
Eksempel 2, Nødbryter på equity (ProOrder)
// Terminate the strategy once it has lost 200 units of account currency
IF StrategyProfit < -200 THEN
QUIT
ENDIFSTRATEGYPROFIT følger systemets kumulative resultat. Når tapet overstiger 200 valutaenheter, lukker QUIT alle posisjoner og stopper handelen permanent.
Eksempel 3, Drawdown-grense fra equity-toppen (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
ENDIFI stedet for et fast tapsgulv utløses nødbryteren på en drawdown målt fra den høyeste equity som er nådd, en vanlig måte å modellere en fondsliknende risikogrense i en backtest.
Vanlige feil og fallgruver
- Ingen programmatisk omstart. Når QUIT først er kjørt, er systemet stoppet for godt. Det finnes ingen instruksjon som aktiverer det på nytt; omstart betyr å starte strategien manuelt igjen. En betingelse som utløses for lett, kan stille og rolig ta et live system offline.
- Utgang til markedspris, med slippage. QUIT lukker den åpne posisjonen til markedspris. I raske forhold kan fyllet bli merkbart dårligere enn sist noterte pris, så det realiserte tapet kan overstige terskelen som utløste nedstengningen.
- Ubetinget QUIT stopper på første bar. Plassert utenfor en IF-blokk kjøres QUIT umiddelbart, og strategien handler aldri. Den må alltid ligge bak en betingelse.
- Avkortede backtester gir skjev statistikk. I ProBacktest avslutter QUIT simuleringen tidlig. Å sammenligne kjøringer der én versjon avslutter halvveis gjennom dataene mot en versjon som kjører til slutten, er ikke en sammenligning på like vilkår; sjekk antall barer som faktisk ble handlet.
Relaterte instruksjoner
STRATEGYPROFIT, systemets kumulative gevinst i kontovaluta.CurrentHour, timen for gjeldende bar, nyttig for tidsstyrte nedstengninger.ONMARKET, sann så lenge en posisjon er åpen.SHORTONMARKET, sann så lenge en short-posisjon er åpen.LONGONMARKET, sann så lenge en long-posisjon er åpen.FLATAFTER, tvinger strategien flat etter et gitt tidspunkt hver dag.FLATBEFORE, tvinger strategien flat før et gitt tidspunkt hver dag.SELL, lukker en åpen long-posisjon.EXITSHORT, lukker en åpen short-posisjon.