TRADEPRICE
TRADEPRICE i ProBacktest och ProOrder returnerar exekveringspriset för en tidigare affär. TRADEPRICE(1) är den senaste. Syntax, exempel och fallgropar täcks.
Syntax
TRADEPRICETRADEPRICE(N)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | 1 | Orderns index, räknat bakåt från den senaste exekveringen. TRADEPRICE(1) är den senaste ordern, TRADEPRICE(2) den före den. |
Så fungerar det
Varje fylld order i en strategi, både entries och exits, registreras med sitt exekveringspris. TRADEPRICE läser den historiken: utan argument eller med N = 1 returnerar den det senaste exekveringspriset, och högre värden på N steg längre tillbaka.
Den vanligaste användningen är att mäta hur långt priset har rört sig sedan entry, till exempel close - tradeprice >= 15 * pointsize som utlösare för att dra åt en stop. I pyramidstrategier under CumulateOrders, TRADEPRICE(1) markerar det senaste påslaget, så att nya entryer kan placeras med ett minsta avstånd från det. TRADEINDEX är den kompletterande funktionen som returnerar barindexet för samma order.
TRADEPRICE indexerar enskilda order, inte den samlade positionen. När flera entries har kumulerats till en position behåller varje order sitt eget affärspris, medan POSITIONPRICE returnerar det viktade genomsnittspriset för den öppna positionen.
Exempel
Exempel 1, Pyramidering med avstånd och barmellanrum (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) och TRADEINDEX(1) sprider ut påfyllnadsentryerna i pris och i tid. Det här är exemplet från den officiella referensen.
Exempel 2, Flytt till breakeven mätt från entry (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
ENDIFFormen utan argument refererar till den senaste exekveringen, här long-entryt, så jämförelsen mäter öppen vinst i punkter från fyllningspriset.
Exempel 3, Procentbaserad nödexit från den senaste fyllningen (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
ENDIFAtt uttrycka exiten som en procentandel av det registrerade entrypriset gör regeln överförbar mellan instrument med olika punktvärden.
Vanliga fel och fallgropar
- Order, inte positioner.
Nräknar enskilda exekveringar, inklusive exits. Efter att en position stängtsTRADEPRICE(1)syftar på exitfyllningen, inte den gamla entryn. För genomsnittspriset på den position som är öppen just nu, använd POSITIONPRICE. - Ospärrade anrop före någon affär. Tidigt i en backtest, före den första exekveringen, finns ingen affärshistorik att läsa. Kapsla in TRADEPRICE-logik i en ONMARKET- eller LONGONMARKET-spärr så att den bara körs med en aktiv position bakom sig.
- Kumulerade entries avviker från genomsnittet. Under
CumulateOrders,close - tradepricemäter avståndet från det senaste påslaget, medan vinsten styrs av positionens genomsnitt. Att blanda de två ger stop som ser snävare eller lösare ut än avsett. - Backtest-fyllningar jämfört med live-fyllningar. ProBacktest registrerar idealiserade exekveringspriser. Live-fyllningar i ProOrder innehåller slippage, så avståndströsklar kalibrerade till tick kan bete sig annorlunda i produktion.
Relaterade instruktioner
TRADEINDEX, barindexet för en tidigare affär, samma indexering som TRADEPRICE.POSITIONPRICE, det viktade genomsnittspriset för den öppna positionen.POSITIONPERF, utvecklingen för den öppna positionen.LONGONMARKET, sant så länge en long-position är öppen.ONMARKET, sant så länge någon position är öppen.BREAKEVEN, flyttar stoppen eller målet till entrypriset.%TRAILING, trailing stop i procent.CumulateOrders, tillåter att flera entries staplas till en position.