Testeur de stratégie
Ce manuel explique comment tester une stratégie a posteriori à l'aide du Testeur de Stratégie de JForex4, en couvrant la configuration, les méthodes de test, la logique d'exécution des ordres et la manière d'interpréter les résultats.
Ouvrir le Testeur de Stratégie
- Allez dans View dans la barre de menu supérieure et sélectionnez Strategy Tester.
- Le testeur s'ouvre sous forme de nouvel onglet aux côtés de Orders, Positions et Messages.
- Sélectionnez votre stratégie dans le menu déroulant. Si elle n'a pas encore été ajoutée à l'espace de travail, cliquez sur Open pour l'ajouter d'abord.
- (Optionnel) Cliquez sur Edit pour ouvrir le code source de la stratégie dans l'éditeur de code — disponible uniquement si le fichier source
.javaest présent.
Configurer le test
Paramètres du compte
Cliquez sur Account pour définir le compte de trading simulé :
- Dépôt initial et devise du compte
- Effet de levier
- Niveau de coupure de marge (en % de l'effet de levier utilisé)
- Stop loss sur capital propre (MC Equity) — arrête automatiquement le test si le capital propre passe sous ce niveau
Instruments
Cliquez sur Instruments pour sélectionner les instruments pour lesquels les données historiques doivent être téléchargées. Sélectionnez tous les instruments utilisés par la stratégie, que ce soit pour le trading ou pour les calculs.
Remarque : ce n'est pas ici que vous choisissez l'instrument réellement négocié par la stratégie — celui-ci est défini séparément, soit codé en dur dans la stratégie, soit choisi plus tard dans la fenêtre Define Parameters.
Période d'échantillonnage et unité de temps
Choisissez la plage de dates historiques (Sample Period) ainsi que l'unité de temps (Time Frame) :
- Ticks — utilise des données historiques réelles tick par tick (la plus précise, la plus lente).
- Bougies (1 minute / 1 heure / 1 jour) — plus rapide, utilise une interpolation pour générer des ticks à partir des données de bougies OHLC. Permet également de choisir Bid ou Ask comme base.
Mode visuel
Activez le Mode visuel (Visual Mode) pour observer la simulation se dérouler en direct sur un graphique pendant son exécution. Lorsqu'il est activé, le bouton Start déverrouille également des contrôles de lecture permettant de mettre le test en pause ou de ralentir sa vitesse.
Optimisation
Si votre stratégie possède des paramètres configurables, activez l'Optimisation pour tester plusieurs combinaisons de paramètres en une seule exécution. Pour chaque paramètre (autre que l'instrument et la période), vous pouvez définir une valeur minimale, un pas d'incrémentation et une valeur maximale — la stratégie est alors testée une fois pour chaque combinaison de pas.
Les résultats de chaque combinaison apparaissent dans la partie inférieure de la fenêtre du testeur. Faites un clic droit sur une ligne pour l'annuler, copier ses paramètres, consulter son rapport ou réutiliser ses paramètres d'entrée.
Facteur de profit (Profit Factor) = Profit brut ÷ Perte brute (les deux exprimées en valeurs positives). Par exemple, avec un profit brut de 1000 et une perte brute de 250 → Facteur de profit = 4,0. Il s'agit toujours d'une valeur positive, et plus elle est élevée, plus le ratio entre trades gagnants et perdants est généralement favorable.
Filtres de ticks (unité de temps Ticks uniquement)
Lorsque Ticks est sélectionné comme unité de temps, choisissez comment les ticks sont filtrés :
| Filtre | Comportement |
|---|---|
| Process all ticks | Le plus précis, mais le plus lent — rejoue chaque tick jamais enregistré. |
| Process all ticks with a different non-recurrent price | Ignore les ticks qui répètent le même prix. |
| Process ticks on a market direction | Ignore les ticks sauf s'ils représentent un véritable point de retournement dans la direction du prix. |
| Process ticks on a predefined price range change | Ignore les ticks jusqu'à ce que le prix évolue d'un intervalle défini. |
| Process ticks with the specified time interval | Ignore les ticks en fonction d'un intervalle de temps défini. |
Méthodes d'interpolation (unités de temps en bougies uniquement)
Disponibles lorsque l'unité de temps est une période en bougies (1 minute, 1 heure, 1 jour). Plutôt que de télécharger de véritables données tick par tick, le testeur génère des ticks synthétiques à partir des données de bougies OHLC — ce qui accélère considérablement le test.
| Méthode | Description |
|---|---|
| Cubic Spline | La méthode basée sur les bougies la plus précise. Construit les ticks en utilisant les prix OHLC comme points de base via une interpolation par spline cubique. Peut occasionnellement générer plus de ticks qu'un flux réel n'en produirait pour des périodes très courtes (par exemple 10 secondes). |
| 4 ticks at OHLC | La méthode d'interpolation la plus fiable parmi celles disponibles. Interpole chaque bougie en exactement 4 ticks de prix — Open, High, Low et Close. L'ordre des ticks High et Low dépend de leur proximité avec le prix d'ouverture : celui qui est le plus proche de l'Open est traité comme second tick, avant l'autre. |
| Tick on Open | Génère un seul tick en utilisant le prix d'ouverture de la bougie. |
| Tick on Close | Génère un seul tick en utilisant le prix de clôture de la bougie. |
Exemple : si votre stratégie négocie sur des bougies de 1 minute et n'a pas besoin d'une granularité plus fine, sélectionnez 1 Min comme unité de temps et 4 ticks at OHLC comme méthode d'interpolation — la stratégie recevra alors exactement 4 ticks par minute (ouverture, puis high/low selon leur proximité, puis clôture).
Paramètres personnalisés
- Save interpolated price data — conserve ou supprime les données de ticks générées par interpolation.
- Mode visuel : afficher/masquer le capital propre (Equity), le solde (Balance) et le P/L ; choisir un Template de graphique enregistré ; définir la Period affichée par défaut pendant le Mode visuel.
- Messages : activer Save Messages to vers un fichier ; activer Save Reports to vers un fichier ; activer Show Reports pour ouvrir automatiquement le rapport à la fin du test.
Logique de traitement des ordres
Comprendre précisément la manière dont le testeur exécute les ordres est essentiel pour avoir confiance dans les résultats de votre backtest.
Règle générale : les ordres sont exécutés au prix propre de l'ordre — sauf en cas d'écart de marché (gap) (par exemple, lorsque le marché rouvre avec un gap après une interruption). Dans les situations de gap :
- Les ordres LIMIT sont exécutés à un prix meilleur que le prix de l'ordre.
- Les ordres STOP sans paramètre MAX.SLIPPAGE sont exécutés au premier prix disponible après le gap.
- Les ordres STOP avec un paramètre MAX.SLIPPAGE, si le prix d'exécution se situerait en dehors de cette limite de glissement, sont automatiquement resoumis en tant qu'ordres LIMIT.
Logique d'exécution détaillée :
- Les ordres déclenchés du côté BID sont comparés aux prix de bougies BID interpolés ; les ordres déclenchés du côté ASK sont comparés aux prix de bougies ASK interpolés.
- Si un ordre (quel que soit son type) est déclenché par un tick de prix CLOSE, HIGH ou LOW, il est exécuté au prix propre de l'ordre, ajusté selon le dernier écart connu (spread) si nécessaire (cet ajustement s'applique lorsque le déclenchement provient du côté opposé).
- Si un ordre est déclenché par un tick de prix OPEN, il est exécuté à ce tick de prix OPEN du côté correspondant — sauf pour un ordre STOP avec MAX.SLIPPAGE défini : si le tick OPEN se situe en dehors de la limite de glissement du STOP, l'ordre est converti en ordre LIMIT.
Astuce : étant donné que « 4 ticks at OHLC » inclut toujours un tick Open par bougie, cette logique de déclenchement par OPEN (et son exception STOP/MAX.SLIPPAGE) s'applique directement chaque fois que vous testez avec cette méthode d'interpolation.
Lancer le test
- Cliquez sur le bouton Start.
- La fenêtre Define Parameters s'ouvre — définissez ici les valeurs configurables de la stratégie (instrument, montant, glissement, stop loss/take profit, etc.). Les champs exacts affichés dépendent du code de votre stratégie.
- Cliquez sur Run pour démarrer la simulation.
- Si le Mode visuel est activé, utilisez les contrôles de lecture pour mettre le test en pause ou en ralentir le déroulement.
- Une fois terminé (les tests basés sur les ticks portant sur de grands volumes de données peuvent prendre du temps), le rapport de test s'ouvre automatiquement dans votre navigateur (si Show Reports est activé).
Consulter les résultats
Le rapport comprend les résultats trade par trade, les courbes de capital propre/solde, ainsi que des statistiques récapitulatives telles que le Facteur de profit décrit ci-dessus. Si vous avez effectué un balayage d'Optimisation, comparez les rapports de chaque combinaison de paramètres depuis la liste des résultats au bas de la fenêtre du testeur avant de choisir une configuration à retenir.
Bonnes pratiques
- Commencez par Ticks / « Process all ticks » pour votre validation finale — c'est la simulation la plus proche des conditions réelles de marché, même si c'est la plus lente.
- Utilisez l'interpolation par bougies pour des itérations rapides. Pendant le développement ou l'ajustement d'une stratégie, « 4 ticks at OHLC » offre un retour rapide et fiable sans avoir à télécharger l'historique complet des ticks.
- Adaptez le choix de votre méthode d'interpolation/filtre de ticks à la logique de votre stratégie. Une stratégie qui réagit aux prix OPEN se comporte différemment avec « 4 ticks at OHLC » qu'avec « Tick on Close » — assurez-vous que votre méthode de test correspond à ce qui déclenche la logique réelle de votre stratégie.
- Surveillez les interactions liées à MAX.SLIPPAGE. Si votre stratégie repose sur des ordres STOP, testez à la fois avec et sans MAX.SLIPPAGE pour comprendre comment les scénarios de gap et de tick OPEN peuvent convertir vos ordres en exécutions LIMIT.
- Rappel : les performances passées affichées dans le testeur ne sont pas un indicateur fiable des performances futures — validez toujours davantage en environnement de démonstration avant de passer en réel.