Rejoignez-nous
ProBacktest/probacktest · proorder

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

probuilder
PositionPerf(N)

Paramètres

NomTypePar défautDescription
Nentier0Index 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)

probuilder
// 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)

probuilder
// Close a long when the open position loses more than 2 percent
IF longonmarket AND positionperf(0) < -0.02 THEN
  SELL AT MARKET
ENDIF

La 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)

probuilder
// 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
ENDIF

Les 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) > 3 ne 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) avec ONMARKET, LONGONMARKET, ou SHORTONMARKET.
  • 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.
  • 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.