Word nu lid
ProBacktest/probacktest · proorder

BUY

BUY opent in ProBacktest en ProOrder een long positie. Behandelt hoeveelheidseenheden, de ordertypes AT MARKET, LIMIT en STOP, plus veelvoorkomende fouten bij dimensionering en instap.

Syntaxis

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

Parameters

NaamTypeStandaardBeschrijving
xgetalverplichtOrderhoeveelheid, geïnterpreteerd via de eenheid die erop volgt.
eenheidSHARES, CONTRACT, LOT, CASHverplichtEenheid van position size. CASH geeft een bedrag in accountvaluta aan in plaats van een aantal eenheden.
ordertypeAT MARKET, AT price LIMIT, AT price STOPverplichtOnmiddellijke uitvoering tegen de huidige prijs, of een pending order op een opgegeven niveau.

Hoe het werkt

BUY plaatst een long instaporder. Met AT MARKET, wordt de order uitgevoerd tegen de eerstvolgende beschikbare koers. Met AT price LIMIT, wacht een pending order om te kopen op het opgegeven niveau of beter, onder de huidige prijs. Met AT price STOP, koopt een pending order zodra de koers door het genoemde niveau stijgt, de gebruikelijke vorm voor breakout-instappen.

De eenheid van de hoeveelheid moet bij het instrument passen: SHARES voor aandelen, CONTRACT voor futures en CFD's, LOT voor forex, en CASH om de order te dimensioneren als een bedrag in de accountvaluta. Positieopbouw wordt bepaald door CumulateOrders. Als dit is ingeschakeld, wat de standaard is, stapelen herhaalde BUY-orders zich op tot een grotere positie; met DEFPARAM CumulateOrders = false, een nieuwe BUY terwijl je al long bent wordt genegeerd.

Entries worden normaal omsloten door een positiestatuscontrole zoals IF NOT LongOnMarket THEN of IF NOT OnMarket THEN, zodat orders alleen afgaan wanneer de strategie een nieuwe positie wil aanhouden.

Voorbeelden

Voorbeeld 1, Voorwaardelijke marktinstap (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

Er wordt één aandeel gekocht tegen de huidige marktprijs, maar alleen wanneer er nog geen long positie open is. Dit is het voorbeeld uit de officiële referentie.

Voorbeeld 2, Breakout-instap met een pending 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

De pending stoporder ligt boven de markt en wordt alleen uitgevoerd als de prijs omhoog door de high van de vorige 20 bars handelt.

Voorbeeld 3, In cash gedimensioneerde instap met een 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 houdt de exposure in geldtermen constant over instrumenten met verschillende prijzen, in plaats van een vast aantal eenheden.

Veelvoorkomende fouten en valkuilen

  • Onbedoelde pyramiding. CumulateOrders staat standaard aan, dus een instapvoorwaarde die meerdere bars true blijft, stapelt op elk van die bars een nieuwe BUY. Zet ofwel DEFPARAM CumulateOrders = false of beveilig de instap met NOT LongOnMarket.
  • Pending orders verlopen na één bar. A LIMIT of STOP order die op de volgende bar niet wordt uitgevoerd, wordt geannuleerd. Blijvend openstaande instappen moeten elke bar opnieuw worden ingelegd zolang de setup geldig blijft.
  • Verkeerde eenheid voor het instrument. SHARES op een forexpaar of LOT op een aandeel geeft de order niet de bedoelde omvang. Stem de eenheid af op de markt, of gebruik CASH voor een grootte in valuta.
  • BUY als short-uitstap. Het sluiten van een short positie is de taak van EXITSHORT. Een BUY die groter is gedimensioneerd dan de open short draait de positie om in plaats van hem alleen te sluiten, wat zelden het bedoelde gedrag is.
  • SELL, sluit een long positie.
  • SELLSHORT, opent een short positie.
  • EXITSHORT, sluit een short positie.
  • MARKET, onmiddellijke uitvoering tegen de huidige prijs.
  • LIMIT, pending order tegen een opgegeven prijs of beter.
  • STOP, pending order die wordt geactiveerd wanneer de prijs een niveau kruist.
  • CONTRACT, hoeveelheidseenheid voor futures en CFD's.
  • SHARES, hoeveelheidseenheid voor aandelen.
  • LOT, hoeveelheidseenheid voor forex.
  • CASH, dimensioneert een order in de accountvaluta.
  • ONMARKET, waar zolang er een positie open is.
  • CumulateOrders, bepaalt of herhaalde instappen zich opstapelen.