[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 81

 
charter:

L'indicateur devient rouge lorsque ses valeurs sont en baisse et vert lorsque les valeurs sont en hausse.


vraiment... si simple) merci !
 
Stomatolog:
Bonjour, pouvez-vous m'aider à répondre à ma question ? Je suis nouveau sur MQL4, j'écris un EA, j'ai dû écrireint total=OrdersTotal();total<1 pour éviter d'ouvrir une transaction à chaque nouveau tick. Comment rendre les transactions ouvertes sur toutes les paires de devises, où l'EA est installé. Et sur une seule paire de devises, vous pouvez ouvrir plusieurs transactions.

Afin de ne pas ouvrir à chaque tick et d'optimiser l'EA plus rapidement, j'utilise souvent ce design :

datetime t;                     // переменная для запоминания значения времени
int start()
{
  if (t == Time[0]) return;     // если "старое" время и текущее совпадают, выходим из start
  else t = Time[0];             // иначе присвоим переменной текущее время

De cette façon, lorsqu'une nouvelle barre apparaît, le code sera exécuté une fois.

Lisez comment utiliser MagicNumber dans les ordres et ensuite utiliser total < 1 permettra à l'EA d'ouvrir un ordre pour chaque paire de devises et pour une paire de devises mais ouvert dans des fenêtres différentes. Vous pouvez voir un échantillon ici.

 
lottamer:


après l'exécution de PlaySound("alert.wav") ;, les ifs suivants ne seront plus exécutés ?

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

Votre code est faux. Les parenthèses ouvrantes doivent être placées avant les opérateurs, et non après.

//+----------------------------------------------------------------------------+
if (1<2) {                                // Если один меньше два и ...
   if(2<3) {                              // ... два меньше три, ...
      if (3<4) PlaySound("alert.wav");    // Если три меньше четыре - врежем рок в этой дыре ... (С), 
                                          // Далее пойдём проверять остальные условия:
      if (4<5)                            // Если четыре меньше пять и ...
      if (5<6) Print("Истина");           // ... пять меньше шесть - верно, блин...
      }
   }
//+----------------------------------------------------------------------------+

Le bloc avec Sound` et Print` ne sera exécuté que si 1 est inférieur à 2 et 2 est inférieur à 3. Le son sera exécuté si 3 est inférieur à 4.
Mais Print s'exécutera aussi si 4 est inférieur à 5 et 5 est inférieur à 6.

 
artmedia70:

Votre code est faux. Les parenthèses ouvrantes doivent se trouver avant les opérateurs, et non après.

Les blocs Sound` et Print` ne seront exécutés que si 1 est inférieur à 2 et 2 est inférieur à 3. Le son sera exécuté si 3 est inférieur à 4.
Mais Print s'exécutera aussi si 4 est inférieur à 5 et 5 est inférieur à 6.



Il me semble que si 4>5 , et 5<6 à l'entrée donnée Print sera toujours exécuté, parce que la machine travaillera les 3 si dans une rangée indépendamment de leur résultat TRU-FOLS - il n'y a PAS de COLLECTIONS !
 
et est-il possible de dériver une variable locale pour une utilisation globale ?
 
lottamer:

Il me semble que si 4>5 , et 5<6 alors avec cette entrée Print sera toujours exécuté, parce que la machine exécutera les 3 ifs dans une rangée indépendamment de leur résultat TRU-FOLS - il n'y a PAS de COLLECTIONS !
Si (4<5) est vrai, alors la ligne suivante est exécutée : si(5<6), mais ... si (4<5) est faux, alors le if () suivant avec son print n'est pas traité, et on passe à la parenthèse fermante de if (2<3).
 
lottamer:
mais est-il possible de déduire une variable locale pour une utilisation globale ?
Vous pouvez, tant que vous vous assurez que la logique n'est pas violée. Il peut y avoir deux ou plusieurs variables locales (chacune déclarée dans sa propre fonction) portant le même nom qu'une variable globale. Vous devez être prudent et faire attention à leur visibilité.
 
Comment attacher correctement un indicateur à un autre via iCustom() ?
J'ai un indicateur dans lequel les 8 tableaux d'indicateurs sont occupés. Comment créer correctement le second, pour qu'il dessine la courbe du premier indicateur dans un tableau d'indicateurs ?
Les deux indicateurs #property indicator_chart_window.
L'explication la plus évidente est l'analogie sous la forme du code des deux indicateurs liés.
Merci d'avance ! !!
 
Leo59:
Comment attacher correctement un indicateur à un autre via iCustom() ?
J'ai un indicateur dans lequel les 8 tableaux d'indicateurs sont occupés. Comment créer correctement le second, pour qu'il dessine la courbe du premier indicateur dans un tableau d'indicateurs ?
Les deux indicateurs #property indicator_chart_window.
L'explication la plus évidente est l'analogie sous la forme du code des deux indicateurs liés.
Merci d'avance ! !!

Lisez dans le tampon de l'indicateur du second indicateur le tampon du premier indicateur dont vous voulez afficher la ligne.
 
Leo59:
Comment attacher correctement un indicateur à un autre via iCustom() ?
J'ai un indicateur dans lequel les 8 tableaux d'indicateurs sont occupés. Comment créer correctement le second, pour qu'il dessine la courbe du premier indicateur dans un tableau d'indicateurs ?
Les deux indicateurs #property indicator_chart_window.
L'explication la plus évidente est l'analogie sous la forme du code des deux indicateurs liés.
Merci d'avance ! !!


Ne serait-il pas plus simple de mettre simplement deux indicateurs sur le graphique ?
Raison: