TRADEPRICE
TRADEPRICE dans ProBacktest et ProOrder renvoie le prix d'exécution d'un trade passé. TRADEPRICE(1) est le plus récent. Syntaxe, exemples et pièges abordés.
Syntaxe
TRADEPRICETRADEPRICE(N)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | 1 | Indice de l'ordre, compté à rebours depuis l'exécution la plus récente. TRADEPRICE(1) est le dernier ordre, TRADEPRICE(2) celui qui le précède. |
Comment ça marche
Chaque ordre exécuté dans une stratégie, entrées comme sorties, est enregistré avec son prix d'exécution. TRADEPRICE lit cet historique : sans argument ou avec N = 1 il renvoie le dernier prix d'exécution, et des valeurs plus élevées de N pas plus loin en arrière.
L'usage le plus courant est de mesurer de combien le prix a évolué depuis l'entrée, par exemple close - tradeprice >= 15 * pointsize comme déclencheur pour resserrer un stop. Dans les stratégies de pyramidage sous CumulateOrders, TRADEPRICE(1) marque le dernier renforcement, ce qui permet d'espacer les nouvelles entrées d'une distance minimale par rapport à lui. TRADEINDEX est la fonction complémentaire qui renvoie l'indice de bar du même ordre.
TRADEPRICE indexe les ordres individuels, pas la position agrégée. Lorsque plusieurs entrées ont été cumulées en une seule position, chacune conserve son propre prix de trade, tandis que POSITIONPRICE renvoie le prix moyen pondéré de la position ouverte.
Exemples
Exemple 1, Pyramidage avec distance et espacement en barres (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) et TRADEINDEX(1) espacent les entrées complémentaires par le prix et par le temps. C'est l'exemple de la référence officielle.
Exemple 2, Passage au seuil de rentabilité mesuré depuis l'entrée (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 forme sans argument fait référence à la dernière exécution, ici l'entrée long, la comparaison mesure donc le profit latent en points depuis le prix d'exécution.
Exemple 3, Sortie d'urgence en pourcentage depuis la dernière exécution (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
ENDIFExprimer la sortie en pourcentage du prix d'entrée enregistré rend la règle transposable entre instruments ayant des valeurs de point différentes.
Erreurs et pièges courants
- Des ordres, pas des positions.
Ncompte les exécutions individuelles, sorties incluses. Après la clôture d'une position,TRADEPRICE(1)renvoie à l'exécution de sortie, et non à l'ancienne entrée. Pour le prix moyen de la position actuellement ouverte, utilisez POSITIONPRICE. - Appels non protégés avant tout trade. Au début d'un backtest, avant la première exécution, il n'y a pas d'historique de trades à lire. Encadrez la logique TRADEPRICE par un garde ONMARKET ou LONGONMARKET pour qu'elle ne s'exécute qu'avec une position réelle derrière elle.
- Les entrées cumulées divergent de la moyenne. Sous
CumulateOrders,close - tradepricemesure la distance depuis le dernier renforcement, alors que le gain dépend du prix moyen de la position. Mélanger les deux produit des stops qui paraissent plus serrés ou plus larges que prévu. - Exécutions en backtest contre exécutions en réel. ProBacktest enregistre des prix d'exécution idéalisés. Les exécutions ProOrder en réel incluent le slippage, les seuils de distance calibrés au tick peuvent donc se comporter différemment en production.
Instructions liées
TRADEINDEX, l'index de barre d'un trade passé, même indexation que TRADEPRICE.POSITIONPRICE, le prix moyen pondéré de la position ouverte.POSITIONPERF, la performance de la position ouverte.LONGONMARKET, vrai tant qu'une position long est ouverte.ONMARKET, vrai tant qu'une position est ouverte.BREAKEVEN, déplace le stop ou l'objectif au prix d'entrée.%TRAILING, trailing stop en pourcentage.CumulateOrders, permet à plusieurs entrées de s'accumuler en une seule position.