|
Tous les systèmes de trading sont composés de quatre règles de trading. Ces dernières précisent quand les positions longues et courtes devraient être ouvertes et fermées. Les systèmes de trading peuvent également être dotés de variables d'optimisation et de stops.
Pour créer un nouveau système, cliquez sur le bouton New (Nouveau) de la boîte de dialogue du System tester (Testeur de système). MetaStock peut stocker jusqu'à 1000 tests de système différents.
Après avoir activé la commande New (Nouveau), la boîte de dialogue du System Editor (Editeur de système) apparaît à l'écran.
La boîte de dialogue du System Editor (Editeur de système) vous permet de nommer (Name) le test de système, d'enregistrer des Notes concernant le système, et de définir quatre règles (Rules) de trading.
Les règles de trading utilisent la syntaxe des formules que nous avons expliquée dans le chapitre Comment créer vos propres indicateurs
. La syntaxe utilisée est très similaire à celle qui est utilisée pour saisir les formules dans un tableur. Si vous ne vous êtes pas familiarisés avec les indicateurs personnalisés, nous vous conseillons de lire le Tutoriel de Formules.Rappelez-vous qu'un système de trading peut prendre l'un des trois états suivants: long, court ou neutre. Quand il est neutre, on fait l'hypothèse que des intérêts, qui représentent le manque à gagner, sont générés à un taux qui est défini par vous dans la boîte de dialogue System Testing Options (Options du test de système).
Vous utilisez les quatre onglets pour sélectionner quelles sont les règles qui sont éditées et affichées.
Entrer acheteur
. La règle Enter Long (" Entrer acheteur ") précise quand le système passerait long, c'est-à-dire en position d'achat. Une position longue peut être rentrée uniquement à la condition que le système soit au préalable court ou neutre. Quand il est déjà long, la règle est ignorée.Clôturer vos positions acheteuses
. La règle Close Long (" Clôturer vos positions acheteuses ") précise quand le système devrait clôturer une position longue. Quand vous êtes court ou neutre, cette règle est ignorée.Entrer vendeur
. La règle Enter Short (" Entrer vendeur ") précise quand le système devrait passer vendeur à découvert. Une position courte peut seulement être entrée quand le système est long ou neutre. Quand il est court, cette règle est ignorée.Clôturer vos positions vendeuses
. La règle Close Short (" Clôturer vos positions vendeuses ") précise quand le système devrait couvrir (i.e., clôturer) une position courte. Quand il est long ou neutre, cette règle est ignorée.Les règles de trading sont saisies en utilisant le langage de formule
de MetaStock. Cette syntaxe est très proche de la syntaxe qui est utilisée pour saisir les formules dans des tableurs.Une règle de trading renvoie toujours à un signal de type "true" ("vrai") ou "false" ("faux"). Quand la condition spécifiée dans la règle de trading est vraie, la transaction associée (e.g., entrée des long, entrée des court, etc...) est prise. Quand la condition est fausse, aucune action n'est prise.
L'exemple suivant illustre une règle de trading:
Enter Long (Entrez vos long):
cross(CLOSE, mov(CLOSE,12,Simple))
Si cette règle était saisie en tant que règle d'entrée des longs, le système entrerait une position longue quand le cours de clôture passe au-dessus de sa moyenne mobile à 12 périodes.
De la même manière, la règle de trading suivante serait déclenchée si le MACD était supérieur à zéro. (Le "macd()" sollicité dans cette règle est une fonction.
Enter Long (Entrez vos long):
macd() > 0Toutes les fonctions personnalisées (e.g., macd()) peuvent être utilisées dans le cadre de règles de trading. Un indicateur personnalisé précis peut être référencé par l'usage de la formule fml() comme vu ci-dessous:
Enter Short (Entrez vos courts):
fml("My Formula") > 0Vous pouvez combiner des fonctions multiples à l'intérieur d'une règle de trading grâce à l'usage des opérateurs AND (ET) et OR (OU), comme vu ci-dessous. Pour plus d'information sur l'usage des opérateurs AND et OR
.Enter Long(Entrez vos longs):
macd() > 0 AND CLOSE > mov(CLOSE,12,S)
La règle précédente exige que le MACD soit au-dessus de zéro et que la clôture soit au-dessus de sa moyenne mobile à 12 périodes.
La règle suivante utilise l'opérateur OR pour générer une transaction quand le MACD tombe au-dessous de zéro, ou quand la clôture tombe au-dessous de sa moyenne mobile.
Close Long (Clôturez vos longs):
macd() < 0 OR CLOSE < mov(CLOSE,12,S)
L'usage de plusieurs AND et OR est possible au sein d'une même règle de trading. La meilleure façon de contrôler la priorité (i.e., l'ordre des opérations) dans le cas de multiples opérateurs AND et OR à l'intérieur d'une même règle de trading, sera d'utiliser des parenthèses comme nous le montrons sur la règle de trading suivante:
Enter Long (Entrez vos longs):
(
macd() > 0 AND C > 100) OR H-L>5La règle de trading précédente activera une transaction quand l'une ou l'autre des conditions suivantes sera vérifiée:
·
·
La différence entre le plus haut et le plus bas est supérieure à cinq.Vous pouvez cliquer sur le bouton Functions tout en éditant vos règles de trading (rules) et non pas le nom (name) ou les notes. La boîte de dialogue Paste Functions (Fonctions coller) et une liste des fonctions offertes sera affichée. Le fait de cliquer deux fois sur un nom de fonction permettra l'insertion de la fonction dans la règle de trading à l'emplacement courant du curseur.
L'aire de saisie des règles de trading (rules) peut être laissée vide. Néanmoins, si c'est le cas, aucune transaction ne pourra être générée.
Les règles de trading peuvent simplement permettre de donner accès aux données de prix de la valeur ou du marché (e.g., high/plus haut, low/ plus bas, close/clôture, etc...) et aux fonctions des indicateurs personnalisés. Les règles de trading peuvent ne pas référencer le système de trading en lui-même(e.g., le nombre de jours écoulé depuis la dernière transaction). Cependant, nombre de stops (exemple juste en dessous) s'acquittent de cette fonctionnalité.
Une variable particulière appelée la variable "P" peut être utilisée pour référencer tout prix sélectionné ou tracé d'indicateur. Pour plus d'information sur la variable "P".
Les variables peuvent être utilisées dans le cadre des règles définissant un système de trading. Les formules à multi-courbes (i.e., celles qui aboutiraient à des courbes multiples si elles étaient tracées sous la forme d’indicateur personnalisé) sont permises, mais seule la dernière d’entre elles sera reconnue par le system tester.
La fonction alert() est utilisée en conjonction avec d’autres fonctions pour étendre un signal true/vrai pour un nombre spécifié d’unités de temps. Le signal est considéré comme vrai sur un nombre d’unités de temps spécifié même si une autre position est générée.
L’exemple suivant illustre l’usage qui peut être fait de la fonction alert():
Enter Long (" Entrez vos longs "):
RSI(14) < 30 AND alert(VOLUME > 500,3)Si ces conditions étaient entrées comme règle pour entrer ses longs, le système entrerait une position longue si le RSI était inférieur à 30 et si les volumes avaient été supérieurs à 500, cette dernière condition devant être vérifiée à un moment quelconque durant la période que recouvrent les trois dernières unités écoulées. La condition "VOLUMES > 500" reste donc vraie sur toute la période et ce même si les volumes tombent au-dessous des 500 dans le cours de cette période.
Si vous enleviez la fonction alert() dans l’exemple ci-dessus, l’une et l’autre des conditions (i.e., RSI(14) < 30 et VOLUME > 500) auraient à être vérifiées simultanément pour que le signal d’entrée des longs soit généré. Le simple fait d’utiliser la fonction alert() , permet à une condition vraie générée par la condition "VOLUMES > 500" d’être étendue sur un espace temps de trois unités de temps.
En plus des règles de trading, chaque système de trading peut avoir jusqu'à cinq "stops." Les stops sont utilisés pour clôturer des positions longues et/ou courtes en basant la décision sur les gains ou les pertes enregistrés sur la position. Par exemple, le stop Maximum Loss clôturera une position si elle perd plus qu’un montant spécifié.
Quand un stop est déclenché, la position est clôturée quelle que soit la situation courante de vos règles de trading.
Vous spécifiez les limites sur lesquelles les stops seront déclenchés et les positions que les stops peuvent clôturer (i.e., longues et/ou courtes).
Les stops tiennent automatiquement compte des commissions d’entrée et de sortie. Par exemple, le stop Maximum Loss (" Perte maximale ") connaît le niveau de votre commission de sortie de façon à ce que la perte maximale ne soit pas dépassée après que vous ayez payé la commission de sortie.
Les stops sont fixés en cliquant sur le bouton Stops dans la boîte de dialogue System Editor (" Editeur de système ").
Le stop Breakeven (" Seuil de rentabilité ") clôture une position ouverte dès que la valeur de la position réalisée tombe au-dessous de la valeur courante du capital de trading (i.e., la valeur du capital au moment où la position courante a été ouverte). Le stop est placé au niveau de prix où la position pourrait être clôturée et que néanmoins les revenus tirés de cette sortie de position soient égaux à la valeur du capital de trading au moment où la position a été ouverte.
Pour empêcher que ce stop ne soit exécuté à chaque fois qu’une position est ouverte (parce que les commissions prélevées rendent une perte certaine au moment où la position vient d’être initiée) ; le stop Breakeven est activé seulement à partir du moment où le gain sur la position est égal ou dépasse un " niveau plancher " défini par l’utilisateur. La valeur que vous donnez dans la zone d’entrée Floor Level (" Niveau plancher ") est dépendante de la Method (" Méthode ") qui est spécifiée (points/points ou percent/pourcentage).
Astuce: Si le Floor Level est fixé à zéro, le stop Breakeven ne sera activé qu’à partir du moment où le prix de la valeur se sera accru jusqu’au niveau où, si elle était clôturée, la position n’engendrerait pas une perte.
Le stop Inactivity (" Inactivité ") clôture une position ouverte quand le prix de la valeur ne génère pas une variation positive minimale des prix pendant le nombre d’unités de temps spécifié. (Une " variation positive minimale des prix " est définie par un mouvement haussier sur les prix s’il s’agit d’une position longue, et un mouvement baissier s’il s’agit d’une position courte).
Tapez dans les zones d’entrées appropriées le Minimum Change (" Variation minimale ") et le nombre de Periods (" Unités de temps "). La Method (" Méthode ") à utiliser pour calculer la variation minimale peur-être spécifiée en Percentage/pourcentage ou en Points/points.
Exemple: Si vous spécifiez 1% comme Minimum Change et 20 comme le nombre de Periods, MetaStock clôturera automatiquement toute position longue (courte) où le prix de la valeur n’aura pas gagné (perdu) au moins 1% sur les 20 dernières unités de temps écoulées.
Ce stop analyse les variations de prix, pas la valeur du capital de trading, et par conséquent ne tient pas compte des commissions.
Le stop Maximum Loss (" Perte maximale ") clôture une position ouverte à partir du moment où les pertes résultant de la transaction dépassent le montant spécifié de Maximum Loss.
Exemple: Si vous fixez une Maximum Loss à 5%, les positions seront clôturées dès que les pertes dépassent 5% de votre capital de trading (en incluant les commissions).
Mise en garde: Si vous fixez la Maximum Loss à une valeur inférieure ou égale à l’Entry Commission (" Commission d’entrée "), toutes les transactions seront automatiquement fermées immédiatement après la mise en place de la position, cela car toutes les transactions verront apparaître une perte au moment de leur mise en place (à cause des commissions).
Le stop Profit target (" Objectif de gains ") clôture une position ouverte quand un niveau spécifié de Profit Target est atteint.
Exemple: Si vous entrez 10% comme objectif de gain, les positions ouvertes seront fermées quand elles généreront une hausse de 10% de la valeur de votre capital de trading (après avoir tenu compte des effets des commissions).
Ce stop Trailing (" à la traîne ") clôture une position ouverte quand un montant spécifié (i.e., Profit Risk/risque négatif) des profits non réalisés sur la position courante est perdu.
Chaque fois que les gains enregistrés sur la position atteignent un nouveau record, le stop Trailing est placé au niveau qui permettra à une portion spécifiée de ces profits sur la position d’être perdus. Vous spécifiez le montant de la perte dans la zone d’entrée Profit Risk (" Risque négatif ") - en utilisant soit la méthode du Percent/pourcentage soit la méthode des Points/points -.
MetaStock vous permet de spécifier le nombre de Periods (" Unités de temps ") que vous désirez ne pas prendre en compte. Par exemple, si vous spécifiez 4 pour les unités de temps, vous aurez alors le stop Trailing qui sera en retard de quatre unités de temps. Cela veut dire que les pertes ou profits des quatres dernières unités de temps seront ignorées pour déterminer le niveau courant du stop. Cela permet de filtrer les oscillations des prix qui se sont produites durant les quatre dernières unités de temps.
Ce stop est construit pour bloquer les profits, pas pour limiter les pertes. Le stop Trailing ne permet que de limiter le montant des profits qui peut être perdu. Les pertes sont limitées par le stop Maximum loss (voir dans cette page un peu plus haut).
Etant donné que les stops " à la traîne " sont déterminés par le niveau des profits, et non par le niveau des prix, les positions courtes ne sont traitées avec aucun égard particulier.
Exemple: 5% est spécifié pour le Profit Risk, 0 pour les Periods, et votre position courante a un profit de 100$. Le stop sera déclenché dès que les variations de prix de la valeur se traduiront par un retour des profits à 95$ (ou à moins).