[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 81

 
artmedia70:

Si he entendido bien tus llaves, entonces:




después de ejecutarPlaySound("alert.wav");; los siguientes ifs ya no se ejecutarán?

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

 
charter:

El indicador se vuelve rojo cuando sus valores disminuyen y verde cuando los valores aumentan.


realmente... tan simple) ¡gracias!
 
Stomatolog:
Hola chicos, ¿podéis ayudarme con mi pregunta? Soy nuevo en MQL4, estoy escribiendo un EA, tuve que escribirint total=OrdersTotal();total<1 para evitar abrir una operación en cada nuevo tick. Cómo hacer que las operaciones se abran en todos los pares de divisas, donde el EA está instalado. Y en un solo par de divisas es posible abrir varias operaciones.

Para no abrir en cada tick y para optimizar el EA más rápido, suelo utilizar este diseño:

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

De esta manera, cuando aparezca una nueva barra, el código se ejecutará una vez.

Leer como usar MagicNumber en las órdenes y luego usar total < 1 permitirá al EA abrir una orden para cada par de divisas y para un par de divisas pero abierto en diferentes ventanas. Puede ver una muestra aquí.

 
lottamer:


después de que se haya ejecutado PlaySound("alert.wav");, ya no se ejecutarán los siguientes ifs?

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

Su código es erróneo. Los paréntesis de apertura deben ir antes de los operadores, no después.

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

El bloque con Sound` e Print` sólo se ejecutará si 1 es menor que 2 y 2 es menor que 3. El sonido se ejecutará si 3 es menor que 4.
Pero Print también se ejecutará si 4 es menor que 5 y 5 es menor que 6

 
artmedia70:

Su código es erróneo. Los paréntesis de apertura deben ir antes de los operadores, no después.

Los bloques Sound` e Print` sólo se ejecutarán si 1 es menor que 2 y 2 es menor que 3. El sonido se ejecutará si 3 es menor que 4.
Pero Print también se ejecutará si 4 es menor que 5 y 5 es menor que 6



Me parece que si 4>5 , y 5<6 en la entrada dada la impresión se seguirá ejecutando, porque la máquina trabajará los 3 si en una fila independientemente de su resultado TRU-FOLS - ¡NO HAY COLECCIONES!
 
y ¿es posible derivar una variable local para uso global?
 
lottamer:

Me parece que si 4>5 , y 5<6 entonces con esta entrada Print se seguirá ejecutando, porque la máquina ejecutará los 3 ifs seguidos independientemente de su resultado TRU-FOLS - ¡NO HAY COLECCIONES!
Si (4<5) es verdadero, entonces se ejecuta la siguiente línea: if(5<6), pero ... si (4<5) es falso, entonces el siguiente if () junto con su impresión no se procesa, y pasamos al paréntesis de cierre de if (2<3).
 
lottamer:
pero ¿es posible deducir una variable local para uso global?
Se puede, siempre que se asegure de que no se viola la lógica. Puede haber dos o más variables locales (cada una declarada en su propia función) con el mismo nombre que una variable global. Hay que tener cuidado y prestar atención a su visibilidad.
 
¿Cómo puedo adjuntar correctamente un indicador a otro a través de iCustom()?
Tengo un indicador en el que las 8 matrices de indicadores están ocupadas. ¿Cómo crear correctamente el segundo, para que dibuje la curva del primer indicador en 1 matriz de indicadores?
Ambos indicadores #property indicator_chart_window.
La explicación más obvia, es el análogo en forma de código de los dos indicadores vinculados.
¡¡¡Gracias de antemano!!!
 
Leo59:
¿Cómo puedo adjuntar correctamente un indicador a otro a través de iCustom()?
Tengo un indicador en el que las 8 matrices de indicadores están ocupadas. ¿Cómo crear correctamente el segundo, para que dibuje la curva del primer indicador en 1 matriz de indicadores?
Ambos indicadores #property indicator_chart_window.
La explicación más obvia, es el análogo en forma de código de los dos indicadores vinculados.
¡¡¡Gracias de antemano!!!

Lea en la memoria intermedia del segundo indicador la memoria intermedia del primer indicador del que desea visualizar la línea.
Razón de la queja: