Bli medlem idag
ProBacktest/probacktest · proorder

LIMIT

LIMIT i ProBacktest och ProOrder lägger en väntande order som fylls till ett angivet pris eller bättre. Syntax med BUY, SELL och SELLSHORT, exempel, fallgropar.

Syntax

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

Parametrar

NamnTypStandardBeskrivning
pricenumeriskt uttryckingenLimitnivån. Ordern exekveras till det här priset eller bättre, lägre för ett köp, högre för en försäljning.

Så fungerar det

LIMIT är ett av de tre exekveringslägena för orderinstruktionerna, tillsammans med MARKET för omedelbar exekvering och STOP för väntande stopporder. En limitorder anger det sämsta acceptabla priset. För entries, BUY ... LIMIT ligger under den aktuella marknaden och fylls vid en dipp till nivån, och SELLSHORT ... LIMIT ligger ovanför den och fylls vid en uppgång. För exits, SELL ... LIMIT och EXITSHORT ... LIMIT är standardordrarna för vinsthemtagning och stänger positionen när kursen når en fördelaktig nivå.

Riktningen i förhållande till marknaden spelar roll. En köplimit som läggs över det aktuella priset är redan marknadsgångbar och exekveras omedelbart, som en marknadsorder. Det väntande beteendet uppstår bara när nivån ligger på den passiva sidan, under marknaden för köp, över den för sälj.

Väntande order i ProBacktest och ProOrder har en livslängd på en bar. En ofylld limitorder avbryts vid slutet av nästa bar, så en strategi som vill ha ordern aktiv längre måste skicka in den igen på varje bar så länge entry- eller exitregeln gäller. Att skicka in en ny väntande order i samma riktning ersätter den föregående, vilket också gör det möjligt att flytta nivån bar för bar.

Exempel

Exempel 1, Köpa en dipp efter en MACD-signal (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

När MACD-linjen korsar upp över noll läggs en limitorder 10 prisenheter under stängningspriset. Affären öppnas bara om priset dippar till den nivån inom nästa bar, vilket förbättrar entryn till priset av att möjligen missa rörelsen. Det här är exemplet från den officiella referensen.

Exempel 2, Gå short in i en rally med fast 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

Short-entryn vilar över marknaden, så positionen öppnas bara vid en ytterligare rörelse uppåt, till ett bättre pris än en omedelbar marknadsförsäljning.

Exempel 3, Vinsthemtagande exit som skickas in igen varje bar (ProOrder)

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

Eftersom väntande order upphör efter en bar skickas exiten in igen på varje bar så länge long-positionen är öppen, vilket håller ett permanent vinstmål 100 punkter över fyllnadspriset.

Vanliga fel och fallgropar

  • Livslängd på en bar. En ofylld limitorder avbryts efter nästa bar. Kod som lägger ordern en gång inuti ett entryblock och aldrig upprepar den handlar oftast betydligt mindre än avsett. Skicka in den igen så länge villkoret gäller, som i exempel 3.
  • Limitorder som är marknadsgångbara exekveras direkt. En köplimit över det aktuella priset, eller en säljlimit under det, fylls omedelbart. Ett teckenfel i offseten förvandlar tyst en avvaktande entry till en omedelbar.
  • LIMIT är inte STOP. Köplimiter ligger under marknaden, köpstoppar över den. Breakout-entryn behöver STOP, pullback-entryer behöver LIMIT. Att blanda ihop dem vänder strategins logik.
  • Fills i backtest är optimistiska. ProBacktest fyller en limit så snart priset berör nivån. Live kan en berörd nivå utan genomhandel lämna ordern ofylld, så backtester överskattar fyllnadsgraden för snäva limitentries.
  • BUY, öppnar en long-position.
  • SELL, stänger en long-position.
  • SELLSHORT, öppnar en short-position.
  • EXITSHORT, stänger en short-position.
  • MARKET, omedelbar exekvering till aktuellt pris.
  • STOP (pending), väntande order som utlöses när priset korsar en nivå.
  • ONMARKET, sant så länge någon position är öppen.
  • TRADEPRICE, entrypriset för den nuvarande positionen.