Erreurs, bugs, questions - page 1258

 
sanyooooook:

Au fait, qui sait comment faire pour que, lorsque l'on clique sur le bouton, celui-ci soit serré si le LKM est enfoncé et relâché si le LKM est relâché ?

et ce qui presserait le bouton pour cliquer et relâcher et ce qui relâcherait le bouton pour cliquer et relâcher, n'importe quoi)

ZS : bien sûr, vous pouvez modifier une propriété juste après avoir publié le LKM, mais est-ce ainsi que cela se fait ? )

Oui. Vous devrez contrôler vous-même l'état des objets si vous voulez le faire à votre façon. )
 
tol64:
Oui. Vous devrez contrôler l'état de l'objet vous-même, si vous voulez le faire à votre façon. )

tout serait parfait, mais le bouton n'est pas pressé lorsque le LKM est pressé, et n'est pressé que lorsque le LKM est relâché, non-sens ;)

ZS : tu veux appuyer sur le bouton ? laisse tomber )

Mais si vous faites autrement, étant donné queOnChartEvent ne fonctionne pas dans le testeur, alors en général, aucune façon dans le testeur avec les copies des copies ne peut pas ne pas fonctionner.

 
sanyooooook:

tout serait parfait, mais le bouton n'est pas pressé lorsque le LKM est pressé, et n'est pressé que lorsque le LKM est relâché, non-sens ;)

ZS : tu veux appuyer sur le bouton ? laisse tomber )

Mais si vous faites autrement, étant donné queOnChartEvent ne fonctionne pas dans le testeur, alors en général, pas moyen dans le testeur avec lops.

Avec le testeur, beaucoup de choses ne fonctionnent pas encore. Reste à écrire dans le servicedesk puis à suivre les mises à jour. )

Et en dehors du testeur, vous devez écrire vos propres gestionnaires pour que les contrôles fonctionnent comme vous le souhaitez.

 
sanyooooook:

tout serait parfait, mais le bouton n'est pas pressé lorsque le LKM est pressé, et n'est pressé que lorsque le LKM est relâché, non-sens ;)

ZS : tu veux appuyer sur le bouton ? laisse tomber )

Mais si vous faites autrement, étant donné que OnChartEvent ne fonctionne pas dans le testeur, alors pas moyen dans le testeur avec des copies de ne pas fonctionner.

OnChartEvent() gère les événements typiques et ceux de l'utilisateur. En ce qui concerne les événements personnalisés, ce gestionnaire dans le testeur fonctionne !!! Voir mon article Prescriptions in MQL5 - Handling Custom Chart Events ( en anglais)Il y a un robot CustomEventProcessor. Il s'échange dans le Testeur.

Le problème du testeur - c'est le graphisme... J'ai écrit plus tôt au Service Desk au sujet des graphiques, jusqu'ici seulement des promesses...



Рецепты MQL5 - обработка пользовательских событий графика
Рецепты MQL5 - обработка пользовательских событий графика
  • 2014.10.10
  • Dennis Kirichenko
  • www.mql5.com
В данной статье рассматриваются аспекты проектирования и разработки системы пользовательских событий графика в среде MQL5. Предлагается пример подхода для классификации событий. Приводится программный код событийного класса и класса-обработчика пользовательских событий.
 
denkir:

OnChartEvent() gère les événements typiques des graphiques et les événements personnalisés. En ce qui concerne les événements personnalisés, ce gestionnaire dans le testeur fonctionne !!! Voir mon article Prescriptions in MQL5 - Handling Custom Chart Events ( en anglais)Il y a un robot CustomEventProcessor. Il s'échange dans le Testeur.

Le problème avec le testeur, c'est que les graphiques... J'ai déjà écrit au Service Desk à propos des graphiques, mais ce ne sont que des promesses jusqu'à présent...



Ok, merci, je vais regarder, jusqu'à présent je l'ai fait en vérifiant la propriété du bouton.
 

