Bli medlem idag
ProBacktest/probacktest · proorder

BUY

BUY i ProBacktest och ProOrder öppnar en long-position. Täcker kvantitetsenheter, ordertyperna AT MARKET, LIMIT och STOP, samt vanliga misstag kring storlek och entry.

Syntax

probuilder
BUY x SHARES AT MARKET
probuilder
BUY x CONTRACT AT price LIMIT
probuilder
BUY x CONTRACT AT price STOP

Parametrar

NamnTypStandardBeskrivning
xtalobligatoriskOrderkvantitet, tolkad genom enheten som följer.
enhetSHARES, CONTRACT, LOT, CASHobligatoriskStorleksenhet. CASH anger ett belopp i kontovaluta i stället för ett antal enheter.
ordertypAT MARKET, AT price LIMIT, AT price STOPobligatoriskOmedelbar exekvering till aktuellt pris, eller en vilande order på en angiven nivå.

Så fungerar det

BUY lägger en long entryorder. Med AT MARKET, fylls ordern till nästa tillgängliga pris. Med AT price LIMIT, väntar en liggande order på att köpa på den angivna nivån eller bättre, under det aktuella priset. Med AT price STOP, köper en väntande order när priset stiger genom den angivna nivån, den vanliga formen för breakout-entries.

Kvantitetsenheten måste matcha instrumentet: SHARES för aktier, CONTRACT för futures och CFD:er, LOT för forex, och CASH för att storleksbestämma ordern som ett belopp i kontovalutan. Positionsuppbyggnad styrs av CumulateOrders. När den är aktiverad, vilket är standard, staplas upprepade BUY-order till en större position; med DEFPARAM CumulateOrders = false, ett nytt BUY när du redan är long ignoreras.

Entryer omsluts normalt av en positionsstatuskontroll som IF NOT LongOnMarket THEN eller IF NOT OnMarket THEN, så ordrar utlöses bara när strategin avser att hålla en ny position.

Exempel

Exempel 1, Villkorad marknadsentry (ProBacktest)

probuilder
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
    BUY 1 SHARES AT MARKET
ENDIF

En aktie köps till aktuellt marknadspris, men bara när ingen long-position redan är öppen. Detta är exemplet från den officiella referensen.

Exempel 2, Breakout-entry med en vilande stoporder (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Buy a break of the 20-bar high
entryLevel = Highest[20](high)

IF NOT onmarket THEN
  BUY 1 CONTRACT AT entryLevel STOP
ENDIF

Den vilande stopordern ligger ovanför marknaden och fylls bara om priset handlas upp genom föregående 20-barers högsta.

Exempel 3, Entry storleksatt i CASH med ett trendfilter (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

// Size the position as 5000 units of account currency
IF NOT onmarket AND close > Average[50](close) THEN
  BUY 5000 CASH AT MARKET
ENDIF

// Exit when price loses the average
IF longonmarket AND close < Average[50](close) THEN
  SELL AT MARKET
ENDIF

CASH sizing håller exponeringen konstant i valutatermer över instrument med olika priser, istället för att låsa ett antal enheter.

Vanliga fel och fallgropar

  • Oavsiktlig pyramidering. CumulateOrders är aktiverad som standard, så ett entryvillkor som förblir true under flera barer staplar en ny BUY på var och en av dem. Antingen sätt DEFPARAM CumulateOrders = false eller skydda entryn med NOT LongOnMarket.
  • Väntande ordrar upphör att gälla efter en bar. A LIMIT eller STOP order som inte fylls på nästa bar avbryts. Ihållande väntande entryer måste skickas in på nytt varje bar så länge uppsättningen är giltig.
  • Fel enhet för instrumentet. SHARES på ett forexpar eller LOT på en aktie ger inte den avsedda orderstorleken. Matcha enheten mot marknaden, eller använd CASH för en storlek angiven i valuta.
  • BUY som exit ur en short. Att stänga en short-position är EXITSHORT:s uppgift. Ett BUY med större storlek än den öppna shorten vänder positionen i stället för att bara stänga den, vilket sällan är det avsedda beteendet.
  • SELL, stänger en long-position.
  • SELLSHORT, öppnar en short-position.
  • EXITSHORT, stänger en short-position.
  • MARKET, omedelbar exekvering till aktuellt pris.
  • LIMIT, väntande order till angivet pris eller bättre.
  • STOP, väntande order som utlöses när priset korsar en nivå.
  • CONTRACT, kvantitetsenhet för futures och CFD:er.
  • SHARES, kvantitetsenhet för aktier.
  • LOT, kvantitetsenhet för forex.
  • CASH, storleksätter en order i kontovalutan.
  • ONMARKET, sant så länge någon position är öppen.
  • CumulateOrders, styr om upprepade entries staplas.