Propriétés des stratégies

Chaque stratégie Pine possède un certain nombre de propriétés qui déterminent son comportement : 

  1. Capital initial
  2. Devise de base
  3. Taille de l'ordre
  4. Pyramidage
  5. Commission
  6. Vérification du prix pour les ordres limite
  7. Slippage
  8. Marge
  9. Recalculer 

 Ils sont disponibles dans les paramètres de la stratégie, dans l'onglet Propriétés :


Chacun des paramètres spécifiés dans les propriétés de la stratégie peut être modifié en éditant les arguments de l'appel de fonction strategy() dans le script Pine correspondant :

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)

Examinons chaque paramètre d'entrée dans le menu Propriétés et son paramètre correspondant dans le langage Pine :

1 - Capital initial (paramètre : initial_capital) représente le montant des fonds initialement disponibles pour que la stratégie puisse trader, dans la devise définie dans la devise de base. Par défaut, cette valeur est égale à 100 000. Il se peut que vous deviez augmenter cette valeur pour que les trades puissent avoir lieu sur certains symboles.

2 - Devise de base ( paramètre: currency ) spécifie la devise utilisée pour les calculs. Les résultats apparaissant dans l'onglet Strategy Tester (profit, perte, drawdown, etc.) sont exprimés dans cette devise. Les choix disponibles sont :

Default, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Si le choix Default est sélectionné, la stratégie utilisera la devise par défaut pour ce symbole et il n'y a pas de conversion de devise.

3 - Taille de l'ordre (paramètres : default_qty_value, default_qty_type). Ceci requiert une valeur et un mode de calcul. Notez que les valeurs calculées peuvent être soumises à des contraintes dues aux quantités minimales négociables pour le symbole :

  • Contrats (argument : strategy.fixed) - la stratégie entrera avec le nombre spécifié de contrats/actions/lots.
  • Montant en devise (argument : strategy.cash) - la stratégie entrera le montant spécifié en devise de base.
  • Pourcentage des fonds propres (argument : strategy.percent_of_equity) - la taille des positions sera calculée en pourcentage des fonds propres disponibles à l'ouverture du trade. Vous pouvez spécifier une valeur supérieure à 100%.

4 - Pyramidage (paramètre : pyramiding) spécifie le nombre maximum d'entrées successives autorisées dans la même direction. Lorsque le pyramidage est désactivé, la stratégie ne peut ouvrir qu'une seule position longue ou courte, même si les conditions d'entrée sont remplies. Le pyramidage n'affecte que les entrées effectuées à l'aide de la fonction strategy.entry(). Il n'a aucun effet sur les ordres créés à l'aide de strategy.order().

5 - Commission (paramètres : commission_type, commission_value). Il s'agit du montant payé en frais de trading pour chaque trad. Une valeur et un mode de calcul doivent être fournis. Notez que la commission est appliquée à la fois sur les entrées et les sorties, et que lorsqu'un pourcentage est utilisé, la commission calculée varie en fonction de la valeur de la transaction :

  • Pourcentage de la valeur de la transaction (argument : strategy.commission.percent) - impose une commission sur chaque ordre égale au pourcentage spécifié.
  • Devise par contrat (argument : strategy.commission.cash_per_contract) - impose une commission sur chaque contrat.
  • Devise par ordre (argument : strategy.commission.cash_per_order) - impose une commission sur chaque ordre.

6 - Vérification du prix pour les ordres limite

(paramètre : backtest_fill_limits_assumption) rend plus strictes les conditions d'entrée en position à l'aide d'ordres à cours limité. Par défaut, cette valeur est de 0, c'est-à-dire que les ordres limités sont exécutés sur les données historiques dès que le prix indiqué dans l'ordre est atteint. Si le paramètre n'est pas égal à zéro, alors les ordres limites ne peuvent entrer en position dans la barre que si le prix du marché a dépassé le niveau de l'ordre limite du nombre de ticks spécifié.

7 - Slippage (paramètre : slippage) spécifie la valeur en ticks à ajouter au prix d'exécution des ordres au marché ou stop. Il peut être utilisé pour tenir compte du spread.

8 - Marge pour les positions longues et courtes (paramètres : margin_long, margin_short) la marge requise pour maintenir la position. S'il n'y a pas assez de fonds, un appel de marge se produit, qui ferme de force une partie ou la totalité des positions avec un ordre au marché jusqu'à ce qu'il y ait assez de fonds pour maintenir les positions existantes.

9 - Les options Recalculer indiquent la fréquence à laquelle la stratégie doit être recalculée. Par défaut, la stratégie est recalculée à la clôture de chaque barre, mais en utilisant les options ci-dessous, elle peut également être recalculée :

  • Après le remplissage de l'ordre (paramètre : calc_on_order_fills) - permet à la stratégie d'effectuer un calcul supplémentaire intra-bar immédiatement après le remplissage d'un ordre. Ce calcul supplémentaire est effectué sur les barres historiques et en temps réel.
  • Sur chaque tick (paramètre : calc_on_every_tick). Par défaut, les stratégies ne calculent qu'à la clôture des barres en temps réel. Ce paramètre permet à la stratégie de calculer à chaque mise à jour des barres en temps réel, comme le ferait une étude. Notez que les données tick sont perdues lorsque le graphique est rafraîchi, donc les stratégies utilisant cette option se repeindront. Ce paramètre n'affecte pas le comportement des stratégies sur les barres historiques. Notez également que les stratégies utilisant cette fonction n'afficheront pas de résultats réalistes sur les barres historiques, car elles ne contiennent pas de données tick.