Bli medlem i dag
ProBacktest/probacktest · proorder

MARKET

MARKET i ProBacktest og ProOrder utfører BUY- og SELL-ordrer til gjeldende markedspris. Ordrer fylles ved åpningen av neste bar uten prisgrense.

Syntaks

probuilder
BUY quantity SHARES AT MARKET
SELL quantity SHARES AT MARKET

Slik fungerer det

Hver ordresetning avsluttes med en ordretype. AT MARKET betyr at ordren ikke har noen prisbetingelse: den utføres til den prisen markedet tilbyr i utførelsesøyeblikket. Alternativene, LIMIT og STOP, opprett i stedet ventende ordrer som venter på et bestemt prisnivå.

Fordi strategikode kjøres én gang per bar ved slutt, blir en markedsordre som genereres på én bar sendt og fylt ved åpningen av den følgende baren. ProBacktest modellerer dette ved å fylle til neste bars åpningspris. I live ProOrder når ordren megleren i det øyeblikket og fylles til beste tilgjengelige pris, som kan avvike fra åpningskursen i raske eller tynne markeder.

En markedsordre bytter sikkerhet om utførelse mot usikkerhet om pris. Den passer signaler der det å være i handelen betyr mer enn det eksakte nivået, som trendfølgende innganger eller tvungne utganger. Når selve inngangsnivået er en del av edge-en, er en ventende LIMIT eller STOP ordre uttrykker den hensikten bedre.

AT MARKET kombineres med alle ordreverb: BUY og SELLSHORT for å åpne posisjoner, SELL og EXITSHORT for å lukke dem.

Eksempler

Eksempel 1, Umiddelbart kjøp av ti aksjer (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

Når man er uten posisjon og betingelsen holder ved barens slutt, sendes en ordre på ti aksjer og den fylles ved åpningen av neste bar til gjeldende pris.

Eksempel 2, Tvungen utgang av en short til markedspris (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

Hele short-posisjonen lukkes til markedspris. Ingen mengde er oppgitt, så standarden gjelder og hele posisjonen dekkes.

Eksempel 3, Kryss med glidende gjennomsnitt i begge retninger (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

Et stop-and-reverse-system. Hvert kryss lukker enhver motsatt posisjon og åpner en ny, alt med markedsordrer slik at strategien alltid er posisjonert med krysset.

Vanlige feil og fallgruver

  • Fyllinger skjer ved neste bars åpning. Betingelsen evalueres ved barens slutt, men fyllingsprisen er neste bars åpning. Backtest-regnestykker som forutsetter inngang ved signalbarens slutt overdriver resultatene hver gang barer gapper.
  • Ingen prisgaranti. Markedsordrer garanterer utførelse, ikke pris. Live-fyllinger kan gli forbi den backtestede åpningsprisen under volatile forhold, så live-resultater forringes i forhold til ProBacktest, som forutsetter rene fyllinger.
  • SELL og EXITSHORT er ikke utbyttbare. SELL AT MARKET lukker long-posisjoner og EXITSHORT AT MARKET lukker short-posisjoner. Å bruke feil verb for den åpne siden lar posisjonen stå urørt.
  • MARKET er ikke en frittstående setning. Nøkkelordet finnes bare som del av en ordresetning etter AT. Å skrive MARKET på egen linje kompilerer ikke.
  • BUY, åpner eller øker en long-posisjon.
  • SELL, lukker hele eller deler av en long-posisjon.
  • SELLSHORT, åpner eller øker en short-posisjon.
  • EXITSHORT, lukker hele eller deler av en short-posisjon.
  • LIMIT, ventende ordre som fylles til en fastsatt pris eller bedre.
  • STOP, ventende ordre som utløses når prisen når et nivå.
  • ONMARKET, sann så lenge en posisjon er åpen.
  • LONGONMARKET, sann så lenge en long-posisjon er åpen.
  • SHORTONMARKET, sann så lenge en short-posisjon er åpen.