Accueil | Automate | Dév. Système | Dév. Spécifique | Formation | Location | Méthode | Téléchargement | NewsLetter | Forum | Contact |

 Table des Matières

Références Techniques

Cette section passe en revue un certain nombre de détails techniques liés au processus de test de système.

Généralités

Pendant le processus de test, un système est toujours en position longue, courte ou bien neutre.

Pendant le processus de test, MetaStock suit en permanence de très nombreuses informations (plusieurs dizaines de milliers) qui sont liées aux transactions.

Gains/Pertes

Les calculs de profits et de pertes pour les positions longues et les positions courtes sont basés sur le taux de variation en pourcentage de la valeur sous-jacente durant le temps où la position a été détenue . Ainsi, il n’est nul besoin de s’en référer au nombre d’actions détenues de la valeur concernée. Quand une position longue ou une position courte est entrée, tout le capital disponible est investi (même si les fonds à disposition valent moins que le prix d’une action de la valeur concernée).

Par exemple, si le capital initial s’était élevé à 1.000$ quand une position longue avait été entrée, et qu’ensuite la valeur s’était accrue de 10% avant que cette position longue ne soit dénouée, le capital de trading se serait alors accru de 100$ (i.e., un gain de 10% sur un solde de capital de $1.000) pour atteindre 1.100$. Si ensuite une autre position longue avait été entrée et que le prix de la valeur avait gagné encore 10% avant que cette nouvelle position longue ne soit dénouée, le capital de trading se serait accru de 110$ (i.e., 10% de 1.100$) pour atteindre 1.210$. (Cet exemple ignore les commissions et les intérêts).

Commissions

L’exemple suivant utilise les mêmes chiffres que le précédent (i.e., 1.000$ de capital de trading initial suivi de deux transactions longues, chacune d’entre elles rapportant un gain de 10%). Cependant, nous faisons l’hypothèse dans cet exemple qu’une commission d’entrée de 30$ et une commission de sortie de 25$ sont prélevées. (Rappelez-vous que vous pouvez spécifier les montants des commissions dans MetaStock en utilisant soit des dollars, soit des pourcentages.)

Quand la première position longue est entrée, la commission d’entrée de 30$ est déduite du capital de trading initial de 1.000$, ce qui ramène les fonds investis à 970$. Le prix de la valeur s’accroît alors de 10%, ce qui crée 97$ de profits (i.e., un gain de 10% sur un investissement de 970$). La commission de sortie fixée à 25$ est soustraite des 97$ de profits, laissant 72$ de profits après commission. Ces gains sont alors ajoutés au capital de trading de 970$ pour un nouveau capital de 1.042$.

Quand la seconde position longue est entrée, la commission de 30$ est soustraite des 1.042$ de capital, nous permettant un investissement total de 1.012$. Le prix de la valeur gagne alors 10% ce qui génère 101,20$ de profits (i.e., un gain de 10% sur 1012$ investis). La commission de sortie de 25$ est alors soustraite des 101,20$ de profits, laissant 76,20$ de profits après commission . Ces 76,20$ de profits sont alors ajoutés au capital de 1.012$, pour un nouveau capital de trading de 1088,20$.

Si le capital de trading disponible n’est pas suffisant pour couvrir la commission d’entrée, MetaStock essaiera d’entrer sur la position mais échouera. Le trade type (" Type de transaction ") qui sera affiché, marquera des non-sufficient funds/fonds non-suffisant ("NSFS" or "NSFL"), le tout sera suivi immédiatement après par un out trade/transaction neutre. Aucune autre transaction ne pourra être placée à moins que les intérêts échus n’accroissent le capital de trading jusqu'à un niveau où les commissions pourront être couvertes.

Déposit

Le champ Margin Requirement/déposit dans la boîte de dialogue System Testing Options (" Options de test de système ") spécifie le pourcentage de fonds que vous devez laisser en déposit afin de placer une transaction. Ceci vous permet de donner un effet de levier à vos transactions.

Par exemple, si vous faites du trading sur une valeur requérant un déposit de 20% (i.e., autrement dit où vous devez faire un déposit qui représente seulement 20% du coût réel de la valeur), alors une hausse de 10% sur le prix de la valeur créera un gain de 50%. Considérez l’exemple suivant.

