Word nu lid
ProBacktest/probacktest · proorder

LIMIT

LIMIT in ProBacktest en ProOrder plaatst een pending order die wordt uitgevoerd tegen een opgegeven prijs of beter. Syntax met BUY, SELL en SELLSHORT, voorbeelden, valkuilen.

Syntaxis

probuilder
BUY quantity CONTRACT AT price LIMIT
probuilder
SELLSHORT quantity CONTRACT AT price LIMIT
probuilder
SELL AT price LIMIT
EXITSHORT AT price LIMIT

Parameters

NaamTypeStandaardBeschrijving
pricenumerieke expressiegeenHet limietniveau. De order wordt uitgevoerd tegen deze prijs of beter, lager bij een aankoop, hoger bij een verkoop.

Hoe het werkt

LIMIT is een van de drie uitvoeringsmodi van de orderinstructies, naast MARKET voor onmiddellijke uitvoering en STOP voor openstaande stoporders. Een limietorder geeft de slechtst acceptabele prijs. Voor instappen, BUY ... LIMIT ligt onder de huidige markt en wordt gevuld bij een dip naar het niveau, en SELLSHORT ... LIMIT ligt erboven en wordt gevuld bij een rally. Voor exits, SELL ... LIMIT en EXITSHORT ... LIMIT zijn de standaardorders voor winstneming, die de positie sluiten zodra de koers een gunstig niveau bereikt.

De richting ten opzichte van de markt is van belang. Een buy limit die boven de huidige prijs wordt geplaatst, is al marketable en wordt onmiddellijk uitgevoerd, waarbij hij zich gedraagt als een marktorder. Het pending-gedrag ontstaat alleen wanneer het niveau aan de passieve kant ligt, onder de markt voor aankopen, erboven voor verkopen.

Pending orders in ProBacktest en ProOrder hebben een levensduur van één bar. Een niet-uitgevoerde limietorder wordt aan het einde van de volgende bar geannuleerd, dus een strategie die de order langer actief wil houden, moet hem op elke bar opnieuw indienen zolang de instap- of uitstapregel geldt. Een nieuwe pending order in dezelfde richting indienen vervangt de vorige, wat het ook mogelijk maakt om het niveau bar voor bar te verschuiven.

Voorbeelden

Voorbeeld 1, Een dip kopen na een MACD-signaal (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
IF long THEN
    // rest a buy order 10 price units below the close
    BUY 1 LOT AT close-10 LIMIT
ENDIF

Wanneer de MACD-lijn boven nul kruist, wordt er een limietorder geplaatst 10 prijseenheden onder de slotkoers. De trade gaat alleen open als de prijs binnen de volgende bar naar dat niveau zakt, wat de instap verbetert ten koste van het mogelijk missen van de beweging. Dit is het voorbeeld uit de officiële referentie.

Voorbeeld 2, Short gaan in een rally op een vaste offset (ProOrder)

probuilder
// fade signal: RSI overbought
overbought = RSI[14](close) > 70

IF NOT onmarket AND overbought THEN
  // sell short if price rallies 20 points above the current close
  SELLSHORT 1 CONTRACT AT close + 20 * pointsize LIMIT
  SET STOP PLOSS 40
ENDIF

De short-instap ligt boven de markt, dus de positie gaat alleen open bij een verdere opwaartse beweging, tegen een betere prijs dan een onmiddellijke verkoop tegen de markt.

Voorbeeld 3, Winstnemende uitstap die elke bar opnieuw wordt ingediend (ProOrder)

probuilder
// keep a resting take-profit 100 points above the entry price
IF longonmarket THEN
  SELL AT tradeprice + 100 * pointsize LIMIT
ENDIF

Omdat pending orders na één bar verlopen, wordt de uitstap op elke bar opnieuw ingediend zolang de long open staat, waardoor er permanent een winstdoel 100 punten boven de uitvoeringsprijs ligt.

Veelvoorkomende fouten en valkuilen

  • Levensduur van één bar. Een niet-uitgevoerde limietorder wordt na de volgende bar geannuleerd. Code die de order één keer binnen een instapblok plaatst en nooit herhaalt, handelt doorgaans veel minder dan bedoeld. Dien de order opnieuw in zolang de voorwaarde geldt, zoals in voorbeeld 3.
  • Marketable limits worden direct uitgevoerd. Een buy limit boven de huidige prijs, of een sell limit eronder, wordt onmiddellijk uitgevoerd. Een tekenfout in de offset verandert een geduldige instap stilzwijgend in een directe.
  • LIMIT is niet STOP. Buy limits liggen onder de markt, buy stops erboven. Breakout-entries vereisen STOP, pullbackinstappen vereisen LIMIT. Ze verwisselen draait de logica van de strategie om.
  • Backtest-fills zijn optimistisch. ProBacktest voert een limietorder uit zodra de prijs het niveau aantikt. Live kan een aangetikt niveau zonder doorhandel de order onuitgevoerd laten, dus backtests overschatten het uitvoeringspercentage van krappe limietinstappen.
  • BUY, opent een long positie.
  • SELL, sluit een long positie.
  • SELLSHORT, opent een short positie.
  • EXITSHORT, sluit een short positie.
  • MARKET, onmiddellijke uitvoering tegen de huidige prijs.
  • STOP (pending), pending order die wordt geactiveerd wanneer de prijs een niveau kruist.
  • ONMARKET, waar zolang er een positie open is.
  • TRADEPRICE, de instapprijs van de huidige positie.