Erreurs, bugs, questions - page 647

 
Merci pour le message, nous avons corrigé cet endroit. Nous allons le tester par nous-mêmes.
 

Amis programmeurs ! Nous avons besoin de votre aide.


Je dois faire une modification dans le code MT4. Le conseiller expert Martin place une série d'ordres dans l'ordre du delta spécifié et, à partir d'un certain numéro de transaction (par exemple, la 4ème transaction), il commence à augmenter le delta par un coefficient.
J'ai besoin que ce delta ne soit pas prolongé à l'infini jusqu'à la fin de la série. Mais seulement jusqu'à un certain niveau, que nous définissons dans les paramètres (par exemple Max_delta = 50 points). Et lorsque delta devient >= Max_delta, il prend cette valeur en continu jusqu'à la fin de la série. Et puis ça recommencerait depuis le début.

Voici le code du programme où le delta est étiré :


int Delta(int OrdNum){
si(Start_order_delta>1){
si(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta ;
return(Take_profit*MathPow(Delta_exp,p))
}
}
retour(Take_profit) ;
}

Veuillez m'aider à introduire une contrainte delta dans ce code.
 

Propriété CHART_BRING_TO_TOP

Il peut être réglé, mais la valeur actuelle ne peut être déterminée.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - fonctionne.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - ne fonctionne pas.

 
MoneyJinn:

Propriété CHART_BRING_TO_TOP

Il peut être réglé, mais la valeur actuelle ne peut être déterminée.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - fonctionne.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - ne fonctionne pas.

Eh bien, tout a un sens. L'appel a trois paramètres, ou est-ce que je me trompe ?

En utilisant la deuxième option, nous obtenons juste la valeur définie à false, pas la valeur actuelle.

Pour obtenir la valeur, nous avons besoin de quatre paramètres (le dernier contiendra la valeur actuelle).

bool  ChartGetInteger(
   long    chart_id,     // идентификатор графика
   int     prop_id,      // идентификатор свойства
   int     sub_window,      // номер подокна
   long&   long_var      // сюда примем значение свойства
   );
 
Interesting:

C'est logique. L'appel a trois paramètres, ou est-ce que je me trompe ?

En utilisant la deuxième option, nous obtenons juste la valeur SET de false, sans définir la valeur actuelle.

Pour obtenir la valeur, nous avons besoin de quatre paramètres (le dernier contiendra la valeur actuelle).


Oui, vous avez tort. Plusieurs formes d'entrée ChartGetInteger sont autorisées.

Mais quel que soit le formulaire d'enregistrement ChartGetInteger, ilest impossible d'obtenir la valeur actuelle de la propriétéCHART_BRING_TO_TOP.

 
MoneyJinn:

Plusieurs formes de saisie de ChartGetInteger sont possibles.

Mais quel que soit le formulaire d'entrée ChartGetInteger, iln'est pas possible d'obtenir la valeur actuelle de la propriétéCHART_BRING_TO_TOP.

Et quelle est la valeur renvoyée par la deuxième variante de la fonction ChartGetInteger (4 paramètres) ? Et le code d'erreur ?

 
Yedelkin:

Et quelle valeur renvoie la deuxième variante de la fonction ChartGetInteger (4 paramètres) ? Et le code d'erreur ?

Valeur 0 ; erreur 4109 - c'est-à-dire qu'il n'existe pas de propriété de ce type.
 
MoneyJinn:
Valeur 0 ; erreur 4109 - c'est-à-dire qu'une telle propriété n'existe pas.

Selon le manuel, cette propriété n'est tout simplement pas prise en charge :

Pour le deuxième appel, renvoie true si cette propriété est supportée et que la valeur a été placée dans la variable long_var, sinon renvoie false.

Le code d'erreur dit la même chose. La question de savoir pourquoi la propriété graphique CHART_BRING_TO_TOP n'est pas prise en charge se situe au niveau du développeur. Et si la propriété est effectivement prise en charge, alors la question se pose à nouveau à leur niveau : pourquoi dans ce cas la fonction ChartGetInteger renvoie faux ?

 
Pourquoi l'événement OnTick ne se produit pas dans le testeur de stratégie. Construire 586. J'ai d'abord pensé qu'il y avait une erreur dans mon programme. Démarré Moving Average.mq5 pour le débogage. Fixez un point d'arrêt au premier opérateur de l'événement OnTick. Je n'ai vu aucune réaction dans l'heure qui a suivi.
 
tor30515:

Pourquoi l'événement OnTick ne se produit pas dans le testeur de stratégie. Construire 586. J'ai d'abord pensé qu'il y avait une erreur dans mon programme. Démarré Moving Average.mq5 pour le débogage. Fixez un point d'arrêt au premier opérateur de l'événement OnTick. Je n'ai pas vu de réaction dans l'heure qui a suivi.

Et le testeur est déchargé pour déboguer ?