MARKET
MARKET i ProBacktest och ProOrder utför BUY- och SELL-order till aktuellt marknadspris. Order fylls vid öppningen av nästa bar utan prisgräns.
Syntax
BUY quantity SHARES AT MARKET
SELL quantity SHARES AT MARKETSå fungerar det
Varje ordersats avslutas med en ordertyp. AT MARKET betyder att ordern inte bär något prisvillkor: den utförs till det pris marknaden erbjuder vid utförandet. Alternativen, LIMIT och STOP, skapa i stället väntande ordrar som avvaktar en specifik prisnivå.
Eftersom strategikod körs en gång per bar vid stängningen skickas en marknadsorder som genereras på en bar och fylls vid öppningen av nästa bar. ProBacktest modellerar detta genom att fylla till nästa bars öppningspris. I live-ProOrder når ordern mäklaren i det ögonblicket och fylls till bästa tillgängliga pris, vilket kan skilja sig från den noterade öppningskursen på snabba eller tunna marknader.
En marknadsorder byter säkerhet i exekveringen mot osäkerhet i priset. Den passar signaler där det är viktigare att vara med i affären än den exakta nivån, till exempel trendföljande entryer eller tvingade exitar. När själva entrynivån är en del av edge är en väntande LIMIT eller STOP ordern uttrycker den avsikten bättre.
AT MARKET kombineras med alla orderverb: BUY och SELLSHORT för att öppna positioner, SELL och EXITSHORT för att stänga dem.
Exempel
Exempel 1, Omedelbart köp av tio aktier (ProBacktest)
// enter when price closes above the 50-bar average
IF NOT OnMarket AND close > Average[50](close) THEN
BUY 10 SHARES AT MARKET
ENDIFNär ingen position är öppen och villkoret håller vid barens stängning skickas en order på tio aktier som fylls vid öppningen av nästa bar till gällande pris.
Exempel 2, Tvingad exit av en short till marknadspris (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
ENDIFHela short-positionen stängs till marknadspris. Ingen kvantitet anges, så standardvärdet gäller och hela positionen täcks.
Exempel 3, Korsning av glidande medelvärde i båda riktningarna (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
ENDIFEtt stop-and-reverse-system. Varje korsning stänger en eventuell motsatt position och öppnar en ny, allt med marknadsorder så att strategin alltid är positionerad med korsningen.
Vanliga fel och fallgropar
- Fyllningar sker vid nästa bars öppning. Villkoret utvärderas vid barens stängning, men fyllningspriset är nästa bars öppning. Backtestberäkningar som antar entry vid signalbarens stängning överskattar resultaten varje gång barer gapar.
- Ingen prisgaranti. Marknadsorder garanterar exekvering, inte pris. Fyllningar i live kan slira förbi det backtestade öppningspriset under volatila förhållanden, så live-resultat försämras jämfört med ProBacktest, som antar rena fyllningar.
SELLochEXITSHORTär inte utbytbara.SELL AT MARKETstänger long-positioner ochEXITSHORT AT MARKETstänger shorts. Att använda fel verb för den öppna sidan lämnar positionen orörd.MARKETär inte en fristående sats. Nyckelordet existerar endast som del av en ordersats efterAT. Att skrivaMARKETpå egen rad kompilerar inte.
Relaterade instruktioner
BUY, öppnar eller utökar en long-position.SELL, stänger hela eller delar av en long-position.SELLSHORT, öppnar eller utökar en short-position.EXITSHORT, stänger hela eller delar av en short-position.LIMIT, väntande order som fylls till ett angivet pris eller bättre.STOP, väntande order som utlöses när priset når en nivå.ONMARKET, sant så länge någon position är öppen.LONGONMARKET, sant så länge en long-position är öppen.SHORTONMARKET, sant så länge en short-position är öppen.