Erreurs, bugs, questions - page 2814

 
Fast235:

mon application ne répond pas du tout, elle ne doit pas être amicale avec ryzens

et le logiciel vous dit de regarder dans PowerManager, essayez de changer l'état minimum du CPU, habituellement c'est 5%, changez-le à 99-100%.

C'est fait.


et dans quel mode de fonctionnement avez-vous une telle rougeur, si dans le testeur, alors peut-être ainsi devrait être, je n'ai pas aller dans le travail de ce programme, je me souviens que le microfreeze avec elle regarder

Si vous voulez que MT fonctionne, vous devez peut-être changer la fréquence minimale du CPU, afin qu'il ne soit pas saccadé ; il ne consommera pas plus en période d'inactivité.

Vous pouvez voir la rougeur dans n'importe quel mode.

 
fxsaber:

C'est fait.

Des rougeurs sont observées dans tous les modes.

sfc /scannow (commande d'analyse des fichiers système)

malwarebytes (la version gratuite fera l'affaire, elle recherche tout ce qui est nuisible)

 
Je ne comprends pas pourquoi l'EA ne ferme pas les transactions. Il y a 2 signaux, disons 40 et 20. Je mets 30 pour ouvrir et laisse 10 pour fermer. En théorie, lorsque l'un des indicateurs change de mouvement, il y a un signal de clôture, mais l'opération continue de fonctionner. Comment le réparer ?
 
Valentin Denisov:
Je ne comprends pas pourquoi le conseiller expert ne ferme pas les transactions. J'ai 2 signaux, par exemple, 40 et 20. Je règle le signal pour qu'il s'ouvre à 30 et se ferme à 10. En théorie, lorsque l'un des indicateurs change de mouvement, il y a un signal de clôture, mais l'opération continue quand même à fonctionner. Comment le réparer ?

Rien n'est clair. Quels signaux ? Quelle quarantaine ?

 
Vladimir Karputov:

Rien n'est clair. Quels signaux ? Quelle quarantaine ?

Il existe des signaux thresholdopen et thresholdclose, par défaut ils sont de 10. Les modèles sont issus des signaux des indicateurs. Supposons qu'il y ait 2 indicateurs avec des motifs 20 et 40. Après le calcul de ces modèles, nous obtenons 30 ou 10. Et selon la documentation, si nous fixons l'ouverture à 30 et la fermeture à 10, alors dès qu'un des indicateurs se retourne, la transaction devrait être fermée automatiquement. Mais cela ne se produit pas. Les transactions sont fermées et ouvertes uniquement lorsque les deux indicateurs sont inversés, c'est-à-dire à - 30 et +30.
 
Valentin Denisov:
Il existe des signaux thresholdopen et thresholdclose, ils sont de 10 par défaut. Les modèles sont issus des signaux des indicateurs. Supposons qu'il y ait 2 indicateurs avec des motifs 20 et 40. Après le calcul de ces modèles, nous obtenons 30 ou 10. Et selon la documentation, si nous fixons l'ouverture à 30 et la fermeture à 10, alors dès qu'un des indicateurs se retourne, la transaction devrait être fermée automatiquement. Mais cela ne se produit pas. Les transactions sont fermées et ouvertes uniquement lorsque les deux indicateurs sont inversés, c'est-à-dire à - 30 et +30.

Il n'y a pas de "disons". Formez un EA dans l'assistant MQL5. Attachez-le à votre poste et alors seulement vous parlerez. Jusqu'à présent, vous n'avez pas bien compris comment fonctionnent les conseillers experts basés sur les signaux des indicateurs personnalisés.

Au fait, avez-vous lu l'articleAssistant MQL5 : la nouvelle version? Avez-vous compris l'image de l'article

Avez-vous compris comment cela fonctionne ?

Мастер MQL5: Новая версия
Мастер MQL5: Новая версия
  • www.mql5.com
В терминал MetaTrader 5 продолжают вноситься улучшения, добавляется новый функционал. В очередном (439) билде MetaTrader 5 обновился и Мастер MQL5, который позволяет создавать советники с еще более гибкими торговыми правилами. В этой статье мы покажем новые возможности Мастера MQL5 и расскажем об изменениях в архитектуре экспертов, получаемых...
 
Vladimir Karputov:

Il n'y a pas de "disons". Formez un EA dans l'assistant MQL5. Attachez-le à votre poste et alors seulement vous parlerez. Jusqu'à présent, vous n'avez pas bien compris comment fonctionnent les conseillers experts basés sur les signaux des indicateurs personnalisés.

Au fait, avez-vous lu l'articleAssistant MQL5 : la nouvelle version? Avez-vous compris l'image de l'article

Avez-vous compris comment cela fonctionne ?

C'est ça le truc, j'ai tout compris. Mais ça ne fonctionne pas correctement. Je dois utiliser des béquilles, j'aimerais ne pas avoir à le faire.
Si nous définissons une ouverture supérieure à la fermeture, la transaction sera exécutée lorsque l'ouverture est supérieure à la fermeture, et sera fermée lorsqu'elle se situe entre l'ouverture et la fermeture. Si close est supérieure à close, alors la position sera ouverte lorsque le signal est supérieur à open ou close, et fermée lorsqu'il est supérieur à close.
 
Valentin Denisov:
Le fait est que j'ai tout compris. Mais il ne fonctionne pas comme il le devrait. Je dois utiliser des béquilles parce que je veux que ça marche sans elles.
Si l'ouverture est supérieure à la fermeture, la transaction sera ouverte lorsque le signal est supérieur à l'ouverture et fermée lorsque le signal se situe entre l'ouverture et la fermeture. Si la clôture est plus grande, alors la position s'ouvrira lorsque le signal est plus grand que l'ouverture ou la clôture, et se fermera lorsqu'il est plus grand que la clôture.
Mais cette règle ne fonctionne pas. Et je ne comprends pas pourquoi.
 
Valentin Denisov:

"Béquilles", "bug" - le lexique de ceux qui nagent dans le sujet et tentent de faire passer leurs erreurs pour des erreurs du terminal.

Veuillez créer un EA dans l'assistant MQL5. Joignez-le à votre message et seulement après, vous parlerez.

 

Erreur pendant l'exécution :

class A {
public:
        A( int ) { Print( 1 ); }
        A( A&  ) { Print( 2 ); }
};
void OnStart()
{       
        int a = 5;
        {
                A a( a );         //(1)
        }
}

  • Résultat dans MQL : 2
  • Attendu dans MQL : 1

En fait, cet exemple est exécuté par les règles C++.

void OnStart()
{
        int a = 5;
        {
                A a( a );         //(2)
        }
}

alors que l'exemple suivant fonctionne en MQL par ses règles (différentes de celles du C++)

void OnStart()
{       
        int a = 5;
        {
                int a = a;         //(3)
                printf( "%d", a );
        }
}

  • Résultat (3) dans MQL : 5
  • en C++ : 0 (ou un nombre aléatoire)

Une variable est considérée comme déclarée soit

  • à partir du moment de l'apparition (*), ou
  • depuis la fin de la déclaration (**)

Dans С++ il y a une seule approche (*), alors que dans MQL dans le cas de (2) c'est (*), et dans le cas de (3) c'est (**). Quelle est la différence fondamentale entre (2) et (3) ?

C'est la question pourquoi en MQL dans un cas une variable est considérée comme déclarée à partir du moment où elle apparaît et dans l'autre cas à partir du moment où la déclaration est terminée ?