Word nu lid
ProBacktest/probacktest · proorder

MARKET

MARKET in ProBacktest en ProOrder voert BUY- en SELL-orders uit tegen de actuele marktprijs. Orders worden uitgevoerd op de open van de volgende bar, zonder prijslimiet.

Syntaxis

probuilder
BUY quantity SHARES AT MARKET
SELL quantity SHARES AT MARKET

Hoe het werkt

Elke orderinstructie eindigt met een ordertype. AT MARKET betekent dat de order geen prijsvoorwaarde heeft: hij wordt uitgevoerd tegen de prijs die de markt op het moment van uitvoering biedt. De alternatieven, LIMIT en STOP, maken in plaats daarvan pending orders die op een specifiek prijsniveau wachten.

Omdat strategiecode één keer per bar op de close loopt, wordt een marktorder die op de ene bar ontstaat doorgestuurd en uitgevoerd op de open van de volgende bar. ProBacktest modelleert dit door uit te voeren tegen de openingsprijs van de volgende bar. In live ProOrder bereikt de order op dat moment de broker en wordt hij uitgevoerd tegen de best beschikbare prijs, die in snelle of dunne markten kan afwijken van de geprinte openingskoers.

Een market order ruilt zekerheid van uitvoering tegen onzekerheid over de koers. Het past bij signalen waarbij in de trade zitten belangrijker is dan het exacte niveau, zoals trendvolgende instappen of gedwongen uitstappen. Wanneer het instapniveau zelf deel van de edge is, is een openstaand LIMIT of STOP order drukt die bedoeling beter uit.

AT MARKET combineert met alle orderwerkwoorden: BUY en SELLSHORT om posities te openen, SELL en EXITSHORT om ze te sluiten.

Voorbeelden

Voorbeeld 1, Onmiddellijke aankoop van tien aandelen (ProBacktest)

probuilder
// enter when price closes above the 50-bar average
IF NOT OnMarket AND close > Average[50](close) THEN
  BUY 10 SHARES AT MARKET
ENDIF

Als er geen positie open is en de voorwaarde geldt op de close van de bar, wordt een order voor tien aandelen verzonden die wordt uitgevoerd op de open van de volgende bar tegen de dan geldende prijs.

Voorbeeld 2, Gedwongen uitstap van een short tegen de markt (ProOrder)

probuilder
// cover the short as soon as momentum turns positive
exitSignal = RSI[14](close) crosses under 30

IF ShortOnMarket AND exitSignal THEN
  EXITSHORT AT MARKET
ENDIF

De volledige shortpositie wordt tegen de markt gesloten. Er is geen aantal opgegeven, dus geldt de standaard en wordt de hele positie afgedekt.

Voorbeeld 3, Kruising van voortschrijdende gemiddelden in beide richtingen (ProOrder)

probuilder
fastMA = Average[20](close)
slowMA = Average[50](close)

IF fastMA crosses over slowMA THEN
  IF ShortOnMarket THEN
    EXITSHORT AT MARKET
  ENDIF
  BUY 1 CONTRACT AT MARKET
ENDIF

IF fastMA crosses under slowMA THEN
  IF LongOnMarket THEN
    SELL AT MARKET
  ENDIF
  SELLSHORT 1 CONTRACT AT MARKET
ENDIF

Een stop-and-reverse-systeem. Elke kruising sluit een eventuele tegengestelde positie en opent een nieuwe, alles met marktorders, zodat de strategie altijd met de kruising mee gepositioneerd is.

Veelvoorkomende fouten en valkuilen

  • Uitvoeringen vinden plaats op de open van de volgende bar. De voorwaarde wordt op de close van de bar beoordeeld, maar de uitvoeringsprijs is de open van de volgende bar. Backtestrekenwerk dat uitgaat van instap op de close van de signaalbar overschat de resultaten zodra bars een gap maken.
  • Geen prijsgarantie. Marktorders garanderen uitvoering, geen prijs. Live uitvoeringen kunnen in volatiele omstandigheden wegglijden voorbij de openingsprijs uit de backtest, waardoor live resultaten verslechteren ten opzichte van ProBacktest, dat van schone uitvoeringen uitgaat.
  • SELL en EXITSHORT zijn niet uitwisselbaar. SELL AT MARKET sluit long posities en EXITSHORT AT MARKET sluit shorts. Het verkeerde werkwoord voor de open kant laat de positie ongemoeid.
  • MARKET is geen zelfstandig statement. Het keyword bestaat alleen als onderdeel van een orderstatement na AT. Schrijven MARKET op een eigen regel compileert niet.
  • BUY, opent een long positie of breidt deze uit.
  • SELL, sluit een deel of de hele long positie.
  • SELLSHORT, opent een short positie of breidt deze uit.
  • EXITSHORT, sluit een deel of de hele short positie.
  • LIMIT, pending order die wordt uitgevoerd tegen een vastgestelde prijs of beter.
  • STOP, pending order die wordt geactiveerd zodra de prijs een niveau bereikt.
  • ONMARKET, waar zolang er een positie open is.
  • LONGONMARKET, waar zolang er een long positie open is.
  • SHORTONMARKET, waar zolang er een short positie open is.