Erreurs, bugs, questions - page 1906

 
zenz:

Bonjour, Dans MT4, lorsque vous supprimez un ordre limite à l'intérieur d'un spread, il y a souvent une situation d'erreur - l'ordre à supprimer se bloque, ce qui ne peut être résolu qu'en rechargeant le terminal. Pour autant que j'aie compris le mécanisme , il se produit de la manière suivante :

1 ) Nous fixons une limite à l'intérieur du spread, proche du prix Ask (pour les ordres d'achat Limit) ou Bid (pour les ordres devente Limit) et après un certain temps nous essayons de la supprimer.

2 ) Nous envoyons une commande OrderDelete(), pendant que cette commande va au serveur, l'ordre peut déjà être exécuté sur le serveur (il est à l'intérieur du spread, très proche du prix d'activation). Il semble que lorsque la commande atteint le serveur, elle sera appliquée à l'ordre de marché et nous obtiendrons une erreur dans le terminal et un ordre gelé. Dans ce cas, l'ordre dans le terminal reste un ordre limité (également défini comme un ordre limité par la fonction OrderType()) et n'apparaîtra comme un ordre au marché qu'après un redémarrage du terminal. Si vous continuez à le supprimer en tant que limite un , vous verrez une erreur dans le journal de l'Expert Advisor avec le code : 3, et dans le journal du terminal :[Paramètres non valides]. En fait, aucune action n'est possible avec un tel ordre suspendu - c'est un ordre à cours limité dans le terminal du client et un ordre au marché sur le serveur . L'ordre ne peut pas non plus être supprimé manuellement.

Je joins un EA simplifié (seulement pour Buy Limit), pour la reproduction de l'erreur et un profil avec 8 EAs installés en parallèle (l'erreur apparaît plus rapidement, que si l'erreur est capturée par un EA - bien qu'elle se produise aussi avec un EA installé). Lalimite de l' ordre d'achat est fixée à 1 point à cinq chiffres en dessous du cours vendeur et est supprimée après 1 seconde après avoir été fixée. Si vous placez un ordre même 5 points en dessous du prix Ask et que vous le supprimez après un nombre quelconque de secondes/minutes/heures, l'erreur se produira encore de temps en temps, mais moins fréquemment car le mécanisme de son apparition ne change pas.

Vous devez démarrer le terminal et attendre que l'ordre en attente apparaisse. En général, vous ne devez pas attendre plus d'une heure, selon l'activité du marché.

Juste au cas où, système :

MicrosoftWindows XP (PC basé sur X86), IE 08.00, 2 x Intel Core i3-2120@ 3.30GHz, RAM : 2421 / 3981 Mb, HDD : 195187 / 666422 Mb, GMT+03:00

MT4: Version 4.00 Build 1090 (19 mai 2017)

MetaEditor : Version 5.00 build 1601 (19 mai 2017)


Maintenez Windows à jour et utilisez votre licence
 
Vladimir Zubov:

Mettre à jour Windows et utiliser la licence

Conneries.


Pour les développeurs - les informations sur le système sont tirées du journal du terminal. Je ne sais pas pourquoi il ne montre pas que le système est avec le service pack SP3.

 
zenz:

Conneries.


Pour les développeurs - les informations sur le système sont tirées du journal du terminal. Je ne sais pas pourquoi il ne montre pas que le système est avec le service pack SP3.


Renate a écrit que XP et Vista ne seront plus pris en charge à partir du 10 juin.
 
Alexey Volchanskiy:

Renat a écrit que XP et Vista ne seront plus pris en charge à partir du 10 juin.
Pas à partir du 10 juin, mais à partir du 1er octobre. Je suis conscient de cela. Pour l'instant, le système avec les mises à jour répond à toutes les exigences. Et j'ai remarqué les problèmes de commande il y a plus de six mois. Je n'utilisais pas Limit à l'époque, donc ce n'était pas critique.
 
zenz:

Conneries.


Pour les développeurs - les informations sur le système sont tirées du journal du terminal. Je ne sais pas pourquoi il ne montre pas que le système est avec le service pack SP3.


Il est donc normal d'utiliser des logiciels volés et de faire des réclamations ?
 

Bonjour !

le suivi ne fonctionne pas

Je l'ai réglé sur 30000, mais le SL ne passe qu'à 10000.

https://yadi.sk/i/JY5Na3z23Jr8jT

Avez-vous des suggestions sur la façon de résoudre ce problème ?

Merci !


 
Vladimir Zubov:

Il est donc normal d'utiliser des logiciels volés et de faire des réclamations ?

Qui utilise des logiciels volés et fait des réclamations ? Dites-moi, en tant qu'expert de cette question))

J'ai signalé une erreur dans le terminal, j'ai joint une description détaillée et même un expert pour reproduire l'erreur. Tout ceci est destiné aux développeurs, et aux traders qui pourraient être affectés par cette erreur. C'est à cela que sert ce fil de discussion, d'après ce que j'ai compris. Mais vos questions sont hors sujet. Vous serez servi par le service juridique de Microsoft.
 
ORDER_TIME_EXPIRATION réduit les secondes définies dans Request.expiration.
ORDER_TIME_EXPIRATION de l'ordre annulé ne renvoie pas la date d'expiration fixée.
 
Pourquoi CTrade::PositionOpen ne comporte-t-il pas de vérification OrderCheck parmi les vérifications ?
 
Erreur d'optimisation du compilateur
#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  color Color1 = (color)ColorToARGB(clrWhite, 0xFF);
  color Color2 = -1;
  
  Print(TOSTRING(Color1 == Color2));   // Color1==Color2 = true
  Print(TOSTRING(Color1 == -1));       // Color1==-1 = false
  Print(TOSTRING((int)Color1 == -1));  // (int)Color1==-1 = true
  Print(TOSTRING((uint)Color1 == -1)); // (uint)Color1==-1 = true
}