obo trend bars

Les bases du code de programmation de backtest sur Prorealtime

La manière la plus simple de tester l’efficacité d’un indicateur, d’une stratégie est de l’appliquer sur l’historique d’une valeur.

On peut toujours estimer à vue d’oeil que tel ou tel indicateur ou stratégie fonctionne. Mais l’oeil humain étant ce qu’il est, on voit toujours ce qu’on a envie de voir. Aussi, il est utile de faire de la programmation de backtest pour valider ou non nos pensées.

Pour ceci, on utilise du code de programmation. Avec Prorealtime, la programmation de backtest est relativement aisée. Nous allons voir ici quelques bases.

Un programme de backtest sait faire 2 choses: entrer sur une valeur et en sortir.

Nous allons donc utiliser des conditions pour entrer ou sortir sur une valeur:

if condition1 then
buy 100 %capital at market realtime
endif

Ce qui signifie “si la condition1 est remplie, alors achete 100% du capital maintenant”.

De même, pour sortir d’un titre, nous allons avoir besoin d’utiliser une autre condition:

if condition2 then
sell at market realtime
endif

Ce qui signifie “si la condition2 est remplie, alors vend tous tes titres maintenant”.

Reste à défnir les conditions:

condition1=average[50](close)>average[50](close)[5]
condition2=average[50](close)<average[50](close)[5]

Avec ceci, le programme entrera donc sur la valeur lorsque la moyenne mobile à 50 périodes (basée sur la cloture) sera supérieur à celle d’il y a 5 barres (donc une courbe haussière), et en sortira lorsque celle-ci deviendra haussière. Si nous comparons la moyenne mobile 50 avec celle seulement de la barre précédente, nous pouvons avoir des faux signaux, donc nous préférons la comparer à celle d’il y a 5 barres.

Voici donc notre programme:
code-programmation-prorealtime

Ensuite nous paramétrons la gestion du capital de cette manière, avec nos frais, capital disponible, réinvestissement des gains (bouton gestion du capital), et la programme nous affiche le résultat, flèches vertes d’entrée et croix rouges de sortie sur le graph, un autre graph avec les positions, et un dernier avec l’évolution du capital (gains et pertes):

backtest-prorealtime

Le programme nous permet également de consulter des statistiques sur l’application de ce backtest:

backtest

Vous pouvez ainsi remplacer les conditions d’entrée et de sortie à loisir pour effectuer différents tests.

Très simple à coder pour un résultat intéressant. Pourquoi est-ce si simple me direz-vous?

En réalité, est-ce que notre backtest peut s’appliquer à tous les comportements de la valeur sur un laps de temps beaucoup plus long? Est-ce que notre backtest fonctionne en marché baissier? Est-ce qu’il fonctionne en cas de mouvements cahotiques des cours comme actuellement?

C’est ce que nous nous appliquerons à envisager et à solutionner prochainement…

Add to Google Add to netvibes Add to My Yahoo! http://www.wikio.fr

Si vous avez apprécié cet article, s'il vous plait, prenez le temps de laisser un commentaire ou de souscrire au flux afin de recevoir les futurs articles directement dans votre lecteur de flux.

Commentaires

interessant! je te lance un defi:

essaye de representer en backtest la danse des abeilles “les coordonnées polaires”

Promis, je vais essayer, mais je garantie rien :-D

Bonjour,

Déja ,merci pour votre blog très didactique….

Etant utilisateur de PRT, je ne trouve pas trace de votre indicateur maison “Keep on trading”

Peut etre ne l’avez vous pas encore mis en ligne ??

Allez-vous developper des stratégies avec cet indicateur ??

Merci
a+

Je l’ai publié sur PRT, mais il faut un délai d’approbation de leur coté. Donc, je suis dans l’attente de leur validation.
SInon, coté stratégies, oui, je l’utilise maintenant systématiquement comme trigger d’entrée, quelque soir la stratégie utilisée. Par exemple si je dois élaborer une stratégie avec une moyenne mobile, j’utilise Keep on trading en complément pour préciser la zone d’entrée sur le titre.

Merci pour votre réactivité.

Prevenez-nous dès que cet indicateur sera “validé”..

a+ sur votre blog

Bonjour,

Je viens solliciter votre aide concernant la programmation du proscreen sur prorealtime. Je veux être alerté sur proscreen quand le zigzag 9.5% s’inverse sur les actions du cac 40. Ci dessous ma tentative de programmation qui semble ne pas fonctionner :

i = 5
p = 9

if i=1 then
z=ZigZag[p](close)
else
z=ZigZagPoint[p](close)
endif
If z[2]>z[1] and z[1]then
x=1
else
if z[2]1] and z[1]>z then
x=-1
else
x=0
endif
endif

screener[x](x as “ZigZag binaire” )

Merci de bien vouloir m’éclairer sur mes erreurs

Cordialement.

bonsoir
merci pour vos articles. etant donne que prorealtime nes pas une platforme de trading-esc ilya possible de convertir un system cree sur prorealtime pour lutilisee sur les platformes de traqding de le broker aveclequel on travail??

merci par avance mille fois

Laisser un commentaire