Erreurs, bugs, questions - page 1408

 
Yury Kirillov:

Vous m'avez complètement embrouillé les gars. Pour résumer : 1. Je n'ai pas besoin d'installer un nouveau programme (supplémentaire) (terminal). 2. Dans le terminal existant (déjà installé), je dois ouvrir un nouveau compte de démonstration sur MQ et dans ce terminal (copie installée du programme), tout sera mis à jour. 3. Dans les autres copies du programme (terminal), rien ne sera mis à jour.

N'est-ce pas ?

Soit vous installez un nouveau terminal à partir de MQ et vous le connectez au serveur de démonstration MQ. Ou connectez le terminal existant. Mais il est préférable (pour moi) d'avoir des terminaux séparés pour chaque serveur.

Dès que le terminal connecté à MQ est mis à niveau, tous les autres terminaux voudront également le faire - c'est à vous de les laisser faire ou non.

 
Artyom Trishkin:

Dès que le terminal connecté au MQ est mis à jour, tous les autres terminaux voudront également être mis à jour.

Ils ne
 
Valerii Mazurenko:
Ils ne le feront pas.
Les miens le font. Qu'est-ce que je fais de mal ?
 

Événement incorrect dans l'onglet Calendrier MetaQuotes-Demo

Et il apparaît également dans OBJ_EVENT

 

Concernant l'annonce de la nouvelle construction 1200.

MQL5: Расширен формат структуры MqlTick. Теперь в ней передается время прихода тика в миллисекундах, а также флаги, позволяющие определить, какой именно параметр тика изменился.

De telles solutions semblent très croustillantes lorsque lelong time_msc est ajouté à la structure en même temps que ledatetimetime. La question est de savoir pourquoi le time est nécessaire alors ? C'est un gaspillage insensé de ressources.

Il en va de même pour les drapeauxuint, alors queuchar serait suffisant ou au moins ushort (avec une réserve significative pour l'avenir). Et pourquoi uint est nécessaire ici, cela dépasse l'entendement.Malheureusement, les développeurs ont complètement cessé de penser à un stockage rationnel des données. Un tableau de ticks représente à lui seul une quantité colossale. Et voilà que la mémoire est dilapidée avec tant de négligence...

Bref, en parlant de temps. Il est peut-être temps d'introduire dans MQL un type de temps normal qui contiendrait des millisecondes, sinon il y aura toujours un tas de ces béquilles.D'autant plus que la datetime elle-même, dans sa forme actuelle, est une chose très irrationnelle : elle dépense 8 octets alors qu'elle ne contient que des secondes - et qui en a besoin ? 4 octets(uint) suffiront à cette tâche pour les 90 prochaines années (et il n'y a pas de Duncan McLeod parmi nous).

 

Il a été porté à mon attention que les fonctionsOnTesterInit, OnTesterPass, OnTesterDeinit permettent d'appeler des fonctions de trading qui, si elles sont appelées, sont exécutées sur le compte de trading, et non dans le testeur. Bien que le code soit exécuté par le testeur.

C'est vrai ?

Dans l'affirmative, de tels appels dans les EA du marché sont-ils interdits ou, pendant les tests, un produit du marché peut-il commencer à trader de manière inattendue sur un compte réel ?

 
Artyom Trishkin:

Soit vous installez un nouveau terminal à partir de MQ et vous le connectez au serveur de démonstration MQ. Ou connectez le terminal existant. Mais il est préférable (pour moi) d'avoir des terminaux séparés pour chaque serveur.

Dès que le terminal connecté à MQ est mis à jour, tous les autres terminaux voudront également se mettre à jour - c'est à vous de les laisser faire ou non.

En résumé :

1. L'ajout d'un compte de démonstration MQ au terminal existant a conduit à sa mise à niveau vers la dernière version.

2. Aucun des autres terminaux installés (sans comptes de démonstration de MQ) n'a été mis à jour.

Merci à tous pour votre aide ! :-)

 
Yury Kirillov:

Résultats :

1. L'ajout du compte de démonstration MQ au terminal existant a permis de le mettre à jour avec la dernière version.

2. Aucun des autres terminaux installés (sans comptes de démonstration de MQ) n'a été mis à jour.

Merci à tous pour votre aide ! :-)

Je parle de MT4. Tous les terminaux récupèrent toujours la mise à jour disponible des terminaux de MetaQuotes connectés au serveur de démonstration MQ.
 
Yury Kirillov:

Résultats :

1. L'ajout du compte de démonstration MQ au terminal existant a permis de le mettre à jour avec la dernière version.

2. Aucun des autres terminaux installés (sans comptes de démonstration de MQ) n'a été mis à jour.

Merci à tous pour votre aide ! :-)

Si vous pensez à mettre à jour le "zoo des terminaux" restant :) Vous n'avez pas besoin d'ouvrir plusieurs comptes MQ de démonstration - vous pouvez vous débrouiller avec un seul compte MQ de démonstration.
 
Alexey Navoykov:

Concernant l'annonce de la nouvelle construction 1200.

De telles solutions semblent très croustillantes lorsque lelong time_msc est ajouté à la structure en même temps que ledatetimetime. La question est de savoir pourquoi le time est nécessaire alors ? C'est un gaspillage insensé de ressources.

Il en va de même pour les drapeauxuint, alors queuchar serait suffisant ou au moins ushort (avec une réserve importante pour l'avenir). Et pourquoi uint est nécessaire ici, cela dépasse l'entendement.Ce qui est triste, c'est que les développeurs ont complètement cessé de penser à un stockage rationnel des données. Un tableau de ticks représente à lui seul une taille colossale. Et voilà que la mémoire est dilapidée de façon si inconsidérée...

Bref, en parlant de temps. Il est peut-être temps d'introduire dans MQL un type de temps normal qui contiendrait des millisecondes, sinon nous n'aurons que ces béquilles.D'autant plus que le datetime lui-même, dans sa forme actuelle, est une chose très irrationnelle : il consomme 8 octets mais ne contient que des secondes - et qui en a besoin ? 4 octets(uint) suffisent à cette tâche pour les 90 prochaines années (et Duncan McLeod n'est pas parmi nous).

Cette solution préserve la compatibilité avec les anciens programmes qui utilisent le temps en secondes ou SymbolInfoTick().

D'après notre expérience, le jeu du "faisons un octet ou deux" conduit à des problèmes monstrueux à l'avenir. Vous ne le comprenez que lorsque vous écrivez des logiciels pour les 10 années à venir.

Les 4 octets de date en secondes se termineront en 2038 (22 ans de plus), et non dans 90 ans.