J'ai bien ajouté la stratégie à mon graphique, mais cela ne génère aucun ordre
Si les onglets "Liste des transactions" et "Vue d'ensemble" du testeur de stratégie affichent "Aucune donnée" après que vous ayez ajouté une stratégie au graphique, il est probable qu'elle ne simule aucun ordre, ce qui entraîne l'absence de données pour remplir les onglets. Si votre script ne génère pas d'ordres, cela peut être dû à l'une des raisons suivantes:
Le script n'est pas classé comme une stratégie ou n'utilise pas de commandes qui créent des ordres
Le backtesting avec le Strategy Tester ne fonctionne qu'avec les stratégies Pine Script™, qui utilisent la fonction `strategy()`pour leur déclaration. Les scripts déclarés avec indicator()` ou `library()` ne peuvent pas interagir avec le module Strategy Tester.Les scripts déclarés comme stratégies doivent utiliser les commandes de placement d'ordre `strategy.*` (par exemple, `strategy.order()` ou `strategy.entry()`) pour simuler les ordres et afficher les données dans le testeur de stratégie, indépendamment de tout autre signal d'achat ou de vente que l'auteur du script peut avoir inclus dans le code.La stratégie ne dispose pas d'un capital suffisant pour ouvrir une positionPour qu'une stratégie entre en position, elle doit disposer de suffisamment d'argent pour acheter le nombre spécifié de contrats/lots/actions/unités. Elle n'entrera pas en position si elle ne dispose pas d'un capital suffisant pour couvrir le coût. Par exemple, si le capital initial d'une stratégie est de 1 000 USD et que la taille de l'ordre est d'un contrat, elle ne peut pas prendre position à moins que le prix de l'actif ne tombe en dessous de 1 000 USD, car elle n'a pas les moyens d'effectuer l'ensemble de la transaction. Les stratégies essaieront toujours d'acheter le nombre spécifié de contrats/actions/lots/unités et rien de moins.Remarque importante sur le backtesting des futures : Les symboles des Futures ont généralement ce qu'on appelle une Unité de Contrat (représentée comme la Valeur du Point sur TradingView et accessible dans Pine via la variable `syminfo.pointvalue`). Comme pour les autres symboles, le prix brut sur le graphique représente le prix d'une unité de la marchandise négociée. Cependant, les contrats à terme ont une quantité déterminée que chacun représente, de sorte qu'un achat à l'unité n'est généralement pas possible. Pour calculer le capital requis pour un contrat, il faut multiplier le prix du graphique par la valeur du point.Pour démontrer les effets de la valeur du point sur les stratégies qui opèrent sur les symboles de contrats à terme, examinons le symbole CME_MINI:ES1 ! qui représente le contrat à terme ES avec la meilleure liquidité et qui a une valeur du point de 50 :


//@version=5strategy('My Strategy', overlay = true)longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))if longCondition strategy.entry('Long', strategy.long)plotshape(longCondition, color=color.new(color.blue, 0))shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))if shortCondition strategy.entry('Short', strategy.short)plotshape(shortCondition, color=color.new(color.red, 0))
JavaPour plus d'informations sur ce sujet, consultez la page du manuel de l'utilisateur consacrée au débogage. Les propriétés de la stratégie sont incorrectesChaque stratégie possède plusieurs paramètres qui régissent ses règles d'ouverture des ordres. Les auteurs peuvent définir ces paramètres à partir du code source d'une stratégie, et les utilisateurs peuvent les remplacer par les entrées de l'onglet "Propriétés" des paramètres de la stratégie.REMARQUE : Il existe plusieurs endroits dans le code source d'une stratégie où les utilisateurs peuvent définir le nombre de contrats/actions/lots/unités pour ses ordres :- Les paramètres de la fonction `strategy()`permettent aux utilisateurs de définir la quantité et le type de transaction par défaut, ce qui définit les valeurs par défaut dans l'onglet "Propriétés". Les utilisateurs peuvent modifier ces valeurs en ajustant les entrées "Taille de l'ordre".
- Les commandes de placement d'ordres qui produisent des ordres d'entrée, telles que `strategy.entry()`, peuvent définir la quantité de transaction sur une base d'ordre par ordre. Dans ce cas, les changements apportés à l'entrée dans l'onglet "Propriétés" n'affecteront pas la taille de l'ordre de la stratégie.
- Si le "Type d'ordre" d'une stratégie est défini sur "Contrats" (équivalent à `strategy.fixed` comme type_de_quantité_par_défaut dans le code source), la taille de l'ordre doit être supérieure à 1 pour la plupart des symboles. Certaines crypto-monnaies autorisent les tailles fractionnaires. Par exemple, une taille d'ordre de 0,1 est valable pour BTCUSD mais pas pour AAPL ou EURUSD.
- La taille de l'ordre doit être positive ; les nombres négatifs provoqueront des erreurs d'exécution, et une valeur de 0 n'aura aucun effet.
- La taille totale de la position (nombre de contrats) ne peut pas dépasser 1e12. Les stratégies ne simuleront pas de nouveaux ordres si la taille de la position dépasse ce nombre.