La plateforme de trading permet de créer des symboles financiers personnalisés. Vous pouvez voir les graphiques de ces symboles et effectuer des analyses techniques, mais aussi les utiliser pour tester des robots de trading et des indicateurs dans le Strategy Tester.
Si votre courtier ne fournit pas l'instrument sur lequel vous souhaitez tester votre stratégie, ou si la profondeur de l'historique ou la qualité de l'historique des prix ne sont pas suffisantes, vous pouvez créer un symbole personnalisé et y associer les données nécessaires.
Ouvrez la fenêtre de gestion des symboles avec le menu contextuel de la fenêtre du "Market Watch" et cliquez sur "Créer un Symbole Personnalisé" :
Pour un symbole personnalisé, vous pouvez configurer certains paramètres de la spécification des instruments de trading, mais aussi quelques paramètres supplémentaires :
En plus des paramètres ci-dessus, vous pouvez configurer les sessions de trading et de cotations du symbole. Les sessions sont configurées séparément pour chaque jour. Double-cliquez sur un jour pour le modifier.
Définissez les sessions souhaitées en utilisant les curseurs. Les Expert Advisors ne pourront pas trader dans le Strategy Tester en dehors des heures des sessions.
Les sessions de trading ne sont pas spécifiées par défaut, et coïncident avec les sessions des cotations. Si vous avez besoin de configurer les heures des sessions de cotations et des sessions de trading séparément, activez l'option "Activer les sessions de trading séparées". Chaque session de trading doit être dans une session de cotation.
|
Vous pouvez facilement partager des symboles personnalisés ou transférer des symboles entre vos plateformes. Les paramètres d'un symbole personnalisé spécifique peuvent être exportés ou importés depuis la fenêtre d'édition de ses paramètres affichées au-dessus.
Il est également possible d'exporter et d'importer des groupes entiers de symboles :
Les paramètres sont exportés dans des fichiers texte au format JSON :
{
|
Tous les symboles sont affichés dans un groupe Personnalisé séparé. Si vous devez modifier ou supprimer un symbole, utilisez le menu contextuel de la liste :
Vous pouvez importer les données des prix de votre symbole personnalisé à partir de n'importe quel fichier texte, ou fichier d'historique de MetaTrader (HST). Choisissez un symbole et allez dans l'onglet "Barres" ou "Ticks".
Dans la boîte de dialogue d'import, spécifier le chemin vers le fichier et définissez les paramètres nécessaires :
Un fichier avec des barres 1-minute doit avoir le format suivant : Date Heure Open High Low Close TickVolume Volume Spread. Par exemple :
<DATE> <TIME> <OPEN> <HIGH> <LOW> <CLOSE> <TICKVOL><VOL> <SPREAD>
|
Un fichier avec des ticks doit avoir le format suivant : Date Time Bid Ask Last Volume. Par exemple :
<DATE> <TIME> <BID> <ASK> <LAST> <VOLUME>
|
Ne transmettez pas les drapeaux, car le terminal les calcule lors de l'importation.
Vous pouvez utiliser les données de n'importe quel instrument existant pour votre symbole personnalisé. Exportez les données, modifier-les si nécessaire et ré-importer les de nouveau.
|
Les données de prix des symboles personnalisés sont sauvegardées dans un répertoire Custom séparé (ce ne sont pas les répertoires où soont stockées les données des serveurs de trades) :
C:\Users\[compte windows]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom |
Vous pouvez éditer manuellement l'historique des barres et des ticks des symboles personnalisés. Pour cela, demandez l'intervalle désiré des données dans l'onglet "Barres" ou "Ticks".
Lors de l'édition des barres, il est fortement recommandé de demander les données de la période M1. L'historique des prix est stocké sous la forme de barres 1-minute dans la plateforme. Toutes les autres périodes sont créées sur la base de ces barres. Même si vous demander les barres d'une autre période pour commencer, tous les changements seront appliqués aux barres 1-minute correspondantes. Par exemple, si vous demandez les données de la période M5 et que vous éditez une barre, 5 barres 1-minute seront remplacées par 1 barre 1-minute (correspondant au début de la barre M5). Cela signifie que l'intervalle édité sera complètement remplacé. |
Pour des raisons pratiques, les entrées modifiées sont surlignées de la façon suivante :
|
Pour sauvegarder les changements, cliquez sur "Appliquer les Changements" en bas de la fenêtre.
L'utilisation de symboles personnalisés est similaire à l'utilisation des instruments fournis par le courtier. Les symboles personnalisés sont affichés dans la fenêtre Market Watch ; vous pouvez ouvrir les graphiques de ces symboles et y appliquer des indicateurs et des objets d'analyse.
Il n'est pas possible d'effectuer des trades réels sur les symboles personnalisés, mais ils peuvent être utilisés pour tester des robots de trading et des indicateurs dans le Strategy Tester. Sélectionnez un symbole personnalisé et lancez le test :
Lors du calcul de la marge et du profit des trades exécutés pendant le test, le Strategy Tester peut utiliser automatiquement les taux croisés disponibles sur le compte. Par exemple, si la devise de profit est EUR et que la devise du compte est USD, le testeur la convertira selon les taux EURUSD correspondant.
La plupart du temps, les noms des symboles personnalisés incluent différents suffixes, tels que EURUSD.1 ou EURUSD.f. Le strategy tester utilise donc un mécanisme spécial pour rechercher les taux croisés correspondants pour les calculs.
Par exemple, nous avons créé un symbole personnalisé AUDCAD.custom avec le type de calcul de marge Forex, et la devise de notre compte est le USD. Sur la base du nom de l'instrument Forex, le tester recherche les symboles nécessaires dans l'ordre suivant :
Pour les instruments financiers avec d'autres types de calcul de marge (Futures, Stock Exchange), une paire de devises est requise pour la conversion de la devise de l'instrument dans la devise de dépôt. Par exemple, nous avons créé un symbole personnalisé avec la Livre Sterling (GBP) définie pour les devises de profit et de marge, et le Franc Suisse (CHF) utilisé comme devise de dépôt. Dans ce cas, les symboles pour le test sont recherchés dans l'ordre suivant :
|
Symboles Synthétiques avec Cotations en Temps Réel
La plateforme de trading permet la création d'instruments financiers synthétiques, c'est à dire des symboles basés sur un ou plusieurs instruments existants. L'utilisateur doit donner la formule de calcul des cotations pour que la plateforme puisse générer les ticks de l'instrument synthétique en temps réel et crée l'historique en minute.
Par exemple, vous pouvez créer un instrument montrant l'indice du dollar (USDX). Il utilise la formule suivante :
50.14348112*pow(ask(EURUSD),-0.576)*pow(USDJPY,0.136)*pow(ask(GBPUSD),-0.119)*pow(USDCAD,0.091)*pow(USDSEK,0.042)*pow(USDCHF,0.036) |
---|
La plateforme calculera en temps réel le prix du nouvel instrument sur la base des cotations des six autres symboles fournis par votre courtier. Les changements de prix seront visualisés dans la fenêtre du Market Watch et sur le graphique :
Créez un nouvel symbole personnalisé, ouvrez sa spécification et spécifiez la formule :
Le calcul des ticks et des barres 1-minute d'un instrument synthétique commence lorsque cet instrument est ajouté au Market Watch. Tous les symboles requis pour le calcul du prix synthétique sont également automatiquement ajouté au Market Watch. Une entrée à propos du lancement du calcul sera ajoutée dans le journal de la plateforme : Synthetic Symbol USDX: processing started.
|
Chaque 100 ms (c'est à dire 10 fois par seconde), les prix des symboles utilisés dans le calcul sont vérifiés. Si au moins l'in deux a changé, le prix du symbole synthétique est calculé et un nouveau tick est généré. Le calcul est effectué en parallèle dans 3 trois threads pour les prix Bid, Ask et Last. Par exemple, si la formule de calcul est EURUSD*GBPUSD, le prix du symbole synthétique sera calculé comme suit :
La disponibilité des changements est effectuée séparément pour chaque prix. Par exemple, si seul le prix Bid d'un instrument source a changé, seul le prix correspondant d'un instrument synthétique sera calculé.
En plus de collecter les ticks en temps réel, la plateforme crée un historique en minutes des instrument synthétiques. Cela permet aux traders de voir les graphiques des symboles synthétiques comme des graphiques normaux, et ainsi d'effectuer des analyses techniques en utilisant des objets et des indicateurs.
Lorsqu'un trader ajoute un instrument synthétique au Market Watch, la plateforme vérifie si son historique en minute calculé existe. S'il n'existe pas, l'historique pour les 60 derniers jours sera créé, ce qui inclus environ 50.000 barres. Si une valeur plus faible est spécifiée dans le paramètre Max. barres dans le graphique des paramètres de la plateforme, la limite correspondante sera appliquée. Si certaines barres dans cette période ont été créés auparavant, la plateforme génèrera en plus de nouvelles barres.
Après la création des barres des 60 derniers jours, la plateforme continuera à créer un historique plus profond en arrière plan. L'historique des prix de chaque symbole utilisé dans la formule synthétique peut être de différente profondeur. Le calcul est donc effectué pour la plus petite période disponible. Par exemple, la formule utilise 3 instruments financiers :
Dans ce cas, l'historique du symbole synthétique sera calculé pour la période du 2014.06.01 à aujourd'hui. 100 minutes seront également supprimées de cette date, pour assurer l'intégrité du calcul (si une barre 1 minute n'est pas disponible dans l'historique, une barre 1 minute précédente sera utilisée dans le calcul).
L'historique des barres 1-minute d'un instrument synthétique est calculé à partir des barres 1-minute (et pas des ticks) des instruments utilisés dans sa formule. Par exemple, pour calculer le prix Open d'une barre 1-minute d'un symbole synthétique, la plateforme utilise les prix Open des symboles utilisés dans sa formule. Les prix High, Low et Close sont calculés de la même façon.
Si la barre demandée n'est pas disponible pour un des instruments, la plateforme utilise le prix Close de la barre précédente. Par exemple, 3 instruments sont utilisés : EURUSD, USDJPY et GBPUSD. Si la barre demandée pour USDJPY n'est pas disponible pour le calcul de la barre correspondant à 12:00, les prix suivants seront utilisés pour le calcul :
Si la barre 1-minute n'est disponible pour aucun des instruments utilisés dans la formule, la barre 1-minute correspondante de l'instrument synthétique ne sera pas calculée.
Toutes les nouvelles barres (la courante et les suivantes) de l'instrument synthétique sont créées à partir des ticks générés. Le prix utilisé pour construire les barres dépend du paramètre "Mode du graphique" dans la spécification:
Les prix et certaines propriétés des symboles existants fournis par le courtier peuvent être utilisés pour calculer les prix synthétiques. Spécifiez les éléments suivants :
Si un symbole a un nom complexe (contenant des dièses, points, etc.), il doit être écrit entre guillemets. Exemple : "RTS-6.17". |
Les opérations arithmétiques suivantes peuvent être utilisées dans la formule : addition (+), soustraction (-), multiplication (*), division (/) et module (reste de la division - %). Par exemple, EURUSD+GBPUSD signifie que le prix est calculé comme étant la somme des prix de l'EURUSD et du GBPUSD. Vous pouvez également utiliser l'opérateur unaire "moins" pour changer le signe, par exemple : -10*EURUSD.
Faites attention à la priorité de calcul des opérations arithmétiques :
Vous pouvez utiliser des constantes dans la formule :
Vous pouvez aussi utiliser dans la formule toutes les fonctions mathématiques supportées en MQL5, excepté MathSrand, MathRand et MathIsValidNuber :
Fonction |
Description |
---|---|
fabs(number) |
Retourne la valeur absolue (valeur du modulo) du nombre passé à la fonction. |
acos(number) |
Retourne le cosinus inverse du nombre en radians |
asin(number) |
Retourne le sinus inverse du nombre en radians |
atan(number) |
Retourne la tangente inverse du nombre en radians |
ceil(number) |
Retourne l'entier supérieur le plus proche |
cos(number) |
Retourne le cosinus du nombre |
exp(number) |
Retourne l'exposant du nombre |
floor(number) |
Retourne l'entier inférieur le plus proche |
log(number) |
Retourne le logarithme naturel |
log10(number) |
Retourne le logarithme décimal d'un nombre |
fmax(number1, number2) |
Retourne le maximum des deux valeurs numériques |
fmin(number1, number2) |
Retourne le minimum des vdeux valeurs numériques |
fmod(dividend, divisor) |
Retourne le reste entier de la division de deux nombres |
pow(base, power) |
Elève la base à la puissance spécifiée |
round(number) |
Arrondit le nombre passé à l'entier le plus proche |
sin(number) |
Retourne le sinus du nombre |
sqrt(number) |
Retourne la racine carrée |
tan(number) |
Retourne la tangente du nombre |
expm1(number) |
Retourne la valeur de l'expression exp(number)-1 |
log1p(number) |
Retourne la valeur de l'expression log(1+number) |
acosh(number) |
Retourne la valeur du cosinus inverse hyperbolique |
asinh(number) |
Retourne la valeur du sinus inverse hyperbolique |
atanh(number) |
Retourne la valeur de la tangente inverse hyperbolique |
cosh(number) |
Retourne la valeur du cosinus hyperbolique |
sinh(number) |
Retourne la valeur du sinus hyperbolique |
tanh(number) |
Retourne la valeur de la tangente hyperbolique |