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
BUY quantity SHARES AT MARKET
SELL quantity SHARES AT MARKETHoe 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)
// enter when price closes above the 50-bar average
IF NOT OnMarket AND close > Average[50](close) THEN
BUY 10 SHARES AT MARKET
ENDIFAls 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)
// cover the short as soon as momentum turns positive
exitSignal = RSI[14](close) crosses under 30
IF ShortOnMarket AND exitSignal THEN
EXITSHORT AT MARKET
ENDIFDe 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)
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
ENDIFEen 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.
SELLenEXITSHORTzijn niet uitwisselbaar.SELL AT MARKETsluit long posities enEXITSHORT AT MARKETsluit shorts. Het verkeerde werkwoord voor de open kant laat de positie ongemoeid.MARKETis geen zelfstandig statement. Het keyword bestaat alleen als onderdeel van een orderstatement naAT. SchrijvenMARKETop een eigen regel compileert niet.
Gerelateerde instructies
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.