Au sein de différents Expert Advisors MQL5 lancés dans un même terminal, vous pouvez partager la même base de données. .
J'ai testé le fonctionnement de deux Expert Advisors avec la même base de données dans un terminal. Cela fonctionne sans erreur - les deux Expert Advisors écrivent les données dans un fichier avec un minuteur de 2 secondes.
Les fichiers sont joints, ils ne diffèrent que par le nom de l'Expert Advisor.
2020.02.1917:56:14.624 SecondExpertDataBase (GBPUSD,H1) 16:56:14: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:16.627 SecondExpertDataBase (GBPUSD,H1) 16:56:16: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:18.616 SecondExpertDataBase (GBPUSD,H1) 16:56:18: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:20.630 SecondExpertDataBase (GBPUSD,H1) 16:56:20: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:22.078 FirstExpertDataBase (USDCHF,H1) 16:56:21: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:22.629 SecondExpertDataBase (GBPUSD,H1) 16:56:22: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:24.071 FirstExpertDataBase (USDCHF,H1) 16:56:24: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:24.619 SecondExpertDataBase (GBPUSD,H1) 16:56:24: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:26.070 FirstExpertDataBase (USDCHF,H1) 16:56:26: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:26.619 SecondExpertDataBase (GBPUSD,H1) 16:56:26: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:28.079 FirstExpertDataBase (USDCHF,H1) 16:56:27: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:28.625 SecondExpertDataBase (GBPUSD,H1) 16:56:28: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:30.079 FirstExpertDataBase (USDCHF,H1) 16:56:30: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:30.617 SecondExpertDataBase (GBPUSD,H1) 16:56:30: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:32.069 FirstExpertDataBase (USDCHF,H1) 16:56:32: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:32.627 SecondExpertDataBase (GBPUSD,H1) 16:56:32: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:34.073 FirstExpertDataBase (USDCHF,H1) 16:56:33: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:34.627 SecondExpertDataBase (GBPUSD,H1) 16:56:34: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:36.616 SecondExpertDataBase (GBPUSD,H1) 16:56:36: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:38.079 FirstExpertDataBase (USDCHF,H1) 16:56:38: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:38.615 SecondExpertDataBase (GBPUSD,H1) 16:56:38: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:40.072 FirstExpertDataBase (USDCHF,H1) 16:56:40: added 1 record on USDCHF to timer.sqlite
2020.02.1917:56:40.618 SecondExpertDataBase (GBPUSD,H1) 16:56:40: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:42.630 SecondExpertDataBase (GBPUSD,H1) 16:56:42: added 1 record on GBPUSD to timer.sqlite
2020.02.1917:56:44.617 SecondExpertDataBase (GBPUSD,H1) 16:56:44: added 1 record on GBPUSD to timer.sqlite
Voici à quoi ressemble la base de données dans MetaEditor
Database file is by default stored to . If you specify a full path as database filename, it's used. Terminal data path TERMINAL_DATA_PATH can be known by the following instruction. Open MT4 Open [File] menu Click "Open Data Folder" Sample Many sample scripts in under . Precautions Argument mess MT4 build 610 has a weird bug when dll function...
Si quelqu'un a trouvé la solution, qu'il nous montre la mise en œuvre d'une telle tâche.
Il y a deux terminaux.
Il est nécessaire de transférer les cotations en temps réel d'un symbole du terminal 1 vers le symbole personnalisé correspondant du terminal 2.
Il y a une autre nuance - sauvegarder dans la base de données des données cohérentes avec une valeur croissante, ne se dispersant pas, comme les cotations (avec une date croissante) - une opération TRÈS coûteuse. L'arbre n'est pas équilibré, une branche pousse indéfiniment, et le moteur rééquilibre l'arbre régulièrement (c'est pire que le ramassage des ordures). Peut-être que cela ne s'applique qu'à la table indexée, je ne m'en souviens plus. Ou peut-être que pendant les quelques années où je ne l'ai pas utilisé, le problème a déjà été résolu. Il faudra que j'essaie. Peut-être même que les développeurs l'analyseront, cela devrait les intéresser.
voidOnStart()
{
string filename="DOMdb.db";
int database=DatabaseOpen(filename, DATABASE_OPEN_READWRITE );
DatabaseImport(database, // identifiant de la base de données reçu lors de l'ouverture de la base de données"DOMtb", // nom de la table pour l'insertion des données"AllDOM.csv", // nom du fichier pour l'importation des données0, // combinaison de drapeaux";", // séparateur de données 0, // nombre de premières lignes à sauter "//"// une chaîne de caractères définissant les commentaires
);
}
2020.02.20 15:09:27.171 MQL5 'DOMcopy.ex5' a une version plus récente non supportée, veuillez mettre à jour votre terminal client
version 5 build 2323 dernier méta-éditeur est le même et le débogage ne fonctionne pas.
Le vendredi 21 février 2020, une version mise à jour de la plateforme MetaTrader 5 sera publiée. La mise à jour contient les changements suivants :
MetaEditor : ajout de la possibilité de travailler de manière pratique avec les bases de données SQLite.
Lors de la précédente mise à jour de la plateforme, nous avons ajouté la possibilité de travailler avec des bases de données SQLite directement à partir de MQL5. Les fonctions principales sont maintenant disponibles via l'interface utilisateur de MetaEditor :
.
Création et connexion aux bases de données
Visualisation des tables et des requêtes de données rapides
Création et exécution de requêtes SQL, retour en arrière des modifications
Comment ça marche Pour créer rapidement des bases de données, utilisez l'"Assistant MQL5". Vous pouvez y créer immédiatement la première table et définir la liste de ses champs.
Après avoir créé une base de données, vous accédez à une nouvelle section du "Navigateur". Tout le travail avec les données est effectué à partir de cette section.
Dans la partie gauche, les tables de la base de données sont affichées. Pour interroger rapidement les 1 000 premiers enregistrements, double-cliquez sur le nom de la table. Vous pouvez également créer et ouvrir d'autres bases de données et travailler avec des tables.
La partie principale de l'éditeur est l'endroit où vous travaillez avec la base de données : remplir la table avec des données, effectuer des recherches et des sélections, saisir des requêtes SQL, etc. .
MetaEditor : Nous continuons à ajouter le support pour les projets multi-langues. Dans cette version, nous avons étendu les fonctions pour travailler avec les scripts Python :
.
Vous pouvez désormais les créer facilement grâce à l'"Assistant MQL5", en incluant immédiatement les dépendances des bibliothèques nécessaires dans le code.
Des icônes spéciales pour ces scripts ont été ajoutées dans le navigateur et la coloration syntaxique dans l'éditeur.
Lors de l'exécution du script via MetaEditor, les messages de la console Python (stdout, stderr) sont affichés dans la section "Erreurs".
Pour exécuter le script dans l'éditeur, cliquez sur "Compile" : .
Pour travailler avec Python, n'oubliez pas de spécifier le chemin d'accès dans la section "Paramètres / Compilateurs" dans MetaEditor. Et pour travailler avec la bibliothèque MetaTrader 5, installez-la avec la commande : .
pip install MetaTrader 5
Pour en savoir plus sur l'intégration avec Python, consultez la documentation:
.
MQL5 : L'intégration avec Python a été complètement repensée. De nombreuses nouvelles fonctionnalités ont été ajoutées et le nom des commandes a été modifié.
Nouvelles commandes La liste des commandes prises en charge a été considérablement élargie. Ajout de fonctions de négociation et d'utilisation de l'historique des transactions, d'obtention d'informations sur les instruments financiers et le compte courant.
positions_total() - reçoit le nombre de positions ouvertes. Un analogue de PositionsTotal.
positions_get(symbol, ticket) - obtient les positions ouvertes par symbole ou ticket.
orders_total() - reçoit le nombre d'ordres. Un analogue de OrdersTotal.
orders_get(symbol, ticket) - obtient les ordres en cours par symbole ou ticket.
history_orders_total(from, to) - permet d'obtenir le nombre d'ordres dans l'historique au cours d'un intervalle de temps donné.
history_orders_get(from, to, position, ticket) - permet d'obtenir les ordres de l'historique dans un intervalle de temps spécifié par ticket ou avec filtrage par position.
history_deals_total() - obtient le nombre de transactions dans l'historique. Un analogue de HistoryDealsTotal.
history_deals_get(from, to, position, ticket) - permet d'obtenir les offres de l'historique dans un intervalle de temps spécifié par ticket ou avec un filtrage par position.
symbol_info_tick(symbol) - obtient le dernier tick par symbole. Analogue de SymbolInfoTick.
symbol_select(symbol, enable) - active/désactive le symbole dans le "Market Watch". Analogue de SymbolSelect.
order_check(request) - Vérifie la marge d'un ordre. Analogue de OrderCheck.
order_send(request) - envoi d'un ordre au serveur. Un analogue de OrderSend.
order_calc_margin(action, symbol, volume, price) - calcul de la marge pour l'ordre. Un analogue de OrderCalcMargin.
order_calc_profit(action, symbole, volume, price_open, price_close) - calcul du profit. Un analogue de OrderCalcProfit. .
Exécution de scripts Python sur les graphiques Désormais, les scripts Python peuvent être exécutés directement sur les graphiques de la plateforme, de la même manière que les programmes MQL5. Ils seront affichés avec des icônes spéciales dans le "Navigateur". .
Les messages des scripts seront affichés dans la section "Outils / Experts". Si le script utilise la bibliothèque MetaTrader 5, il pourra recevoir des informations sur l'instrument, le compte et la transaction.
Les scripts Python peuvent être exécutés sur le même graphique en parallèle avec d'autres scripts MQL5 et Expert Advisors. Pour arrêter un script si son exécution est en boucle, il suffit de le supprimer du graphique.
Protection supplémentaire Pour protéger davantage vos comptes lors de l'utilisation de bibliothèques Python tierces, l'option "Désactiver le trading automatique via l'API Python externe" a été ajoutée aux paramètres du terminal. .
Les scripts Python ne seront autorisés à négocier que si cette option est explicitement désactivée.
.
MQL5 : Le relancement des programmes MQL5 et la recréation d'indicateurs personnalisés à partir des programmes MQL5 ont été considérablement accélérés. Dans certains cas, la vitesse a augmenté de plusieurs centaines de fois. .
MQL5 : Ajout de fonctions pour travailler avec les bases de données :
DatabaseImport Importe les données d'un fichier dans une table.
long DatabaseImport(
int database, // identifiant de la base de données reçu lors de l'ouverture de la base de donnéesconststring table, // nom de la table pour l'insertion des donnéesconststring filename, // nom du fichier pour l'importation des donnéesuint flags, // combinaison de drapeauxconststring separator, // séparateur de données ulong skip_rows, // nombre de premières lignes à sauter conststring skip_comments // une chaîne de caractères définissant les commentaires
);
DatabaseExport Exporte une table ou le résultat de l'exécution d'une requête SQL vers un fichier CSV. Le fichier est créé en encodage UTF-8.
long DatabaseExport(
int database, // identifiant de la base de données reçu lors de l'ouverture de la base de données conststring table_or_sql, // nom de la table ou requête SQL conststring filename, // Nom du fichier CSV pour l'exportation des données uint flags, // combinaison de drapeaux conststring separator // séparateur de données dans le fichier CSV
);
DatabasePrint Imprime une table ou le résultat de l'exécution d'une requête SQL dans le journal de l'Expert Advisor.
long DatabasePrint(
int database, // identifiant de la base de données reçu lors de l'ouverture de la base de donnéesconststring table_or_sql, // table ou requête SQLuint flags // combinaison de drapeaux
);
MQL5 : Ajout de la fonction FileSelectDialog qui appelle le dialogue système pour créer/ouvrir un fichier ou un dossier.
int FileSelectDialog(
string caption, // titre de la fenêtrestring initial_dir, // dossier de départstring filter, // filtre d'extensionuint flags, // combinaison de drapeauxstring& filenames[], // tableau de noms de fichiersstring default_filename // nom de fichier par défaut
);
La nouvelle fonction permettra d'implémenter une interaction pratique entre l'utilisateur et le programme MQL5.
.
MQL5 : DEAL_FEE - paiement pour la réalisation d'une transaction - a été ajouté à l'énumération ENUM_DEAL_PROPERTY_DOUBLE. En fait, il s'agit d'un type de commission distinct qui peut être facturé par un courtier.
.
Tester : ajout de la possibilité de définir vos propres paramètres de compte de trading lorsque vous testez des stratégies - limites de trading, paramètres de marge et commissions. Ainsi, vous avez encore plus de possibilités de simuler les différentes conditions de trading des courtiers. .
Paramètres généraux Dans cette section, vous pouvez définir le nombre maximum d'ordres ouverts et de positions que vous pouvez avoir sur votre compte en même temps. Vous pouvez également définir les sessions pendant lesquelles le programme testé ne sera pas autorisé à négocier.
Marge Vous pouvez ici contrôler entièrement la manière dont la marge sera réservée et le système de comptabilisation des positions qui sera utilisé pendant les tests :
.
Gestion des risques - modèle de gestion des risques : de gré à gré et en bourse, avec compensation et couverture. Des informations détaillées à ce sujet sont disponibles dans l'aide. .
Niveau "Margin call" - le niveau de fonds sur le compte, lorsqu'il est atteint, il passe à l'état "Margin call".
Niveau "Stop out" - le niveau de fonds auquel le compte est obligé de retirer les ordres et de fermer les positions de trading. Les deux niveaux peuvent être spécifiés en pourcentage et en argent. Dans le premier cas, les niveaux sont définis comme la valeur de l'indicateur "Fonds" sur le compte. Si l'option "Pourcentage" est sélectionnée, les niveaux sont définis comme la valeur de l'indicateur "Niveau de marge" sur le compte (Fonds/Marge*100).
Non réalisé - ce champ indique comment les bénéfices/pertes non réalisés actuels seront pris en compte dans la marge libre : .
Ne pas utiliser les profits/pertes non réalisés - les positions ouvertes ne sont pas prises en compte dans le calcul.
Utiliser le profit/la perte non réalisé(e) - utiliser la perte et le profit sur les positions ouvertes dans le calcul.
Utiliser le bénéfice non réalisé - n'utiliser que le bénéfice.
Utiliser la perte non réalisée - utiliser uniquement la perte.
Daily fixed - ce champ indique comment le profit/la perte fixé(e) par le trader au cours de la journée de trading sera pris en compte dans la marge libre : .
Use daily fixed profit/loss - prend en compte le profit et la perte fixés pendant la journée de négociation dans la marge libre.
Utiliser la perte fixe quotidienne - ne prendre en compte que la perte fixée au cours de la journée de négociation dans la marge libre. Pendant la journée, le bénéfice accumulé est fixé dans un champ de compte séparé ("Bloqué"). À la fin de la journée de négociation, le bénéfice accumulé est libéré (mis à zéro) et pris en compte dans le solde du compte (comptabilisé dans la marge libre).
Libérer les bénéfices accumulés à la fin de la journée - cette option n'est disponible que si l'option "Utiliser la perte fixe quotidienne" est activée. Si elle est activée, à la fin de la journée de trading, le profit accumulé pendant la journée sera libéré et enregistré sur le solde (et donc comptabilisé dans la marge libre). Dans le cas contraire, il ne le sera pas.
Commission Dans cette section, vous avez un contrôle total sur la façon dont les commissions sont facturées sur toutes les transactions.
.
Les commissions peuvent être à un ou plusieurs niveaux, c'est-à-dire qu'elles peuvent être facturées au même montant quel que soit le volume ou le chiffre d'affaires de la transaction ou varier en fonction de leur taille. Les informations pertinentes sont affichées dans le cahier des charges.
Les commissions peuvent être facturées immédiatement lors de l'exécution d'une transaction ou à la fin d'un jour/mois de négociation.
Les commissions peuvent être facturées en fonction du sens de la transaction : à l'entrée, à la sortie ou pour les deux types de transactions.
Les commissions peuvent être facturées par lot ou par transaction.
Les commissions peuvent être facturées en différents montants : en argent, en pourcentage ou en pips.
Testeur : travail optimisé et considérablement accéléré en mode "Market Scan", lorsque plusieurs tests sont effectués sur tous les symboles du "Market Watch". .
Testeur : Lors du calcul du profit en pips, la taille d'un trade ou d'une position est désormais prise en compte. Auparavant, le calcul était effectué sans tenir compte du volume - comme pour un lot.
Testeur : L'optimisation des résultats de la gestion des graphiques a été améliorée. Lorsque l'on zoome sur un graphique d'optimisation régulier, il est désormais possible de le faire défiler. Un double clic sur un point du graphique met désormais en évidence le résultat correspondant dans le tableau des passes. .
MetaEditor : Ajout de l'affichage des fichiers de base de données SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) dans le "Navigateur".
MetaEditor : Correction des erreurs lors de l'enregistrement des propriétés du projet. .
Mise à jour de la documentation.
La mise à jour sera disponible via le système LiveUpdate.
Renat Fatkhullin:
Au sein de différents Expert Advisors MQL5 lancés dans un même terminal, vous pouvez partager la même base de données.
.
J'ai testé le fonctionnement de deux Expert Advisors avec la même base de données dans un terminal. Cela fonctionne sans erreur - les deux Expert Advisors écrivent les données dans un fichier avec un minuteur de 2 secondes.
Les fichiers sont joints, ils ne diffèrent que par le nom de l'Expert Advisor.
Voici à quoi ressemble la base de données dans MetaEditor
Ce qui est décrit pour µl5 peut-il être utilisé dans µl4 ?
Dans MQL4, vous pouvez travailler avec le fichier natif Sqlite3_32.dll à travers le wrapper pour MQL.
Il s'agit d'un wrapper pour MQL, à ne pas confondre avec SQLite3Wrapper.dll.
Je ne sais pas s'il est toujours en ligne, mais je l'utilisais auparavant.
UPD : https://github.com/Shmuma/sqlite3-mt4-wrapperSi quelqu'un a trouvé la solution, qu'il nous montre la mise en œuvre d'une telle tâche.
Il y a une autre nuance - sauvegarder dans la base de données des données cohérentes avec une valeur croissante, ne se dispersant pas, comme les cotations (avec une date croissante) - une opération TRÈS coûteuse. L'arbre n'est pas équilibré, une branche pousse indéfiniment, et le moteur rééquilibre l'arbre régulièrement (c'est pire que le ramassage des ordures). Peut-être que cela ne s'applique qu'à la table indexée, je ne m'en souviens plus. Ou peut-être que pendant les quelques années où je ne l'ai pas utilisé, le problème a déjà été résolu. Il faudra que j'essaie. Peut-être même que les développeurs l'analyseront, cela devrait les intéresser.
Importation de la base de données()
script simple
2020.02.20 15:09:27.171 MQL5 'DOMcopy.ex5' a une version plus récente non supportée, veuillez mettre à jour votre terminal client
version 5 build 2323 dernier méta-éditeur est le même et le débogage ne fonctionne pas.
Y a-t-il quelque chose d'inachevé ?
Lafonctionnalité DatabaseImport n'a pas encore été rendue publique.
Veuillez attendre la publication.
La fonction DatabaseImport n'a pas encore été rendue publique.
Veuillez attendre sa publication.
version 5 build 2326 même chose, donc attendre une version stable quand ?
version 5 build 2326 la même chose qui est d'attendre une version stable et quand ?
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.
Nouvelle version de MetaTrader 5 build 2340 : Gestion des paramètres de compte dans le testeur et extension de l'intégration avec Python
MetaQuotes, 2020.02.20 14:55
Le vendredi 21 février 2020, une version mise à jour de la plateforme MetaTrader 5 sera publiée. La mise à jour contient les changements suivants :
Lors de la précédente mise à jour de la plateforme, nous avons ajouté la possibilité de travailler avec des bases de données SQLite directement à partir de MQL5. Les fonctions principales sont maintenant disponibles via l'interface utilisateur de MetaEditor :
.
Comment ça marche
Pour créer rapidement des bases de données, utilisez l'"Assistant MQL5". Vous pouvez y créer immédiatement la première table et définir la liste de ses champs.
Après avoir créé une base de données, vous accédez à une nouvelle section du "Navigateur". Tout le travail avec les données est effectué à partir de cette section.
Dans la partie gauche, les tables de la base de données sont affichées. Pour interroger rapidement les 1 000 premiers enregistrements, double-cliquez sur le nom de la table. Vous pouvez également créer et ouvrir d'autres bases de données et travailler avec des tables.
La partie principale de l'éditeur est l'endroit où vous travaillez avec la base de données : remplir la table avec des données, effectuer des recherches et des sélections, saisir des requêtes SQL, etc.
.