Si le capital de trading initial était de 1.000$ au moment où la position longue a été entrée, et si le prix de la valeur a gagné 10% avant que la position longue ne soit dénouée, les profits devraient normalement se monter à 100$ (i.e., 10% de 1.000$). Pourtant, si vous placez cette transaction en utilisant un déposit de 20%, vous pourrez alors acheter pour 5.000$ de cette valeur (vos 1.000$ sont le déposit, et 4.000$ sont des fonds empruntés, soit 80% du total investi). Ainsi, une hausse de 10% du prix de la valeur pourrait générer un gain de 500$ (i.e., 10% de 5.000$). Ce gain de 500$ représente un gain de 50% sur votre investissement initial.

Gagner des intérêts

Quand ni une position longue ni une position courte n’est ouverte (i.e., et qu’une position neutre ou "out" existe), des intérêts sont gagnés sur le solde de capital à un taux d’intérêt spécifié dans la boîte de dialogue Testing Options (" Options du test ") - Testing-.

Quand une position longue, ou une courte, est ouverte à la suite d’une position neutre, les intérêts gagnés pendant la phase neutre du test sont comptés dans le nouveau solde de capital de trading.

Ordre d’évaluation

Quand un système est testé, il est présumé commencer sur une position out/neutre.

Quand il est sur une position neutre:

Si un signal Enter Long/entrer long et un signal Enter Short/entrer court se produisent simultanément, le signal Enter Long aura priorité sur le signal Enter Short.

Quand un signal Enter Long ou Enter Short est généré, la position Out courante est clôturée et les intérêts gagnés sont ajoutés au montant du capital.

Quand il est sur une position longue ou courte:

Tous les signaux Enter Long sont ignorés si le test de système est sur une position longue. Tous les signaux Enter Short sont ignorés si le test de système est sur une position courte.

Tous les signaux Enter Long vont être ignorés à moins que les transactions longues ne soient habilitées dans la boîte de dialogue System Testing Options (" Options de test de système "). La même logique s’applique aux signaux courts.

Si un signal Enter Long est reçu alors que le test est sur une position courte, la position courte est clôturée et la position longue est alors entrée. La même logique s’applique aux signaux courts.

Quand un test de système est dans une position longue ou une courte, les signaux sont analysés en suivant l’ordre suivant:

1. Surveiller l’apparition d’un signal de sens opposé (e.g., si long, surveiller l’apparition d’un signal Enter Short).

2. Surveiller l’apparition d’un signal de clôture (e.g., si long, surveiller l’apparition d’un signal Close Long).

3. Surveiller l’apparition du déclenchement d’un stop.

Autres questions de comptabilité

Si jamais le capital de trading tombe à, ou au-dessous de zéro (il ne peut tomber au-dessous de zéro que dans le cas où les commissions sont spécifiées en points et non en pourcentages), aucun intérêt ne pourra être gagné et aucune autre transaction ne pourra être entrée pour le restant à courir du test. (Vous remarquerez que ceci ne s’applique pas aux tests de système spécifiés en points only/points seulement.)

Quand un Trade Delay (" Délai de transaction ") est spécifié, tous les autres signaux et stops sont ignorés jusqu'à ce que la période de délai soit écoulée. Par exemple, si le Trade Delay est réglé à cinq et qu’un signal Close Long/Clôturer long soit déclenché, tous les autres signaux et stops seront ignorés jusqu'à ce que soient écoulées cinq unités de temps et que le signal Close Long ait été exécuté. Si un signal Enter Long/Entrer Long est déclenché pendant cette période de délai, le signal Close Long en suspens ne sera pas abandonné et il ne sera pas tenu compte du signal Enter Long.

Tester les contrats de futures et les matières premières

Les procédures de tests de système sur les futures et les matières premières sont menées en exécutant des tests de systèmes en " points seulement ". Un test de système en points seulement revient à dire que la conduite du test ignore complètement la valeur en dollars des contrats et ne s’attache qu’à tenir compte du nombre de points gagnés/perdus sur les contrats.

