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

 
MosheDayan:
environ 25 personnes. Par exemple : 14.02.2017 EURUSD 1,0630

Malheureusement, je ne vois pas non plus de solution à ce problème uniquement avec mql.

Il suffit de créer un modèle de lettre avec les noms de tous les amis et d'envoyer un courrier

 
MosheDayan:
environ 25 personnes. Par exemple : 14.02.2017 EURUSD 1,0630
Devez-vous diffuser exactement les niveaux ? Ne serait-il pas préférable de créer un signal et de le diffuser ?
 

Bonjour.

J'ai tué toute la soirée, mais je n'ai pas pu comprendre la raison, s'il vous plaît aidez. L'indicateur devrait afficher les données à l'écran sous la forme d'une marque de texte, mais lorsque je démarre le terminal, cela ne se produit pas, la marque n'apparaît que lorsque je change de cadre temporel, puis cela fonctionne bien sur les ticks.

L'exemple est simplifié autant que possible, mais l'essence ne change pas :

int a=AccountInfoInteger(ACCOUNT_LEVERAGE) ;

intb=1000/a; // puis imprimer b à l'écran

En utilisant la méthode d'élimination, j'ai conclu que cela ne fonctionne que si je remplace la division par toute autre opération, ou si j'assigne une constante quelconque à la variable "a".

J'ai essayé d'utiliser ChartRedraw(), j'ai joué avec les types entiers et doubles, j'ai essayé MathRound() et bien d'autres choses encore, mais rien ne fonctionnait.

C'est tout à fait étrange.

 
Fam:

Bonjour.

J'ai tué toute la soirée, mais je n'ai pas pu comprendre la raison, s'il vous plaît aidez. L'indicateur devrait afficher les données à l'écran sous la forme d'une marque de texte, mais lorsque je démarre le terminal, cela ne se produit pas, la marque n'apparaît que lorsque je change de cadre temporel, puis cela fonctionne bien sur les ticks.

L'exemple est simplifié autant que possible, mais l'essence ne change pas :

int a=AccountInfoInteger(ACCOUNT_LEVERAGE) ;

intb=1000/a; // puis imprimer b à l'écran

En utilisant la méthode d'élimination, j'ai conclu que cela ne fonctionne que si je remplace la division par toute autre opération, ou si j' assigne une constante quelconque à la variable "a".

J'ai essayé d'utiliser ChartRedraw(), j'ai joué avec les types entiers et doubles, j'ai essayé MathRound() et bien d'autres choses encore, mais rien ne fonctionnait.

C'est tout à fait étrange.

Alors, quel est le problème avec la multiplication au lieu de la division ?

intb=a*0.001 ;

Et il est également important de savoir où exactement dans le code effectuer les calculs. J'espère que ce n'est pas dans l'inite ou dans le monde ? Vous pouvez aussi diviser par zéro ;)

 
Fam:

Bonjour.

J'ai tué toute la soirée, mais je n'ai pas pu comprendre la raison, s'il vous plaît aidez. L'indicateur devrait afficher les données à l'écran sous la forme d'une marque de texte, mais lorsque je démarre le terminal, cela ne se produit pas, la marque n'apparaît que lorsque je change de cadre temporel, puis cela fonctionne bien sur les ticks.

L'exemple est simplifié autant que possible, mais l'essence ne change pas :

int a=AccountInfoInteger(ACCOUNT_LEVERAGE) ;

intb=1000/a; // puis imprimer b à l'écran

En utilisant la méthode d'élimination, j'ai conclu que cela ne fonctionne que si je remplace la division par toute autre opération, ou si j'assigne une constante quelconque à la variable "a".

J'ai essayé d'utiliser ChartRedraw(), j'ai joué avec les types entiers et doubles, j'ai essayé MathRound() et bien d'autres choses encore, mais rien ne fonctionnait.

C'est tout à fait étrange.

Et si vous regardez dans le journal, vous y trouverez l'erreur critique "division par 0".
 
Vitalie Postolache:

Alors quel est le problème de refaire une multiplication au lieu d'une division ?

intb=a*0.001 ;

Il est également important de savoir à quel endroit précis du code les calculs doivent être effectués. J'espère que ce n'est pas dans l'inite ou dans le monde ? Vous pouvez aussi diviser par zéro ;)

Cela ne marchera pas, c'est en fait une variable au lieu de 1000. Le calcul se fait dansOnCalculate.
 
Vitalie Postolache:
Les niveaux doivent-ils être transmis exactement ? Ne serait-il pas préférable de créer un signal et de le diffuser ?
Je les envoie sur Whatsapp au groupe également. Je voulais juste leur faciliter la vie... ouvrir le graphique et mon niveau est déjà là. Pouvez-vous m'en dire plus sur le signal, passe-t-il par MT ou par un tiers ?
 
Alexey Viktorov:
Et si vous regardez dans le journal, vous pouvez y trouver une erreur critique "division par 0".

Le carnet de bord indique bien : zéro diviseur. Je vais vérifier maintenant.

Je ne comprends pas d'où vient le 0 ? Pas de données deAccountInfoInteger(ACCOUNT_LEVERAGE) pendant l'initialisation? Et pourquoi la marque n'apparaît-elle pas sur les prochains ticks ?

 
MosheDayan:
Je les envoie par Whatsapp au groupe également. Je voulais juste leur faciliter la vie... ouvrir le graphique et mon niveau est déjà là. Pouvez-vous m'en dire plus sur le signal, est-il émis par MT ou par un tiers ?
Il est public :)
 
Fam:

Le carnet de bord indique bien : zéro diviseur. Je vais vérifier maintenant.

Je ne comprends pas d'où vient le 0 ? Pas de données deAccountInfoInteger(ACCOUNT_LEVERAGE) pendant l'initialisation? Et pourquoi la marque n'apparaît-elle pas sur les prochains ticks ?

Parce que le programme a reçu une erreur critique et ne s'exécute plus.

Peut-être, certaines sociétés de courtage ne passent-elles pas l'effet de levier ? Bien que, je ne l'ai pas vu en forex...

Raison: