Word nu lid
ProBacktest/probacktest · proorder

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

probuilder
SELL AT MARKET
probuilder
SELL x CONTRACT AT MARKET
probuilder
SELL AT price STOP

Hoe 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)

probuilder
// Close the long at market when the exit conditions are met
IF LongOnMarket AND ExitConditions THEN
    SELL AT MARKET
ENDIF

De 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)

probuilder
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
ENDIF

Een 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)

probuilder
// Maintain a resting exit 50 points below the entry price
IF longonmarket THEN
  SELL AT tradeprice - 50 * pointsize STOP
ENDIF

De 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 THEN zodat de intentie van de code expliciet blijft.
  • Pending exits verlopen na één bar. Een rustende SELL ... STOP of SELL ... LIMIT order 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.
  • 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.