Lancement d’une stratégie en automatique : FAQ

Bonjour à tous,

J’ai régulièrement des demandes d’aide, concernant le lancement de stratégies en automatique.

Personnellement, je n’ai aucun problème avec l’exécution de mes stratégies. Mais certains de mes interlocuteurs m’ont fait part de quelques problèmes assez récurrents.

Je vais donc vous donner quelques pistes.

.

Attention, quelques remarques avant de commencer : 

  • je ne parle ici que du logiciel ProRealTime, le seul que j’utilise pour les stratégies algorithmiques en automatique
  • je ne suis pas responsable des éventuels dysfonctionnements de ProRealTime, ou des erreurs de backtests, etc
  • je ne cherche pas à faire de publicité, ni ne touche de commission sur le nombre d’utilisateurs de ce logiciel
  • je constate que je n’ai pas ces problèmes, pour beaucoup d’entre eux. Je pense que c’est parce que j’ai ouvert mon compte ProRealTime CFD il y a longtemps, tandis que les nouveaux utilisateurs ouvrent des « comptes à risque limité« .

.

Taille des positons dans le code

Vous devez définir un nombre  » n  » de positions, qui soit un nombre ENTIER.

Si vous n’utilisez pas une commande pour arrondir ce nombre  » n  » à l’unité (par exemple  » n = round(n) « , et que ce nombre  » n  » n’est pas entier, alors l’algorithme risque de refuser de se lancer.

.

De plus, si vous utilisez une taille de positions trop importante par rapport à votre capital, que la marge requise est dépassée, l’algorithme ne lancera pas de position.

Il s’agit d’une erreur classique : beaucoup d’utilisateurs définissent une taille de contrats qui induit un drawdown trop important, et qui dépasse la marge requise.
En ce cas, l’algorithme ne lance pas les ordres concernés.

.

Taille maximale des positions 

Avant de lancer une stratégie en automatique, il vous est demandé, par sécurité, de définir une taille maximale de positions.
Mettez donc un nombre suffisamment important pour que cette taille ne soit pas atteinte par l’algorithme.
En effet, si par exemple votre algorithme prévoir de lancer  » n = 10 shares  » et que vous définissez une taille maximale à 5 contrats, l’algorithme refusera de se lancer. Mettez en ce cas carrément 15 ou 20.

.

Compte à risque limité

Il semble que ce type de compte puisse bloquer certaines positions.
Ne disposant que d’un compte standard, je n’en connais pas l’impact.

cf article : « Day Dax M15, compte à risque limité »

Pourtant, plusieurs m’ont confirmé que la stratégie fonctionne bien avec un compte à risque limité.

Je n’ai pas d’autre suggestion que de passer à un compte standard.

.

Spread inadapté

Si le backtest est lancé avec un spread inadapté, les résultats peuvent être incohérents (non déclenchement de positions / positions déclenchées à tort)

.

Gains minimes sur le backtest

J’ai constaté cela sur le compte de deux utilisateurs : des gains ridicules de quelques euros, au lieu de plusieurs centaines d’euros. Pourtant, j’ai vérifié et revérifié le backtest : tout était en ordre.

Apparemment la réponse m’est venue d’un des utilisateurs : son compte ProRealTime n’avait pas encore été validé. Le problème a été résolu une fois que son compte a été validé.

.

Drawdown et RunUp affichés à zéro

Il s’agit d’un bug fréquent, il suffit de relancer le backtest à des dates différentes, ou mieux : fermer et rouvrir la fenêtre de rapport détaillé.

.

ProOrder exécuté en automatique qui s’est arrêté

Dans la liste des ProOrders, vérifiez que la date d’expiration n’est pas dépassée (il faut penser à l’étendre régulièrement) / vérifiez les éventuels messages d’erreur.

.

Erreurs de code // Code mal recopié

J’ai vu certains utiliser un code de backtest, et lancer le ProOrder avec une autre version « à peu près » identique.
C’est le « à peu près » qui fait qu’on a une différence d’ordres.

.

Un code est souvent mal recopié, suite à des erreurs de copier-coller d’après un fichier PDF par exemple :

cf article : « Erreurs de code : copier-coller »

Si vous disposez du fichier ITF, mieux vaut l’importer dans votre plateforme, plutôt que de recopier le code avec des erreurs.

.

Données historiques insuffisantes

Si vous réalisez un backtest sur un nombre d’unités insuffisant (par exemple 200 unités, alors qu’il existe en début de code l’instruction DEFPARAM PRELOADBARS = 3000, indiquant que l’algorithme a besoin de 3000 unités au moins pour calculer), alors vous n’aurez pas un résultat cohérent.

Veillez à lancer vos backtests sur l’ensemble des données historiques disponibles au tick par tick / sur une période assez étendue. Un backtest sur les 3 derniers mois ne veut pas dire grand chose, si l’on peut le lancer sur plusieurs années.

Si votre backtest affiche peu de résultats en historique alors que vous avez sélectionné un début de test à une date plus ancienne, la solution est simple : affichez plus de données historiques dans le graphique principal (mettez par exemple 200000 unités).

.

Maximum 100.000 unités d’historique (compte « Complete ») au lieu de 200.000 unités (compte « Premium »)

Sachez qu’un compte CFD Prorealtime PREMIUM permet de remonter plus loin en historique (données au tick par tick : 200.000 unités pour la version « Premium », contre 100.000 unités pour la version « Complete »).

Il vous faut donc faire la démarche de transfert de compte auprès du courtier IG, si vous le souhaitez.

.

CFD différents

Attention : si vous lancez une stratégie sur le CFD Allemagne 30 à 1€ le point, même avec 5 contrats vous  n’aurez pas tout à fait le même résultat que sur le CFD Allemagne 30 à 5€ le point (1 contrat).

En effet, ce sont 2 CFD différents et il peut exister des minimes différences de cotation.
De ce fait, on peut observer quelques positions différentes en backtest / réel.

.

Distance au stop loss

Je n’ai pas à renseigner cette distance. Je pense que c’est parce que mon compte n’est pas un « compte à risque limité« .
Si vous devez renseigner cette information, mettez donc une distance suffisamment importante pour qu’elle ne soit pas touchée. Mais évidemment, à condition que votre algorithme ait clairement établi des règles d’entrée et de sortie (pour éviter d’éventuelles pertes énormes).

.

Problème de « trading non autorisé sur ce type de compte »

Il s’agit d’un problème de configuration de votre compte pour le trading automatique. Il faut vous renseigner directement auprès du courtier.

.

Ordres non exécutés

Bien que l’algorithme fonctionne en automatique, il est parfois constaté une succession d’ordres non exécutés. Ce fut le cas notamment pour l’algorithme  » DAY M15 « . J’ai fini par comprendre ce qui va suivre.

.

Examinons la structure suivante : 

Defparam cumulateorders = false

IF... THEN
BUY at market
ENDIF

set stop %loss 1
set target %profit 2

En ce cas, vous aurez de multiples ordres rejetés.

Pourquoi ?

Parce que si vous n’êtes pas en position, les ordres de stop loss et de take profit seront quand même pris en compte par l’algorithme lancé en automatique, alors qu’il n’y a pas de position.
Vous aurez donc des messages d’erreur, tandis que l’algorithme fonctionne quand même.

.

Alors, que faut-il écrire ?

Tout simplement :

Defparam cumulateorders = false

IF... THEN
BUY at market
set stop %loss 1
set target %profit 2
ENDIF

Ou bien peut-être (je n’ai pas vérifié) :

Defparam cumulateorders = false

IF... THEN
BUY at market
ENDIF

IF onmarket THEN
set stop %loss 1
set target %profit 2
ENDIF

.

Modification de position en cours

Pour stopper / modifier une position automatiquement lancée par un algorithme en automatique, il faudra stopper l’algorithme (le ProOrder exécuté en automatique).

Si par exemple vous souhaitez passer au breakeven, il faut d’abord désactiver le Proorder correspondant, et changer manuellement le stop loss.

En ce cas, le ProOrder cesse de fonctionner en automatique et il faut évidemment le relancer.

.

Date limite de validité

Lorsque vous lancez une stratégie en automatique, celle-ci est soumise à une date de validité.

Il vous faut donc régulièrement surveiller cette date, pour l’étendre manuellement. Un simple clic suffit.
Ceci est une précaution indispensable pour éviter de se faire ruiner à bas bruit, à notre insu…

.

Nombre de « ProOrders » automatiques sur un même compte ProRealTime

Vous pouvez mettre autant de ProOrder que vous souhaitez sur un même compte ProRealTime, en automatique, tant que leur exécution simultanée ne dépasse pas la marge requise.

Le module ProOrder est parfaitement capable de gérer indépendamment chaque stratégie, sans risque de mélanger les positions, même sur les mêmes valeurs.

Vous pouvez aussi trader manuellement en même temps, et sur les mêmes valeurs, tant que vous ne touchez pas aux positions ProOrder (sinon l’algorithme concerné se stoppe). Pensez donc à utiliser la « position forcée ».

.

Fuseau horaire

On n’y pense pas toujours… mais un fuseau horaire différent va modifier / fausser le backtest et les prises de positions via ProOrder.

Il suffit de le modifier dans les paramètres : « Options plateforme > Fuseaux et plages horaires« 

.

Compte à risque limité

N’utilisant pas de compte à risque limité, je ne peux pas en connaître l’impact.

Petite précision sur l’une des stratégies : article « Day M15 : compte à risque limité »

.

Autres

Il y aura sans doute d’autres éléments à venir…

En attendant, j’espère vous avoir bien aidé.

.

Sachez que plus de 95% des problèmes ont trouvé leur solution ici…

L’article ci-dessous montre qu’un algorithme bien paramétré fonctionne normalement en automatique.

http://www.doctrading.fr/ca-marche

 

.

Share Button