![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'aimerais également savoir ce qu'il en est de l'erreur occasionnelle suivante qui apparaît lorsque le terminal est allumé :
.
Si l'ordinateur s'arrête normalement, il ferme les fichiers et s'ouvre ensuite normalement au prochain démarrage.
Un maximum de 32 fichiers peut être ouvert.
Si MT mute, alors les fichiers précédents ne sont pas fermés, et avec les nouveaux fichiers vous en obtenez trop.
Mais peut-être que d'autres scripts/experts ouvrent aussi des fichiers ?
Quelles sont les erreurs dans HistoryBase - je ne sais pas.
Si vous parvenez à reproduire le problème et à comprendre de quoi il s'agit, faites-le moi savoir. Nous allons essayer de le corriger ;)
Un maximum de 32 fichiers peut être ouvert.
Si MT mates, cela signifie que les fichiers précédents ne sont pas fermés, et qu'avec les nouveaux, il y en a trop.
Mais peut-être que d'autres scripts/experts ouvrent aussi des fichiers ?
Si je parviens à analyser les conditions d'erreur, je vous le ferai savoir. La seule chose que je peux dire à l'avance est qu'au moment du démarrage initial du terminal, les Expert Advisors et les indicateurs nécessaires sont initialisés, l'initialisation prend environ 20 secondes. En raison du grand nombre de calculs effectués pour 12 paires de devises à la fois, le terminal raccroche tout simplement. Mais ensuite, après l'initialisation, les calculs sont effectués très parcimonieusement avec une répartition temporelle utilisant un générateur de nombres aléatoires. En d'autres termes, un intervalle est choisi au hasard (de 10 à 30 minutes), après lequel le prochain calcul de canal pour la paire de devises sera effectué. La valeur est écrite dans une variable globale du terminal, puis comparée dans l'Expert Advisor. Ainsi, les calculs volumineux pour 12 paires de devises peuvent parfaitement fonctionner avec le contrôleur basé sur le processeur VIA C3 800MHz sans le démolir. L'intérêt réside dans la facilité d'utilisation de ce contrôleur - taille compacte, poids de 1 kg, Win2000 fonctionne normalement dessus et le plus important est qu'il est sans ventilateur - vous pouvez le mettre même près de votre tête et dormir facilement - il ne produit aucun bruit comme les PC habituels le font avec leurs refroidisseurs. http://www.compactpc.com.tw/ebox-3851.htm
C'est vrai, il fait un peu chaud. Mais j'ai résolu ce problème en accrochant des radiateurs en cuivre de P4 de chaque côté du boîtier. C'est plus frais maintenant.
J'y accède via l'utilitaire RawAdmin depuis n'importe quel endroit disposant d'Internet. En effet, je n'ai besoin du moniteur que pour l'installation initiale du système d'exploitation sur ce mini-ordinateur.
Ainsi, les calculs volumineux pour 12 paires de devises fonctionnent parfaitement sur le contrôleur basé sur le processeur VIA C3 800MHz sans l'arracher. Tout l'intérêt réside dans la facilité d'utilisation de ce contrôleur en fonctionnement - taille compacte, poids de 1 kg, Win2000 fonctionne normalement dessus et le plus important est qu'il est sans ventilateur - vous pouvez le mettre même près de votre tête et bien dormir - il ne fait aucun bruit comme les PC habituels avec leurs refroidisseurs. http://www.compactpc.com.tw/ebox-3851.htm
C'est vrai, il fait un peu chaud. Mais j'ai résolu ce problème en accrochant des radiateurs en cuivre de P4 de chaque côté du boîtier. C'est plus frais maintenant.
J'y accède via l'utilitaire RawAdmin depuis n'importe quel endroit disposant d'Internet. En effet, je n'ai besoin du moniteur que pour l'installation initiale du système d'exploitation sur ce mini-ordinateur.
Combien coûte un tel jouet ? Je n'ai pas trouvé de prix tout de suite.
Ici, j'ai vu l'erreur décrite à nouveau. Je pense que cela se produit le plus souvent dans un marché inactif. Lorsque le marché est très inactif, l'erreur apparaît très régulièrement. Lorsque le marché est actif, l'erreur peut ne pas se produire pendant une longue période. Lorsque le marché est actif, l'erreur peut rester longtemps. Voici la description de l'erreur.
![](https://c.mql5.com/mql4/forum/2006/10/1_2.gif)
![](https://c.mql5.com/mql4/forum/2006/10/2_2.gif)
![](https://c.mql5.com/mql4/forum/2006/10/3_1.gif)
![](https://c.mql5.com/mql4/forum/2006/10/4.gif)
![](https://c.mql5.com/mql4/forum/2006/10/5_1.gif)
![](https://c.mql5.com/mql4/forum/2006/10/6.gif)
Dans un premier temps, à l'ouverture du terminal, l'axe normal des prix disparaît verticalement à droite. Cela peut se produire, par exemple, sur 8 graphiques sur 12. Elle peut être différente à chaque fois. Captures d'écran ci-dessous. En même temps, nous ne voyons aucun message d'erreur dans le journal !
Nous éteignons le terminal et le rallumons. Les graphiques reviennent à leur état normal, mais dans le journal du terminal, l'enregistrement d'erreur suivant apparaît :
2006.10.31 12:20:30 HistoryBase : 48 erreurs dans 'WS_AUDJPYm1440'
2006.10.31 12:20:30 HistoryBase : 42 erreurs dans 'WS_NZDUSDm1440'
2006.10.31 12:20:30 HistoryBase : 272 erreurs dans 'WS_EURJPYm1440'
2006.10.31 12:20:30 HistoryBase : 272 erreurs dans 'WS_EURCHFm1440'
2006.10.31 12:20:30 HistoryBase : 272 erreurs dans 'WS_AUDUSDm1440'
2006.10.31 12:20:30 HistoryBase : 272 erreurs dans 'WS_EURGBPm1440'
2006.10.31 12:20:30 HistoryBase : 273 erreurs dans 'WS_USDJPYm1440'
2006.10.3131 12:20:30 HistoryBase : 272 erreurs dans 'WS_USDCADm1440'
2006.10.31 12:20:30 HistoryBase : 273 erreurs dans 'WS_GBPUSDm1440'
2006.10.31 12:20:30 HistoryBase : 78 erreurs dans 'WS_CHFJPYm1440'
2006.10.31 12:20:29 HistoryBase : 273 erreurs dans 'WS_USDCHFm1440'
2006.10.3131 12:20:29 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'
2006.10.31 12:19:59 HistoryBase : 48 erreurs dans 'WS_AUDJPYm1440'
2006.10.31 12:19:59 HistoryBase : 42 erreurs dans 'WS_NZDUSDm1440'
2006.10.31 12:19:59 HistoryBase : 272 erreurs dans 'WS_EURJPYm1440'
2006.10.10.31 12:19:59 HistoryBase : 272 erreurs dans 'WS_EURCHFm1440'
2006.10.31 12:19:59 HistoryBase : 272 erreurs dans 'WS_AUDUSDm1440'
2006.10.31 12:19:59 HistoryBase : 272 erreurs dans 'WS_EURGBPm1440'
2006.10.3131 12:19:59 HistoryBase : 273 erreurs dans 'WS_USDJPYm1440'
2006.10.31 12:19:59 HistoryBase : 272 erreurs dans 'WS_USDCADm1440'
2006.10.31 12:19:59 HistoryBase : 273 erreurs dans 'WS_GBPUSDm1440'
2006.10.31 12:19:59 HistoryBase : 78 erreurs dans 'WS_CHFJPYm1440'
2006.10.31 12:19:59 HistoryBase : 273 erreurs dans 'WS_USDCHFm1440'
2006.10.31 12:19:59 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'
Pourquoi un tel enregistrement répété pour 12 paires de devises ? Peut-être le journal contient-il des informations sur des erreurs qui se sont produites avant l'arrêt du terminal mais qui n'ont pas été signalées à temps ? Je suppose qu'une erreur ne peut être exclue quelque part dans la logique d'ouverture-fermeture des fichiers, que ce soit par le conseiller expert ou par le terminal lui-même. Sinon, comment ce journal pourrait-il apparaître tous les deux démarrages du terminal lorsque cette erreur se produit ?
Parfois, lorsque le terminal démarre sans aucune erreur visuelle, le journal décrit ci-dessus peut également apparaître, bien que les graphiques semblent normaux.
J'ai déjà commencé à tester à nouveau le conseiller expert sur une devise.
J'ai découvert une particularité. L'erreur
HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
apparaît au moment où le graphique des cotations modifiées est ouvert.
Si nous n'ouvrons pas le graphique, l'erreur n'apparaîtra pas.
Qu'est-ce que ça peut être ? Fermeture invalide du fichier de devis modifié (erreurs de format de fichier) ou est-ce un problème de terminal ?
Les développeurs peuvent-ils essayer de reproduire ce problème et donner leurs suggestions ?
Broker InterBankFX, période D1, limite le nombre de barres dans la fenêtre est 2000.
Paramètres du conseiller expert :
//---- Liste des graphiques à traiter, séparés par une virgule (",")
extern string ChartList = "EURUSD1440m" ;
extern bool SundayToMonday = true ;
//---- Fréquence à laquelle les graphiques seront mis à jour en millisecondes
//---- Plus la valeur est élevée, moins le script utilisera de ressources.
extern int RefreshLuft = 30000 ;
Il est également permis d'importer des fonctions depuis une DLL.
2006.10.31 14:55:53 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:55:21 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:54:49 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:54:18 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:53:46 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:53:14 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:52:43 PM HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:52:13 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:51:42 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:51:11 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
2006.10.31 14:50:40 HistoryBase : 273 erreurs dans 'WS_EURUSDm1440'.
Ceux-ci indiquent la présence des erreurs les plus primitives :
.
- OHLC incorrect (par exemple, haut en dessous de l'ouverture, etc.)
- volumes erronés ou nuls
- erreur de rayonnage des barres de temps, lorsque les barres sont intercalées
Ces barres erronées sont automatiquement coupées de l'historique. Vérifiez votre script en détail.Vérifiez votre script en détail.
Je m'assurerai de le vérifier aujourd'hui...
Des messages d'erreur apparaissent lorsque vous vérifiez les graphiques lus à partir de votre fichier généré.
Cela signifie que les erreurs les plus fondamentales sont présentes :
.
Enquêté.
- dans le code, changez #define DELETE_DAY 0 en #define DELETE_DAY 1 (pour qu'il supprime les lundis, pas les dimanches =)
- lancez l'Expert Advisor avec ChartList = "EURUSD1440"
- ouvrez le graphique autogénéré (WS_EURUSD, D1)
- allez dans le répertoire qui stocke l'historique du courtier actuel
- copiez de là le fichier WS_EURUSD1440.hst dans n'importe quel autre répertoire
- fermer MT (avant de pouvoir supprimer l'EA - peu importe)
- ouvrir MT
Et maintenant la chose la plus intéressante =)
Nous prenons ce fichier, que nous avons sauvegardé, et le comparons avec celui qui reste dans le répertoire MT.
Les droits d'auteur ne m'appartiennent pas (désolé, quoi ? ;), et Chiffres = 0. Je n'ai pas vérifié davantage. ...
Attention, ce n'est pas l'EA qui fait cela - il peut être supprimé avant de fermer le terminal.
Vous allez le vérifier ?
komposter, le courtier InterBankFX n'est pas vraiment un courtier ordinaire ;o). Il possède quelques paramètres spécifiques, que j'ai déjà appris lors de transactions réelles !
Par exemple, la fonction MarketInfo(symbol_for_work,MODE_SPREAD), qui fonctionne parfaitement sur la démo Alpari (donne une valeur fixe dans n'importe quel marché, égale à la différence entre Ask et Bid, exprimée en points) dans le vrai InterBankFX peut changer sa valeur de 1 point. Et cela arrive très souvent. Je l'ai remarqué par accident car mes ordres en attente changent d'un point ici et là toutes les quelques minutes et cela se produit la nuit, ce que je n'ai jamais vu chez Alpari.
Ainsi, au lieu de discuter avec le courtier ou les développeurs de MT4, j'ai simplement remplacé cette fonction par la mienne, ce qui a permis de résoudre le problème "sans grand effort" :
int _MarketInfo(string symb_for_work)
{
if(symb_for_work== "USDCHFm") return(4) ;
if(symb_for_work== "CHFJPYm") return(5) ;
if(symb_for_work=="GBPUSDm") return(3) ;
if(symb_for_work=="USDCADm") return(5) ;
if(symb_for_work=="USDJPYm") return(3) ;
if(symb_for_work=="EURGBPm") return(4) ;
if(symb_for_work=="AUDUSDm") return(4) ;
if(symb_for_work=="EURCHFm") return(4) ;
if(symb_for_work=="EURJPYm")) return(5) ;
if(symb_for_work=="EURUSDm") return(2) ;
if(symb_for_work=="NZDUSDm") return(6) ;
if(symb_for_work=="AUDJPYm") return(6) ;
return(0) ;
}
J'espère que vous avez compris l'allusion. ;o)))
Pourriez-vous construire quelque chose de similaire dans EA ? D'autant plus que tout est beaucoup plus simple avec Digits! Pour les cours en yens, c'est 2, et pour tous les autres, c'est 4.