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
BUY x SHARES AT MARKETBUY x CONTRACT AT price LIMITBUY x CONTRACT AT price STOPParameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
x | getal | verplicht | Orderhoeveelheid, geïnterpreteerd via de eenheid die erop volgt. |
| eenheid | SHARES, CONTRACT, LOT, CASH | verplicht | Eenheid van position size. CASH geeft een bedrag in accountvaluta aan in plaats van een aantal eenheden. |
| ordertype | AT MARKET, AT price LIMIT, AT price STOP | verplicht | Onmiddellijke 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)
// Enter long at market when flat and the entry conditions hold
IF NOT LongOnMarket AND LongConditions THEN
BUY 1 SHARES AT MARKET
ENDIFEr 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)
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
ENDIFDe 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)
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
ENDIFCASH 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.
CumulateOrdersstaat standaard aan, dus een instapvoorwaarde die meerdere bars true blijft, stapelt op elk van die bars een nieuwe BUY. Zet ofwelDEFPARAM CumulateOrders = falseof beveilig de instap metNOT LongOnMarket. - Pending orders verlopen na één bar. A
LIMITofSTOPorder 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.
SHARESop een forexpaar ofLOTop een aandeel geeft de order niet de bedoelde omvang. Stem de eenheid af op de markt, of gebruikCASHvoor 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.
Gerelateerde instructies
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.