POSITIONPERF
POSITIONPERF renvoie la performance en pourcentage d'une position ouverte ou fermée dans ProBacktest et ProOrder. PositionPerf(0) lit le trade ouvert en cours.
Syntaxe
PositionPerf(N)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
N | entier | 0 | Index de position. 0 lit la position actuellement ouverte. Une valeur supérieure à 0 lit la N-ième position clôturée la plus récente, de sorte que 1 est le dernier trade clôturé. |
Comment ça marche
POSITIONPERF mesure la performance d'une seule position, exprimée comme le rapport entre son gain ou sa perte et son coût. Une valeur de 0.05 correspond à un gain de 5 pour cent et -0.02 à une perte de 2 pour cent, donc multipliez par 100 lorsqu'une valeur en pourcentage est nécessaire pour l'affichage.
L'argument d'index choisit la position à évaluer. Avec N = 0, ou avec l'argument omis, la fonction indique la performance en cours de la position actuellement ouverte. Avec N > 0 il parcourt les trades clôturés en remontant, PositionPerf(1) étant la sortie la plus récente, PositionPerf(2) celui qui le précède, et ainsi de suite. Cela en fait la brique naturelle d'une logique trade par trade, comme les séries de pertes ou les filtres de performance.
Le calcul est brut. Les frais de courtage, les spreads modélisés comme des coûts et le financement ne sont pas déduits, donc les résultats nets en réel sont inférieurs aux valeurs brutes. Pour le résultat cumulé en espèces de l'ensemble de la stratégie, utilisez plutôt STRATEGYPROFIT ; POSITIONPERF décrit toujours une seule position à la fois.
Exemples
Exemple 1, lecture du dernier trade clôturé (ProBacktest)
// Gain-to-cost ratio of the most recently closed position
positionPerformance = PositionPerf(1)
GRAPH positionPerformance * 100 AS "Last trade performance in percent"Récupère la performance du dernier trade terminé et la trace en pourcentage. Il s'agit de l'exemple de référence de la documentation source avec une ligne d'affichage ajoutée.
Exemple 2, sortie d'urgence sur drawdown de trade ouvert (ProOrder)
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
SELL AT MARKET
ENDIFLa position ouverte est surveillée barre par barre et abandonnée dès que sa performance courante passe sous -0.02, une sortie de sécurité en pourcentage qui fonctionne indépendamment de tout stop en points.
Exemple 3, réduction de la taille après deux perdants consécutifs (ProOrder)
// Halve exposure after two losing trades in a row
baseSize = 4
IF positionperf(1) < 0 AND positionperf(2) < 0 THEN
tradeSize = max(1, baseSize / 2)
ELSE
tradeSize = baseSize
ENDIF
IF NOT onmarket AND close CROSSES OVER average[50](close) THEN
BUY tradeSize CONTRACTS AT MARKET
ENDIFLes deux derniers trades fermés sont examinés avant chaque entrée. Après deux pertes consécutives, la stratégie trade à demi-taille jusqu'à ce qu'un trade se clôture positif.
Erreurs et pièges courants
- Ratio, pas pourcentage. La fonction renvoie un ratio, donc un gain de 3 pour cent se lit 0.03. Une comparaison avec des nombres entiers tels que
positionperf(0) > 3ne se déclenche presque jamais. Multipliez par 100 uniquement pour l'affichage. - Brut de coûts. Les frais et commissions sont exclus, un trade qui affiche un léger positif peut donc être une perte nette en réel. Les seuils proches de zéro sont les plus touchés.
- Aucune position ouverte. Sans rien sur le marché, la lecture de l'index 0 n'a aucun sens pour la logique de décision. Protégez les lectures de
positionperf(0)avecONMARKET,LONGONMARKET, ouSHORTONMARKET. - Portée par position. POSITIONPERF n'agrège jamais. Additionner les résultats au niveau du compte en bouclant sur les index est fragile ; STRATEGYPROFIT fournit déjà le montant cumulé en espèces.
Instructions liées
STRATEGYPROFIT, gain réalisé cumulé de la stratégie en valeur monétaire.POSITIONPRICE, le prix d'entrée moyen de la position ouverte.TRADEPRICE, le prix d'entrée des ordres individuels.TRADEINDEX, l'indice de bar auquel un ordre a été exécuté.COUNTOFPOSITION, la taille signée de la position ouverte.ONMARKET, vrai tant qu'une position est ouverte.LONGONMARKET, vrai tant qu'une position long est ouverte.SELL, clôture une position long.