|
La puissance de TradeStation et de l'EasyLanguage réside
dans le fait que le code EasyLanguage est portable, c'est à dire
qu'il est indépendant de la valeur que vous souhaitez trader.
Une fois développé, notre système de trading
peut s'appliquer aussi bien sur Microsoft que
sur IBM ou sur des contrats
Futures de type
S&P500 ou NASDAQ. Et ce, sans avoir besoin de changer une
seule ligne de code. De plus on peut tester sur tout l'historique
ou
simplement sur
une partie bornée, comme entre le 1er décembre 1993
et le 12 janvier 1999. Quand on sait que TradeStation fournit des
historiques pouvant
atteindre 100 ans, on réalise tout le potentiel d'EasyLanguage
et de TradeStation pour la création de systèmes de trading robustes.
Et une
fois votre stratégie testée,
il suffit de trois clics de souris pour laisser TradeStation passer
les ordres
à votre place
et voir les profits s'accumuler sur votre compte.
Dans cette partie, nous commentons le rapport d'optimisation
de notre stratégie (ou système de trading) Ascenseur sur
le support Treasury Bonds pour une période de 20 ans. Ce rapport
est fourni par TradeStation et nous indiquerons la meilleure combinaison
pour
nos paramètres.
Puis nous dévoilons un tableau synthétique de la performance
de notre système de trading Ascenseur pour
différents supports. Pour chacun d'entre eux nous spécifirons
l'historique de test utilisé et les valeurs optimales
pour Longueur_CT, Longueur_LT et MultRisque.
Nous rappelons que l'exemple Ascenseur qui
a été exposé tout
au long de ces pages (et de façon plus générale tous les
systèmes
présentés sur notre site) est uniquement
illustratif.
Il nous a permis d'expliciter la façon de développer
un système de trading
en EasyLanguage mais ne constitue en aucun cas un conseil de trading
de notre part.
De même les valeurs optimales et gains exposées ci-dessous sont
basés sur un historique
de cours. Les gains passés ne présagent en rien de gains futurs.
TradeStation, via son interface intuitive permet d'optimiser facilement
les paramètres EasyLanguage de vos systèmes de trading. Il suffit
de préciser à TradeStation l'intervalle de valeurs que l'on souhaite
tester et l'incrément entre chaque valeur dans cet intervalle.
Admettons que nous souhaitions tester notre système de trading Ascsenseur avec
une Moyenne Mobile Court Terme à 10 barres (valeur par défaut)
mais aussi à 6 , 8, 12 et 14 barres. En effet les signaux générés
et donc les points d'Achat / Vente à Découvert seront différents
dans chacun de ces cas. Si nous devions changer manuellement
la valeur de Longueur_CT directement dans le code EasyLanguage
cela se révelerait assez long et ennuyeux. Pour nous éviter cette
peine nous avons déclaré Longueur_CT comme un paramètre
de la stratégie. Il suffit maintenant d'optimiser ce paramètre
en "spécifiant" dans l'interface de TradeStation
:
"Tester le système de trading Ascsenseur avec
toutes les valeurs possibles du paramètre Longueur_CT entre
les bornes 6 et 14 par palier de
2"
TradeStation va alors tester notre système de Trading avec la
valeur 6 et générer un rapport de performance. Une fois
terminé, il
passe à la valeur suivante qui est 8 puisque nous avons spécifié
par palier de 2. Il teste donc notre système de trading Ascsenseur à
nouveau mais cette fois-ci avec le paramètre Longueur_CT égal
à 8. A nouveau il génère un rapport de performance.
Puis TradeStation continue ainsi de suite jusqu'à atteindre la
borne supérieure
de notre intervalle de test pour notre paramètre. Dans notre
cas, il s'arrête à la valeur 14.
Une fois toutes les valeurs testés, TradeStation génère un rapport d'optimisation.
En fait il classe la performance de votre stratégie / système
de trading pour chaque valeur du paramètre et ce de la façon
suivante
| Test No |
Longueur_CT |
Trades |
Gain Net |
% Profit |
Profit Factor |
DrawDown |
| 1 |
6 |
70 |
45250 |
48 |
1.81 |
7781 |
| 2 |
8 |
71 |
41973 |
46 |
1.72 |
8931 |
| 3 |
10 |
71 |
41973 |
46 |
1.72 |
8931 |
| 4 |
12 |
69 |
39925 |
46 |
1.70 |
8931 |
| 5 |
14 |
69 |
35143 |
44 |
1.61 |
9825 |
Tab. 1: Rapport d'optimisation simplifié pour différentes
valeurs de Longueur_CT.
Dans le Tableau ci-dessus (Tab. 1) les valeurs de Longueur_LT et MultRisque utilisés
sont celles définies par défaut dans
notre Code EasyLanguage, soit respectivement 40 et 2.
Dans un souci de clarté, nous ne montrons pas l'ensemble des
colonnes fournies par TradeStation. Le rapport d'optimisation
fourni par TradeStation est beaucoup plus complet et d'autres
données sont importantes pour valider l'intérêt de trader tel
ou tel système.
Test No donne le Numéro d'ordre du test pour TradeStation.
Pour la 1ère
valeur testée, Longueur_CT = 8, le No de Test est 1 puis ainsi
de suite. C'est une colonne qui ne nous intéresse pas.
Longueur_CT indique la valeur du paramètre pour la
ligne du tableau. Ainsi les données de la 1ère ligne correspondent
à la performance du système Ascenseur quand
le paramètre Longueur_CT est égal à 6.
Trades indique le nombre de trades qui ont été généré par le
système de trading sur la période considéré. Assez logiquement
dans notre cas, plus Longueur_CT est élevé plus nous avons de
trades. En effet il existe beaucoup plus d'occurences
d'une clôture au dessus d'une Moyenne Mobile 20 barrres qu'au
dessus d'une Moyenne Mobile 6 barrres par exemple.
Gain Net indique le gain du système de trading pour
la valeur correspondante du paramètre Longueur_CT. Ainsi
notre système de trading a rapporté $22000 sur la période considérée
quand Longueur_CT est égal à 10.
% de profit correspond aux nombres de trades profitables divisé
par le nombre total de trades. Attention, on peut avoir un %
de profit élevé mais que le système ne soit pas profitable et
vice-versa. Cette donnée est importante pour le côté psychologique
du trading. Ainsi, si vous êtes averses au risque, évitez de
trader un système de trading dont le ratio est dans les 35%
et ce même s'il est très profitable. En effet il est probable
que vous vous découragiez et arrêtiez de trader ce système avant
que les profits apparaissent. Dans le cas du système de trading Ascenseur nous
savons que ce ratio doît être supérieur à 33% si nous voulons
gagner de l'argent. En effet nous sortons du trade soit par
le stop de protection soit par un profit égal à 2 fois le montant
de notre stop. Nous pouvons donc "permettre" au système de
sortir perdant 2 fois plus souvent qu'il ne sortira gagnant. MAIS,
l'objectif est de gagner et les ratios auxquels nous arrivons,
de l'ordre de 60% nous permettent de générer de substantiels
gains.
Profit Factor est le ratio entre le Gain brut et les Pertes brutes. Ainsi
si la somme des trades gagnants génère $80000 et la somme des
trades perdants génère $40000, le Profit Factor est de 2. C'est
une donnée très importante à suivre. Un système de trading profitable
a TOUJOURS son profit Factor supérieur à 1.
DrawDown mesure le recul maximum de votre capital sur la période
étudiée. C'est votre risque maximum et ce montant permet de définir
le capital nécessaire qu'il aurait fallu pour trader ce système
sur la période considérée. Par exemple, si nous avons une suite
de trades comme détaillé ci-dessous
Trade No1 : + 500
Trade No2 : - 2000
Trade No3: +300
Trade No4 : - 800
Trade No5: +100
Trade No6 : - 1200
Trade No7: +2000
Dans ce cas, le DrawDown est de 3600 dollars. En effet si on commence
à trader ce système à partir du trade No2, la somme des pertes/profits
jusqu'au trade No5 est de -2000 + 300 - 800 + 100 - 1200 soit
-3600. C'est donc bien le recul maximum de votre capital. Si
vous ne disposiez que de 3000 dollars au départ, vous ne pouviez
plus trader ce système. Remarquez que le DrawDown
n'est pas constitué uniquement de pertes. De même le DrawDown
peut apparaître en parallèle de la plus grosse perte mais ce
n'est pas toujours le cas.
TradeStation pemet d' optimiser plusieurs paramètres en même
temps. Ci-dessous, nous indiquons le rapport d'optimisation quand
on souhaite optimise Longueur_CT et Longuer_LT en
parallèle. Nous
faisons varier Longueur_CT entre 6 et 14 par palier de 2 et Longueur_LT entre
36 et 44 par palier de 2 également. TradeStation fait donc
un test exhaustif de toutes les combinaisons possibles entre
les diff érentes valeurs du paramètre.
| Test No |
Longueur_CT |
Longueur_LT |
Gain Net |
% profit |
Profit Factor |
DrawDown |
| 1 |
6 |
36 |
50900 |
48 |
1.92 |
-7781 |
| 2 |
6 |
38 |
50987 |
49 |
1.95 |
-7781 |
| 3 |
6 |
40 |
45250 |
48 |
1.82 |
-7781 |
| 4 |
6 |
42 |
35543 |
46 |
1.6 |
-8062 |
| 5 |
6 |
44 |
36043 |
46 |
1.61 |
-7781 |
| 6 |
8 |
36 |
47450
|
46 |
1.82 |
-8525 |
| 7 |
8 |
38 |
47531
|
47 |
1.85 |
-8525 |
| 8 |
8 |
40 |
41793
|
46 |
1.72 |
-8931 |
| 9 |
8 |
42 |
32087
|
44 |
1.52 |
-10075 |
| 10 |
8 |
44 |
32087
|
44 |
1.52 |
-10075 |
| 11 |
10 |
36 |
47450
|
46 |
1.82 |
-8525 |
| 12 |
10 |
38 |
47531
|
47 |
1.85 |
-8525 |
| 13 |
10 |
40 |
41793
|
46 |
1.72 |
-8931 |
| 14 |
10 |
42 |
32087
|
44 |
1.52 |
-10075 |
| 15 |
10 |
44 |
32087
|
44 |
1.52 |
-10075 |
| 16 |
12 |
36 |
45581
|
46 |
1.84 |
-8525 |
| 17 |
12 |
38 |
45662
|
47 |
1.81 |
-8525 |
| 18 |
12 |
40 |
39925
|
46 |
1.84 |
-8931 |
| 19 |
12 |
42 |
30218
|
44 |
1.7 |
-10075 |
| 20 |
12 |
44 |
30218
|
44 |
1.5 |
-10075 |
| 21 |
14 |
36 |
40800
|
44 |
1.5 |
-9418 |
| 22 |
14 |
38 |
40881
|
45 |
1.7 |
-9418 |
| 23 |
14 |
40 |
35143
|
44 |
1.7 |
-9825 |
| 24 |
14 |
42 |
25437
|
42 |
1.6 |
-10968 |
| 25 |
14 |
44 |
25437 |
42 |
1.4 |
-10968 |
Tab. 2: Rapport d'optimisation pour différentes
valeurs de Longueur_CT et Longueur_LT.
Il n'existe pas vraiment de limites au nombre de paramètres
que l'on peut optimiser en parallèle. La limite réside
dans votre bon sens (inutile d'optimiser des Longueurs de Moyenne
Mobile et un Stop de protection par exmple)
et ... la performance de votre PC. Si vous testew 300 combinaisons
possibles sur un historique de 300 000 barres, attendez-vous
à un peu d'attente et ce même si TradeStation a un moteur
d'optimisation très performant.
Remarque: Les données du tableau 1 et 2 ont
comme support le contrat Future US Treasury Bonds (code
valeur @US.P) entre le 1er mars 1984 et le 1er mars 2004. Nous
n'avons joué que
sur la partie Longue car la partie Vente A Découvert est perdante,
et ce quelle que soit l'optimisation.
Enfin, nous avons pris en compte des commissions de $20 à l'aller et au
retour et un slippage de $10 dans chaque sens.
Retour
Trouvez ci-dessous les performances du système Ascenseur
sur différents types de support. Nous avons limité la période
d'analyse aux trois dernières années et avons fourni les valeurs
optimales pour les paramètres Longueur_CT, Longueur_LT et MultRisque.
| Support |
Historique |
Longueur CT |
Longueur LT |
Mult Risque |
Nombre Trades |
Gain Net |
% Profit |
Profit Factor |
DDown |
| Bonds |
20 ans |
6 |
30 |
2 |
74 |
55140 |
48% |
1.96 |
7800 |
| IBM |
20 ans |
19 |
32 |
2.9 |
98 |
6150 |
55% |
1.88 |
590 |
| General Electric |
19 ans |
5 |
30 |
3.1 |
76 |
5670 |
57% |
1.81 |
1400 |
| Microsoft |
10 ans |
5 |
23 |
4 |
51 |
5500 |
51% |
1.87 |
2300 |
Tab. 3: Performances Système Ascenseur sur différents
supports
Remarque: Les données du tableau 3 ne prennent
en compte que des entrées de type Achat car
la partie Vente A Découvert
est perdante, et ce quelle que soit l'optimisation. Surtout
en ce qui concerne les actions, cela s'explique par le biais
haussier du marché
sur les périodes considérées. Le
gain net est toujours exprimé en dollars US.
Pour les bonds:
Nous avons tradé un contrat Full sur toute la période.
Nous avons inclus des commissions de $20 à l'aller et
au
retour.
En plus du stop placé sur le plus bas des X chandeliers précédent l'ascenseur,
nous avons placé un stop fixe à $2000. Ainsi notre risque maximum sur chaque
trade
est d'au maximum $2000.
Pour les actions:
Nous avons
tradé un portefeuille de $5000 à l'achat uniquement. Nous
arrondissons le calcul du nombre d'actions à la dizaine la
plus proche et nous tradons au minimum 50 actions. Nous avons
inclus des commissions de $0.01 et un slippage de 0.013 par
action dans chaque sens.
Pour IBM, en plus du stop déterminé par le plus bas des
X chandeliers de l'ascenseur, nous avons ajouté un stop fixe
à $270 pour l'ensemble de la position.
Pour General Electric, en plus du stop déterminé par
le plus bas des X chandeliers de l'ascenseur, nous avons
ajouté un
stop fixe à $300 pour l'ensemble de la position.
|