TRADEPRICE
TRADEPRICE en ProBacktest y ProOrder devuelve el precio de ejecución de una operación pasada. TRADEPRICE(1) es la más reciente. Sintaxis, ejemplos y trampas incluidos.
Sintaxis
TRADEPRICETRADEPRICE(N)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
N | entero | 1 | Índice de la orden, contado hacia atrás desde la ejecución más reciente. TRADEPRICE(1) es la última orden, TRADEPRICE(2) el anterior a él. |
Cómo funciona
Toda orden ejecutada en una estrategia, tanto entradas como salidas, se registra con su precio de ejecución. TRADEPRICE lee ese histórico: sin argumento o con N = 1 devuelve el precio de ejecución más reciente, y valores mayores de N paso más atrás.
El uso más habitual es medir cuánto se ha movido el precio desde la entrada, por ejemplo close - tradeprice >= 15 * pointsize como disparador para ajustar un stop. En estrategias de pirámide bajo CumulateOrders, TRADEPRICE(1) marca la última incorporación, de modo que las nuevas entradas pueden espaciarse una distancia mínima respecto a ella. TRADEINDEX es la función complementaria que devuelve el índice de bar de la misma orden.
TRADEPRICE indexa órdenes individuales, no la posición agregada. Cuando varias entradas se han acumulado en una sola posición, cada una conserva su propio precio de operación, mientras que POSITIONPRICE devuelve el precio medio ponderado de la posición abierta.
Ejemplos
Ejemplo 1, Pirámide con distancia y separación en barras (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) y TRADEINDEX(1) espacian las entradas adicionales por precio y por tiempo. Este es el ejemplo de la referencia oficial.
Ejemplo 2, Paso a punto de equilibrio medido desde la entrada (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
ENDIFLa forma sin argumentos se refiere a la última ejecución, aquí la entrada long, por lo que la comparación mide el beneficio abierto en puntos desde el precio de ejecución.
Ejemplo 3, Salida de emergencia porcentual desde la última ejecución (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
ENDIFExpresar la salida como un porcentaje del precio de entrada registrado mantiene la regla portable entre instrumentos con distintos valores de punto.
Errores y trampas habituales
- Órdenes, no posiciones.
Ncuenta las ejecuciones individuales, incluidas las salidas. Después de cerrarse una posición,TRADEPRICE(1)se refiere a la ejecución de salida, no a la entrada antigua. Para el precio medio de la posición abierta actual, usa POSITIONPRICE. - Llamadas sin protección antes de cualquier operación. Al principio de un backtest, antes de la primera ejecución, no hay historial de operaciones que leer. Envuelve la lógica de TRADEPRICE en una protección ONMARKET o LONGONMARKET para que solo se ejecute con una posición abierta detrás.
- Las entradas acumuladas se desvían de la media. Bajo
CumulateOrders,close - tradepricemide la distancia desde la última incorporación, mientras que el beneficio lo determina la media de la posición. Mezclar ambos produce stops que parecen más ajustados o más amplios de lo previsto. - Ejecuciones en backtest frente a ejecuciones en real. ProBacktest registra precios de ejecución idealizados. Las ejecuciones reales de ProOrder incluyen slippage, por lo que los umbrales de distancia calibrados al tick pueden comportarse de forma diferente en producción.
Instrucciones relacionadas
TRADEINDEX, el índice de barra de una operación pasada, con la misma indexación que TRADEPRICE.POSITIONPRICE, el precio medio ponderado de la posición abierta.POSITIONPERF, el rendimiento de la posición abierta.LONGONMARKET, verdadero mientras hay una posición long abierta.ONMARKET, verdadero mientras hay alguna posición abierta.BREAKEVEN, mueve el stop o el objetivo al precio de entrada.%TRAILING, trailing stop en porcentaje.CumulateOrders, permite que varias entradas se acumulen en una sola posición.