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
TRADEPRICETRADEPRICE(N)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | 1 | Index 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)
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.5TRADEPRICE(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)
// Move the stop to entry after 20 points of open profit
IF longonmarket THEN
IF close - tradeprice >= 20 * pointsize THEN
SET STOP BREAKEVEN
ENDIF
ENDIFDe 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)
// Close the long if price drops 2 percent below the last entry
IF longonmarket AND close < TRADEPRICE(1) * 0.98 THEN
SELL AT MARKET
ENDIFDoor 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.
Ntelt 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 - tradepricemeet 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.
Gerelateerde instructies
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.