Pour exécuter un test de système en points seulement , cochez la case Points Only dans la boîte de dialogue System Testing Options (" Options de test de système ") avant d’exécuter le test. Les niveaux initiaux du capital de trading, du déposit, et des taux d’intérêts en annualisé, sont ignorés quand un test en points seulement est exécuté.

Quand vous accomplissez un test en points seulement, le System Tester (" Testeur de système ") permettra à la ligne de capital de trading de tomber sous la ligne de zéro.

Les paramètres des stops peuvent malgré tout être exprimés en points ou en pourcentages quand vous exécutez un test de système en points seulement. Les calculs de valeurs en pourcentages seront basés sur le prix d’entrée pour une transaction plutôt que sur le niveau du capital de trading au moment où la transaction a été entrée.

Dans un test en points seulement, les commissions sont calculées seulement sous les conditions suivantes:

· L’option Points (" Points ") dans la boîte de dialogue System Testing Options (" Options de test de système ") doit être sélectionnée.

· La valeur de la commission doit être inférieure ou égale à 1. La valeur de la commission devra être entrée en équivalent points. Par exemple, si votre taux de commission est de 30$ et qu’une variation d’un tick sur le marché de futures que vous testez équivaut à 0.03125 points (ou 31.25$ par contrat), vous devriez entrer 0.03 en pourcentage (soit 30.00$ en équivalent point) pour le taux de commission.

Ci-dessous vous trouverez les différences dans les rapports, dans le cadre d’un test de système en points seulement:

· Tous les rapports pour un test en points seulement incluent les mots "Points Only Test" sur l’en-tête du rapport.

· Dans le Results Report (" Rapport de résultats "), certains champs contiennent la mention "N/A" (Non Applicable) étant donné que ces champs sont applicables à des valeurs en unités monétaires seulement (pas en points).

· Dans le rapport Trade Detail report (" Rapport détaillé de transaction "), le champ du Percent Profit (" Profit en pourcentage ") ou Loss contiennent la mention "N/A" (Non Applicable) étant donné que ce champ est applicable à des valeurs en unités monétaires seulement (pas en points).

· Dans le Trade Detail report, les champs d’Equity at Entry (" Capital de trading à l’entrée ") et d’Equity at Close (" Capital de trading à la clôture ") montrent l’état courant du capital en points du système, respectivement quand la transaction a été entrée et clôturée.

Vitesse d’exécution

Si votre ordinateur est doté d’un co-processeur mathématique, cela permettra de réduire de façon significative le temps que prendra l’exécution d’un test de profitabilité. Tous les Pentiums sont dotés d’un co-processeur mathématique. Si vous avez un ordinateur bi-processeur ce sera encore mieux.

Une grande partie du temps dépensé dans une procédure de test représente le temps passé à écrire les rapports sur le disque dur. Ainsi, vous pouvez faire réduire le temps passé sur cette tâche en vous dotant d’un disque dur plus rapide.

Mémoire disque

Si vous avez une grande capacitée sur votre disque, il est malgré tout raisonnable de vérifier régulièrement qu'il n'arrive pas à son seuil de saturation.

Fonction Input(), Variables, et indicateurs Multi-courbes

Le System Tester (" Testeur de système ") acceptera des variables attribuées dans les règles de trading. Par exemple, la règle suivante est une règle Close Long (" Clôturer les longs ") parfaitement valable:

myvar:=10;
c>mov(c,myvar,s);

Un test de système ne peut pas directement utiliser la fonction input(). Cette fonction est réservée pour les indicateurs personnalisés uniquement. Néanmoins, si une règle utilise la fonction fml() pour appeler les résultats d’un indicateur personnalisé, et que cet indicateur personnalisé utilise la fonction input(), la fonction fml() utilisera uniquement la valeur de l’input/entrée attribuée par défaut—le System Tester (" Testeur de système ") n’affichera aucune invite nous demandant ce qui doit être entré.

Un test de système ne peut pas directement utiliser la fonction input(). Cette fonction est réservée pour les indicateurs personnalisés uniquement.

Si un système contient ou référence (en utilisant la fonction fml()) un indicateur multi-courbes, seul le dernier point est utilisé dans le cadre du calcul du test de système.