Pour plus de détails sur le travail avec les bases de données dans MetaTrader 5, veuillez lire l'article"SQLite : Native Work with SQL Databases in MQL5"..
.
Pour exécuter le script dans l'éditeur, cliquez sur "Compile" :
.
Pour travailler avec Python, n'oubliez pas de spécifier le chemin d'accès dans la section "Paramètres / Compilateurs" dans MetaEditor. Et pour travailler avec la bibliothèque MetaTrader 5, installez-la avec la commande :
.
.
Nouveau nom de commande
Les commandes existantes ont été renommées :
MT5Shutdown -> shutdown
MT5TerminalInfo -> terminal_info
MT5Version -> version
MT5CopyRatesFrom -> copy_rates_from
MT5CopyRatesFromPos -> copy_rates_from_pos
MT5CopyRatesRange -> copy_rates_range
MT5CopyTicksFrom -> copy_ticks_from
MT5CopyTicksRange -> copy_tick_range
Nouvelles commandes
La liste des commandes prises en charge a été considérablement élargie. Ajout de fonctions de négociation et d'utilisation de l'historique des transactions, d'obtention d'informations sur les instruments financiers et le compte courant.
.
Exécution de scripts Python sur les graphiques
Désormais, les scripts Python peuvent être exécutés directement sur les graphiques de la plateforme, de la même manière que les programmes MQL5. Ils seront affichés avec des icônes spéciales dans le "Navigateur".
.
Les messages des scripts seront affichés dans la section "Outils / Experts". Si le script utilise la bibliothèque MetaTrader 5, il pourra recevoir des informations sur l'instrument, le compte et la transaction.
Les scripts Python peuvent être exécutés sur le même graphique en parallèle avec d'autres scripts MQL5 et Expert Advisors. Pour arrêter un script si son exécution est en boucle, il suffit de le supprimer du graphique.
Protection supplémentaire
Pour protéger davantage vos comptes lors de l'utilisation de bibliothèques Python tierces, l'option "Désactiver le trading automatique via l'API Python externe" a été ajoutée aux paramètres du terminal.
.
Les scripts Python ne seront autorisés à négocier que si cette option est explicitement désactivée.
.
.
DatabaseImport
Importe les données d'un fichier dans une table.
DatabaseExport
Exporte une table ou le résultat de l'exécution d'une requête SQL vers un fichier CSV. Le fichier est créé en encodage UTF-8.
DatabasePrint
Imprime une table ou le résultat de l'exécution d'une requête SQL dans le journal de l'Expert Advisor.
La nouvelle fonction permettra d'implémenter une interaction pratique entre l'utilisateur et le programme MQL5.
.
.
.
Paramètres généraux
Dans cette section, vous pouvez définir le nombre maximum d'ordres ouverts et de positions que vous pouvez avoir sur votre compte en même temps. Vous pouvez également définir les sessions pendant lesquelles le programme testé ne sera pas autorisé à négocier.
Marge
Vous pouvez ici contrôler entièrement la manière dont la marge sera réservée et le système de comptabilisation des positions qui sera utilisé pendant les tests :
.
.
.
.
Commission
Dans cette section, vous avez un contrôle total sur la façon dont les commissions sont facturées sur toutes les transactions.
.
.
.
.
La mise à jour sera disponible via le système LiveUpdate.
La version stable 5 build 2340 DatabaseImport montre le même DatabaseImport à l'exécution
2020.02.22 14:01:42.338 MQL5 'DOMcopy.ex5' a une nouvelle version non supportée, veuillez mettre à jour votre terminal client.
Bonjour !
J'ai essayé de créer une connexion à une base de données dans l'indicateur, mais pour une raison quelconque, cela n'a pas fonctionné.
Pourquoi n'est-il écrit nulle part, dans quels programmes puis-je utiliser des bases de données ?