Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1044

 
Galim_V:

Existe-t-il une solution logicielle simple pour résoudre mon problème ?

Il y en a une !


 
Yevhenii Levchenko:

Oui !


Merci de votre réponse. Oui, nous connaissons la valeur actuelle de l'échange. Et j'ai besoin du résultat de la comparaison avec la valeur d'hier.

 
Galim_V:

Merci de votre réponse. Oui, nous connaîtrons la valeur actuelle de l'échange. Et j'ai besoin du résultat de la comparaison avec la valeur d'hier.

Enregistrez la valeur d'hier dans une variable et comparez ! :)

 
Yevhenii Levchenko:

Enregistrez la valeur d'hier dans une variable et comparez ! :)

Lorsque vous redémarrez le terminal, sera-t-il sauvegardé ? Ou bien parlez-vous de la variable globale du terminal ?

 
Galim_V:

Lorsque vous redémarrez le terminal, sera-t-il sauvegardé ? Ou bien parlez-vous de la variable globale du terminal ?

Non, ça ne le sera pas. Pour sauvegarder, vous avez besoin d'une variable globale ou de sauvegarder dans un fichier.
 
Yevhenii Levchenko:
Non, ils ne le feront pas. Vous avez besoin d'une variable globale ou d'un enregistrement dans un fichier pour les sauvegarder.

Je faisais un panneau d'information, mais j'ai perdu le code source. Ce faisant, il a évité toutes les entrées, utilisé les fonctions d'informateur. J'ai décidé de tout restaurer et d'ajouter ce problème de swap. C'est pourquoi j'ai posé la question. L'échange ne laisse-t-il pas de traces dans l'histoire, qui est écrite par le terminal lui-même ? Mais s'il n'y a pas d'autre option que d'écrire, j'aimerais avoir un indice, car je n'ai pas travaillé avec des fichiers et des globaux. Sachant que je dois comparer 20 instruments une fois par jour. Merci pour le temps passé.

 
Galim_V:

Je faisais un panneau d'information, mais j'ai perdu le code source. Ce faisant, il a évité toutes les entrées, utilisé les fonctions d'informateur. J'ai décidé de tout restaurer et d'ajouter ce problème de swap. C'est pourquoi j'ai posé la question. L'échange ne laisse-t-il pas de traces dans l'histoire, qui est écrite par le terminal lui-même ? Mais s'il n'y a pas d'autre option que d'écrire, j'aimerais avoir un indice, car je n'ai pas travaillé avec des fichiers et des globaux. Sachant que je dois comparer 20 instruments une fois par jour. Merci pour le temps passé.

Il est plus facile d'utiliser une variable globale... Les fichiers sont plus un problème...
 

Fini l'indicateur sur mt5 (traduit de mt4). J'ai écrit à ce sujet hier. Cela a bien fonctionné pour moi, mais pas si bien pour le client. Si je comprends bien, les problèmes sont apparus lorsque l'indicateur ajoutait ou supprimait d'autres indicateurs de manière programmatique. Je blâme la fonctionIndicatorRelease... Lors de la désinitialisation, les indicateurs (à l'exception de l'indicateur actuel) sont supprimés du graphique via ChartIndicatorDelete, puis la poignée de libération via IndicatorRelease. L'aide indique :

IndicatorRelease()

Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.
Функция позволяет удалять хэндл индикатора, если он больше не нужен, и таким образом позволяет экономить память. Удаление хендла производится сразу, 
удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет). 

Lors de l'initialisation, les handles sont recréés. Et au premier comptage dans OnCalculate, les indicateurs sont à nouveau ajoutés au graphique. J'ai ajouté une boucle vide dans OnDeinit pour 1000 passages pour ajouter un peu de retard. Je n'ai aucune confiance dans cette solution. Cela a bien fonctionné pour moi avant (bien que le terminal ait raccroché une fois aujourd'hui), et le client a commencé à fonctionner correctement aujourd'hui (du moins pour l'instant).

L'algorithme sur mt4 fonctionne bien (il n'y a jamais eu de blocage). La différence de mt5 est qu'ici les indicateurs sont ajoutés par programme (et les valeurs calculées des indicateurs doivent être constamment copiées pour pouvoir les utiliser). Alors que dans mt4 ils copient juste les buffers pour la visualisation (muwings et zigzags... comme "ajouter des indicateurs par programme").

Savez-vous si le problème peut être lié à la suppression et à la recréation des handles (lorsque les paramètres sont modifiés, la désinitialisation et l'initialisation se succèdent immédiatement...) ? Existe-t-il un moyen de vérifier s'il existe un handle de cet indicateur ou non ?

 

J'obtiens toujours des valeurs non normalisées après normalisation - MQL5

up    = NormalizeDouble((up == 0 ? 1 * point : up),_Digits);
down  = NormalizeDouble((down == 0 ? 1 * point : down),_Digits);
sum   = NormalizeDouble((sum == 0 ? 1 * point : sum),_Digits);
minus = NormalizeDouble((minus == 0 ? 1 * point : minus),_Digits);
if(index <= 65 && index >= 55) Print(index," ",up," ",down," ",sum," ",minus);

Le plus défavorable 1e-05, Que faire ?

 

Veuillez m'indiquer comment résoudre le problème de l'appel de l'indicateur sur MT5 windows 10 X64, je procède de cette façon :

#resource "\Indicators\\\\NMonIndicateur.ex5"

handle=iCustom(NULL,0,"\Indicators\\\\MyIndicator") ;

Il fonctionnait sans #resource, puis il n'a commencé à fonctionner qu'avec #resource, maintenant rien ne fonctionne, l'erreur 4804 est générée.