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

 
ANDREY:

Pourriez-vous me dire comment enregistrer une valeur de 5 chiffres de bleu dans la variable jaune, si le test est effectué sur un graphique de 1 minute ?

Merci.

A quoi Lou est-il égal ?

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030||Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030||Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)

cette expression ne renvoie que "true" ou "false".

 
MakarFX:

Qu'est-ce que Lou égale ?

cette expression ne renvoie que "true" ou "false".

Et après avoir ouvert une commande, comment savoir laquelle des 3 expressions "si" est vraie ?
Merci.

 
ANDREY:

Et après avoir ouvert une commande, comment puis-je savoir quelle expression de 3 de if est vraie ?
Merci

Dans cette interprétation vous ne pouvez pas... vous devez diviser

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030)
if (Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030)
if (Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)

Je ne vois pas l'intérêt...
 
MakarFX:

Pas avec cette interprétation... nous devons diviser

Je ne comprends pas le but...

J'ai un graphique d'une minute et un ordre a été ouvert en utilisant l'une des expressions de la condition. Comment comprendre par quelle expression la commande est ouverte ? Par exemple, si c'est selon la première expression, alors je place un ordre d'achat en attente avec l'un de ses paramètres ; si c'est selon la deuxième expression, alors je place un ordre d'achat en attente avec des paramètres différents ; si c'est selon la troisième expression, alors je place un ordre de vente en attente.

 
ANDREY:

J'ai un graphique d'une minute et l'une des expressions de la condition a ouvert un ordre. Comment puis-je savoir par quelle expression il est ouvert ? Si j'utilise la première expression, alors je place, par exemple, un ordre d'achat en attente avec l'un de ses paramètres ; si j'utilise la deuxième expression, alors je place un ordre d'achat en attente avec des paramètres différents ; si j'utilise la troisième expression, alors je place un ordre de vente en attente.

1) Toutes les 4 heures, les trois conditions seront réunies (lorsqu'un nouveau plancher apparaîtra).

2) Si vous voyez l'intérêt, diviser

if (Bid - iLow( NULL ,PERIOD_H4,1)>=0.0030)
.....
else
if (Bid - iLow( NULL ,PERIOD_H1,1)>=0.0030)
.....
else
if (Bid - iLow( NULL ,PERIOD_M30,1)>=0.0030)
.....
 
MakarFX:

Attrapez

Il y a beaucoup à apprendre dans l'approche de l'écriture du code. Un grand merci pour cela. Seulement vous avez toujours la liaison horizontale de l'objet texte par le temps à la dernière barre (DoTime = TimeCurrent()+(Period()*60*7). En conséquence, nous avons l'effet du décalage du texte, lorsque le graphique est déplacé (captures d'écran). Je veux juste l'éviter et ancrer l'axe X sur le bord droit de l'écran, disons 20 pixels. Je veux que cette distance reste inchangée, aussi bien lors du déplacement de la ligne vers le haut/bas que lors du déplacement du graphique. Jusqu'à présent, ça n'a pas marché. En fait, tout ce qui est nécessaire est une ligne de code spécifiant la position du texte. Le reste, je le comprends.

 
Oleksandr Nozemtsev:

Il y a beaucoup à apprendre dans l'approche de l'écriture du code. Un grand merci pour cela. Vous avez seulement une liaison horizontale de l'objet texte par temps à la dernière barre (DoTime = TimeCurrent()+(Period()*60*7). En conséquence, nous avons l'effet du décalage du texte, lorsque le graphique est déplacé (captures d'écran). Je veux juste l'éviter et ancrer l'axe X au bord droit de l'écran, disons 20 pixels. Je veux que cette distance reste inchangée, aussi bien lors du déplacement de la ligne vers le haut/bas que lors du déplacement du graphique. Jusqu'à présent, ça n'a pas marché. En fait, tout ce qui est nécessaire est une ligne de code spécifiant la position du texte. Le reste, je le comprends.

Notez la conversion du temps et du prix en coordonnées XY en pixels.

bool  ChartTimePriceToXY(
   long           chart_id,     // идентификатор графика
   int            sub_window,   // номер подокна
   datetime       time,         // время на графике
   double         price,        // цена на графике
   int&           x,            // координата X для времени на графике
   int&           y             // координата Y для цены на графике
   );

Lisez le prix de la ligne, convertissez-le en pixels et attribuez des coordonnéesà l'objet Text Label sur l'axe Y, lacoordonnée de l'axe X restant inchangée.

 
MakarFX:

1) Toutes les 4 heures (lorsqu'un nouveau lowe apparaît), vous remplirez les trois conditions suivantes

2) si vous voyez l'intérêt, diviser

Merci pour le conseil.

Si vous ne divisez pas les expressions, mais les placez dans un opérateur if()avec || , alorsune seule condition sera exécutée - la première de gauche à droite, qui sera true.... si je ne me trompe pas.

Mais si je comprends bien, avec ce format, il serait impossible pour le programme de savoir quelle expression particulière est vraie.
 
Oleksandr Nozemtsev:
Salutations ! Veuillez indiquer comment lier un texte à une ligne dans mql4, de sorte que lorsque la ligne est déplacée, le texte l'est également,

Indicateur de ligne et de texte Ver 1

L'indicateur déplace le texte en suivant la ligne. Insérer le nom de la ligne dans le paramètre d'entrée.

Dossiers :
 
Alexey Viktorov:

Notez la traduction du temps et du prix en coordonnées XY en pixels.

Exactement !