SELL
SELL in ProBacktest en ProOrder sluit een open long positie. SELL stapt uit longs terwijl SELLSHORT shorts opent. Syntaxis, ordertypes en voorbeelden uitgelegd.
Syntaxis
SELL AT MARKETSELL x CONTRACT AT MARKETSELL AT price STOPHoe het werkt
SELL is de uitstapinstructie aan de long-zijde. Zonder hoeveelheid geschreven, SELL AT MARKET sluit de volledige open longpositie tegen de eerstvolgende beschikbare prijs. Met een hoeveelheid, zoals SELL 1 CONTRACT AT MARKET, sluit het maar een deel van een grotere positie, en zo wordt gedeeltelijk afbouwen uitgedrukt.
Pending vormen zijn ook beschikbaar: SELL AT price LIMIT sluit op een genoemd niveau of beter boven de markt, een winstnemingsorder, en SELL AT price STOP stapt uit zodra de prijs door een niveau zakt, een handmatige stoporder. Zoals bij alle openstaande orders in ProBacktest en ProOrder wordt een niet-gevulde order na één bar geannuleerd en moet hij opnieuw worden ingelegd zolang de uitstapregel geldig blijft.
Het onderscheid met SELLSHORT is belangrijk. SELL verkleint of sluit altijd alleen een long positie; wanneer de strategie geen positie of een short heeft, heeft een SELL-order geen effect. SELLSHORT opent een nieuwe short positie, en EXITSHORT sluit die. De vier orderinstructies vormen paren: BUY met SELL voor de long kant, en SELLSHORT met EXITSHORT voor de short kant.
Voorbeelden
Voorbeeld 1, Regelgebaseerde exit uit een long positie (ProBacktest)
// Close the long at market when the exit conditions are met
IF LongOnMarket AND ExitConditions THEN
SELL AT MARKET
ENDIFDe positie sluit tegen de huidige marktprijs zodra de uitstapregel vuurt terwijl er een long trade open is. Dit is het voorbeeld uit de officiële referentie.
Voorbeeld 2, De helft van de positie afbouwen na een winst (ProOrder)
DEFPARAM CumulateOrders = false
// Enter with two contracts when flat
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 2 CONTRACT AT MARKET
ENDIF
// Take half off after a 2 percent gain from entry
IF longonmarket AND close >= tradeprice * 1.02 AND countofposition = 2 THEN
SELL 1 CONTRACT AT MARKET
ENDIF
// Close the remainder when the trend turns
IF longonmarket AND close CROSSES UNDER Average[50](close) THEN
SELL AT MARKET
ENDIFEen SELL met opgegeven hoeveelheid sluit een deel van de positie, terwijl de laatste SELL zonder hoeveelheid sluit wat er nog over is.
Voorbeeld 3, Pending stop-exit onder de entry (ProOrder)
// Maintain a resting exit 50 points below the entry price
IF longonmarket THEN
SELL AT tradeprice - 50 * pointsize STOP
ENDIFDe pending stop-order wordt op elke bar opnieuw ingelegd zolang de long open is, waardoor er een harde exit 50 punten onder de fill-prijs blijft liggen.
Veelvoorkomende fouten en valkuilen
- SELL is niet SELLSHORT. SELL sluit longs; SELLSHORT opent shorts. Een strategie die short wil gaan en SELL uitgeeft terwijl ze geen positie heeft doet niets, en de fout is stil omdat de order simpelweg wordt genegeerd.
- Geen long om te sluiten. Wanneer de strategie flat of short is, heeft SELL geen effect. Bescherm exitblokken met
IF LongOnMarket THENzodat de intentie van de code expliciet blijft. - Pending exits verlopen na één bar. Een rustende
SELL ... STOPofSELL ... LIMITorder wordt geannuleerd als hij na de volgende bar niet is uitgevoerd. Dien hem op elke bar opnieuw in zolang de positie open staat, zoals in voorbeeld 3. - Mismatch in deelhoeveelheid. Een SELL met een opgegeven hoeveelheid die groter is dan de open positie sluit alleen de positie; hij draait niet om naar een short. Controleer de grootte met COUNTOFPOSITION voordat je met vaste hoeveelheden afbouwt.
Gerelateerde instructies
BUY, opent 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.LONGONMARKET, waar zolang er een long positie open is.ONMARKET, waar zolang er een positie open is.TRADEPRICE, de uitvoeringsprijs van een eerdere trade.