Word nu lid
ProBacktest/probacktest · proorder

TRADEPRICE

TRADEPRICE in ProBacktest en ProOrder geeft de uitvoeringsprijs van een eerdere trade. TRADEPRICE(1) is de meest recente. Syntaxis, voorbeelden en valkuilen komen aan bod.

Syntaxis

probuilder
TRADEPRICE
probuilder
TRADEPRICE(N)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal1Index van de order, achterwaarts geteld vanaf de meest recente uitvoering. TRADEPRICE(1) is de meest recente order, TRADEPRICE(2) die ervoor.

Hoe het werkt

Elke uitgevoerde order in een strategie, instappen en uitstappen gelijk, wordt met de uitvoeringsprijs vastgelegd. TRADEPRICE leest die historie: zonder argument of met N = 1 geeft het de meest recente uitvoeringsprijs, en hogere waarden van N stap verder terug.

Het meest gebruikelijke gebruik is meten hoeveel de prijs sinds de instap is bewogen, bijvoorbeeld close - tradeprice >= 15 * pointsize als trigger om een stop aan te scherpen. In pyramiding-strategieën onder CumulateOrders, TRADEPRICE(1) markeert de laatste bijkoop, zodat nieuwe instappen op een minimale afstand daarvan kunnen worden gezet. TRADEINDEX is de bijbehorende functie die de barindex van dezelfde order teruggeeft.

TRADEPRICE indexeert afzonderlijke orders, niet de samengevoegde positie. Wanneer meerdere instappen zijn gecumuleerd in één positie, houdt elke instap zijn eigen tradeprijs, terwijl POSITIONPRICE de gewogen gemiddelde prijs van de open positie geeft.

Voorbeelden

Voorbeeld 1, Pyramiding met afstand en tussenruimte in bars (ProBacktest)

probuilder
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
exit = myMACD crosses under 0

// Initial entry on the MACD signal
IF NOT LongOnMarket AND long THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF

If LongOnMarket AND exit THEN
    SELL AT MARKET
ENDIF

// Add a contract once price is 10 points above the last fill
// and at least 5 bars have passed since it
IF BARINDEX - TRADEINDEX(1) > 5 AND Close - TRADEPRICE(1) > 10 AND LongOnMarket THEN
    BUY 1 CONTRACTS AT MARKET
ENDIF

// Trail the whole position
SET STOP %TRAILING 1.5

TRADEPRICE(1) en TRADEINDEX(1) spreiden de bij-instappen in koers en in tijd. Dit is het voorbeeld uit de officiële referentie.

Voorbeeld 2, Verplaatsing naar breakeven gemeten vanaf de instap (ProOrder)

probuilder
// Move the stop to entry after 20 points of open profit
IF longonmarket THEN
  IF close - tradeprice >= 20 * pointsize THEN
    SET STOP BREAKEVEN
  ENDIF
ENDIF

De vorm zonder argument verwijst naar de laatste uitvoering, hier de long-instap, dus de vergelijking meet de open winst in punten vanaf de fill-prijs.

Voorbeeld 3, Noodexit op basis van een percentage vanaf de laatste fill (ProOrder)

probuilder
// Close the long if price drops 2 percent below the last entry
IF longonmarket AND close < TRADEPRICE(1) * 0.98 THEN
  SELL AT MARKET
ENDIF

Door de exit uit te drukken als percentage van de vastgelegde instapprijs blijft de regel overdraagbaar tussen instrumenten met verschillende puntwaarden.

Veelvoorkomende fouten en valkuilen

  • Orders, geen posities. N telt afzonderlijke uitvoeringen, inclusief exits. Nadat een positie sluit, TRADEPRICE(1) verwijst naar de uitvoering van de exit, niet naar de oude instap. Gebruik POSITIONPRICE voor de gemiddelde prijs van de momenteel open positie.
  • Ongecontroleerde aanroepen vóór enige trade. Vroeg in een backtest, vóór de eerste uitvoering, is er geen tradehistorie om te lezen. Zet TRADEPRICE-logica in een ONMARKET- of LONGONMARKET-controle zodat die alleen loopt met een actieve positie erachter.
  • Gecumuleerde instappen wijken af van het gemiddelde. Onder CumulateOrders, close - tradeprice meet de afstand tot de laatste bijkoop, terwijl de winst wordt bepaald door het positiegemiddelde. De twee mengen levert stops op die strakker of ruimer lijken dan bedoeld.
  • Backtest-fills versus live fills. ProBacktest legt geïdealiseerde uitvoeringsprijzen vast. Live ProOrder-fills bevatten slippage, dus afstandsdrempels die op de tick zijn afgestemd, kunnen zich in productie anders gedragen.
  • TRADEINDEX, de barindex van een eerdere trade, met dezelfde indexering als TRADEPRICE.
  • POSITIONPRICE, de gewogen gemiddelde prijs van de open positie.
  • POSITIONPERF, de performance van de open positie.
  • LONGONMARKET, waar zolang er een long positie open is.
  • ONMARKET, waar zolang er een positie open is.
  • BREAKEVEN, verplaatst de stop of het target naar de instapprijs.
  • %TRAILING, trailing stop in procenten.
  • CumulateOrders, maakt het mogelijk dat meerdere instappen zich opstapelen in één positie.