Erreurs, bugs, questions - page 170

 

Bonjour. J'ai ce problème, c'est peut-être simple, mais je suis déjà épuisé.

J'ai testé le conseiller expert sur l'historique et il n'arrête pas d'afficher l'erreur suivante

12:17:41 TIC : chargement réussi
12:19:07 Test Generator : erreur de données non appariées (la valeur basse 87.6580 à 2010.07.08 00:00 n'est pas atteinte depuis la période la plus basse, le prix bas 87.6590 ne correspond pas)
12:19:07 Test Generator : erreur de données non appariées (limite de volume 6029 à 2010.08.30 12:00 dépassée)
12:19:09 Test Generator : unmatched data error (la valeur haute 81.8880 à 2010.10.12 16:00 n'est pas atteinte à partir de la période la plus basse, le prix haut 81.8470 ne correspond pas)
12:19:09 Test Generator : erreur de données non appariées (la valeur basse 81.6610 à 2010.10.12 16:00 n'est pas atteinte depuis la période la plus basse, le prix bas 81.7620 ne correspond pas)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Faible volume, fort volume, je ne sais pas quelles valeurs changer.

J'ai changé MiniLotSize à 0.1 et 1 et 0.01, j'ai aussi changé MaxLotSize et l'ai mis à 0 (paramètres du courtier) mais il ne se négocie toujours pas,

Échec complet... Je ne sais pas quelles valeurs modifier... Aidez-moi. Je vous remercie d'avance...

 
A2dn:

Bonjour. J'ai ce problème, c'est peut-être simple, mais je suis déjà épuisé.

J'ai testé l'EA sur l'historique et je continue à avoir cette erreur

12:17:41 TIC : chargement réussi
12:19:07 Test Generator : erreur de données non appariées (la valeur basse 87.6580 à 2010.07.08 00:00 n'est pas atteinte depuis la période la plus basse, le prix bas 87.6590 ne correspond pas)
12:19:07 Test Generator : erreur de données non appariées (limite de volume 6029 à 2010.08.30 12:00 dépassée)
12:19:09 Test Generator : erreur de données non appariées (la valeur haute 81.8880 à 2010.10.12 16:00 n'est pas atteinte depuis la période la plus basse, le prix haut 81.8470 ne correspond pas)
12:19:09 Test Generator : erreur de données non appariées (la valeur basse 81.6610 à 2010.10.12 16:00 n'est pas atteinte depuis la période la plus basse, le prix bas 81.7620 ne correspond pas)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Faible volume, fort volume, je ne sais pas quelles valeurs changer.

J'ai changé MiniLotSize à 0.1 et 1 et 0.01, j'ai aussi changé MaxLotSize et l'ai mis à 0 (paramètres du courtier) mais il ne se négocie toujours pas,

Échec total... Je ne sais pas quelles valeurs modifier... Aidez-moi. J'apprécierais vraiment...

Ces messages suggèrent une incohérence des données historiques de différentes périodes. Les paramètres de négociation n'ont rien à voir avec cela. Il suffit de retélécharger toutes les données manuellement.

PS : Cette question est liée à MT4 et non à MQL5.

 
stringo:

La fonction ChartGetInteger(chartID,CHART_WIDTH_IN_PIXELS) avec des graphiques maximisés donne la taille de la fenêtre avant la maximisation si la capture d'écran n'est pas prise à partir du graphique actuel, ce qui semble être une erreur.
 

J'ajoute l'indicateur au graphique avec la fonction ChartIndicatorAdd(). Maintenant, je n'arrive pas à trouver la fonction qui permet de le supprimer du graphique.

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5
 

les développeurs prévoient-ils de passer un paramètre lors de l'appel du (nouveau) constructeur de classe ? il est problématique de travailler avec des tableaux dynamiques dans les classes.

le spécificateur d'accès private , lors de l'héritage, ne cache pas les méthodes du parent avec le spécificateur public, si je ne me trompe pas, il ne devrait pas en être ainsi

ZS : corriger l'aide - exemple : "Référence MQL5 / Fondamentaux du langage / Programmation orientée objet / Héritage".

Пример:

//--- Базовый класс Фигура
class CShape{}
  {.........

et ci-dessous

//--- производный класс Круг
class CCircle{} : public CShape        // после двоеточия указывается базовый класс,
  {.................

{} ne compile pas

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 

Aux développeurs.

Il a été constaté que PositionsTotal() et OrdersTotal() ne fonctionnent pas correctement dans le bloc d'initialisation (du moins à mon avis).

Quel est le problème ?

Si l'initialisation est effectuée après le changement de compte de trading, _UninitReason = 6(REASON_ACCOUNT), alors ces fonctions renvoient 0.

Bien que les positions et les ordres existent réellement.

PS

J'ai autorisé les transactions lors du changement de compte et j'ai un certain contrôle sur le premier démarrage de l'expert.

Ainsi, le Conseiller Expert voit qu'il s'agit du premier démarrage sur un nouveau compte, mais il ne peut pas déterminer si les positions et les ordres existent ou non dans le bloc d'initialisation.

En tout cas, tout fonctionne bien dans le bloc de traitement des tick et ces fonctions renvoient des données réelles sur le nombre de positions et d'ordres.

Il semble fonctionner, mais il fonctionne étrangement, pas même de temps en temps, mais occasionnellement. Parfois ça marche, parfois ça ne marche pas...


PPS

D'après ce que j'ai compris, le traitement consiste à s'endormir pendant un certain nombre de secondes. Je dois maintenant trouver combien de secondes...
 
IgorM:

ZS : corriger l'aide - exemple :"Référence MQL5 / Notions de base du langage / Programmation orientée objet / Héritage "

et ci-dessous

{} ne compile pas.

Merci pour le message, il a été corrigé.
 
Rosh:
Merci pour le message, nous l'avons corrigé.

Je n'ai peut-être pas tout expliqué dans mon précédent message, mais lorsque je travaille avec des constructeurs de classe, c'est généralement comme ça :

http://www.delphisources.ru/pages/faq/faq_delphi_basics/Constructor.php.html ou http://ru.wikipedia.org/wiki/Конструктор_(programmation)

J'ai été désagréablement surpris (Référence MQL5 / Fondamentaux du langage / Types de données / Structures et classes ), par la restriction :

"Le constructeur n'a pas de type de retour (vous pouvez spécifier le type void). Dans MQL5, les constructeurs n'ont pas de paramètres d'entrée. Ainsi, chaque classe ne peut avoir qu'un seul constructeur".

Mais en utilisant un constructeur standard (c'est-à-dire sans créer le mien, ma classe utilise l'allocation dynamique de mémoire pour les tableaux), l'erreur "Array out of Range" se produit, ce qui ne se produit pas si la variable de type classe est déclarée - c'est-à-dire sans utiliser le nouvel opérateur

//index_currency    aud,cad; // работает
index_currency    *aud,*cad; // не работает

int OnInit(){
   aud = new index_currency; cad = new index_currency; // неправильно работает
   aud.create(AUDX,100,PERIOD_M1,PRICE_CLOSE);
   cad.create(CADX,100,PERIOD_M1,PRICE_CLOSE);

il n'y a pas d'erreur si vous utilisez un pointeur vers une instance de classe, mais il n'y a pas d'erreur si vous la déclarez sans * : index_devise aud,cad ;

Delphi Constructor - Ключевое слово определяет процедуру Name конструктора для класса (справочник функций и процедур - Delphi Sources)
Delphi Constructor - Ключевое слово определяет процедуру Name конструктора для класса (справочник функций и процедур - Delphi Sources)
  • Andrey Simagin
  • www.delphisources.ru
1 type Class declaration     ...     Constructor Name; {Overload;}     ...   end; 2 type Class declaration     ...     Constructor Name(Arguments); {Overload;}     ...   end; Ключевое слово Constructor определяет процедуру Name конструктора для класса. При создании объекта, вы вызываете метод Constructor класса, а не объекта...
 
IgorM:

mais en utilisant un constructeur standard (c'est-à-dire sans créer le mien, ma classe utilise l'allocation dynamique de mémoire pour les tableaux), j'obtiens l'erreur "Array out of Range", qui ne se produit pas si je déclare une variable de type classe - c'est-à-dire si je n'utilise pas le nouvel opérateur

Lisez les articles L'ordre de création et de destruction des objets dans MQL5 et Quand utiliser les pointeurs dans MQL5.
 
IgorM:

il n'y a pas d'erreur si un pointeur vers l'instance de la classe est utilisé, si deux ou plus, une erreur se produit, pas d'erreur si déclaré sans *: index_devise aud,cad ;

Cela ne devrait pas arriver. Besoin du code source, mieux vaut écrire au Service Desk.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.