La situation est la suivante : je crée un objet OBJ_TEXT sur le graphique. Ensuite, je supprime manuellement cet OBJ_TEXT du graphique. J'essaie ensuite de retrouver l'objet supprimé sur le graphique et j'obtiens une erreur (c'est logique : l'objet a été supprimé, il est donc introuvable). J'essaie ensuite de déplacer le point d'ancrage de l'objet OBJ_TEXT supprimé avec ObjectMove, mais je n'obtiens aucune erreur.

Question : ObjectMove doit-il émettre une erreur lorsqu'il tente de déplacer le point d'ancrage d'un OBJ_TEXT supprimé ?

 

S'il vous plaît, informez qui sait : lorsque vous essayez d'afficher un indicateur dans le visualiseur (testeur), une erreur 4014 apparaît, bien qu'une telle erreur ne se produise pas lorsque vous exécutez le même code dans la fenêtre du terminal.

Le code est le suivant :

            Indic_Handle[Indic_Total-1]=iMA(NULL,0,MA_Period,MA_Shift,MODE_LWMA,PRICE_CLOSE);

            if(Indic_Handle[Indic_Total-1]==INVALID_HANDLE)

              {Error_Message;return(false);}


            if(F_If_Indic_Exist(Indic_Handle[Indic_Total-1])==false) // Проверяем есть ли уже индикатор с таким хендлом. Если нет - добавлем новый индикатор

               if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false) 

                 {Error_Message;return(false);}


La commande "Error_Message" est définie par une macro :

#define Error_Message_Exp Alert(__FILE__+": "+__FUNCTION__+": Error at line "+(string)__LINE__+". Last Error code: "+(string)GetLastError())


Lorsqu'il est exécuté dans le terminal : Le code fonctionne comme il le devrait, sans erreurs. L'indicateur est tracé sur le graphique, la variable"Indic_Handle[Indic_Total-1]" se voit attribuer une valeur de handle.

Mais lorsqu'il est exécuté dans le testeur et/ou dans le visualiseur. Une erreur est imprimée dans le journal :

2014.12.15 21:16:10 Core 1 2014.01.01 00:00:00   Alert: GA_Incl.mqh: F_Offspr_Init: Error at line 149. Last Error code: 4014

(ligne "149" - est la ligne"{Error_Message;return(false);}" sous la ligne "148" :"if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)".

L'erreur se produit évidemment lors de l'exécution de la fonction "ChartIndicatorAdd" qui est exécutée différemment dans l'environnement du testeur et dans l'environnement du terminal.

Le décodage du code d'erreur n'est pas clair :

ERR_FONCTION_NON_AUTORISÉE

4014

La fonction système n'est pas autorisée à être appelée

Sur le forum, j'ai trouvé une mention de cette erreur survenant dans la même situation par un autre utilisateur, mais sa question reste sans réponse. (https://www.mql5.com/ru/forum/1111/page763#comment_208678)

J'ai découvert que si je continue à exécuter le programme dans le testeur malgré l'erreur, l'indicateur requis sera appliqué au graphique. Mais le manche de l'indicateur ne correspond pas à la valeur de la variableIndic_Handle[Indic_Total-1]. (Mais l'indicateur lui-même est créé après quelques ticks, après avoir appelé la commande ChartIndicatorAdd.

Aidez-moi, s'il vous plaît

Merci.

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
methaqvot idi notification n'est pas venue, j'attends depuis la deuxième heure... Il y a trois heures, ça marchait...
 
valeryk:

C'est vrai, ça ne s'imprime pas. Mais ça marche. Essayez de suivre l'événement avec des graphiques.

Ça ne marche pas pour moi. Le fait de cliquer sur un objet dans le testeur ne déclenche pas d'événement. Sur la démo/réelle - ça marche. Qu'est-ce qui ne va pas ? (MT4)
 
valeryk:
J'appelle OnTick() au moment du clic et je vérifie l'état des boutons à cet endroit.

Dans le testeur, OnChartEvent() ne crée pas d'événement de clic sur l'objet. Comment appeler OnTick() sur un clic si le testeur ne voit pas le clic ?

Effrayant... Je l'ai imaginé... Parler à l'ombre du père d'Hamlet...

Raison: