[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 264

 

Por favor, dígame cómo asignar el tiempo a la línea del indicador val1[]. O díganme cómo hacerlo y qué usar porque no me aclaro. Indicador de Laguerre.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
  // присваиваем время;}

Por ejemplo, cuando la línea val1[c] cruza 0.45 hacia arriba el valor del tiempo se establece en la variable TimeBegin y cuando cruza hacia abajo el valor del tiempo se establece en la variable TimeEnd. Y así sucesivamente a lo largo de todo el gráfico.

La idea es que cuando la línea cruza 0,45 hacia arriba y después de que cruza 0,45 hacia abajo, para este período, contar los puntos en el gráfico (¿Cuántos puntos tiene el indicador máximo dado por esta señal). Espero haber sido capaz de explicarme.

Archivos adjuntos:
 
VeyRON123:
¿Existe alguna forma de desconectar la propia MT4 de Internet sin tener que apagar Internet en el ordenador?
hrenfx 20.03.2011 16:18

Desconéctate del broker a través de la casilla "proxy" en la configuración del terminal. Un movimiento y estás fuera de línea o en línea.

 
Hola, ¿podríais decirme por qué no funciona la función estándar OrderSend? Sólo tomar el código fuente del tutorial en este sitio, pero no pasa nada. Cuando añadí la salida de error, mostró 4109 - cadena no inicializada en un array...
 
Gracias por los consejos, lo investigaré...
 
Golden-dark:
Hola, ¿podríais decirme por qué no funciona la función estándar OrderSend? Sólo tomar el código fuente del tutorial en este sitio, pero no pasa nada. Cuando añadí la salida de error, mostró 4109 - cadena no inicializada en un array...
muéstrame el código completo
 

¡Saludos camaradas!

Por favor, pueden decirme cuál puede ser el error en el siguiente código:

//+------------------------------------------------------------------+
//|                                                         BB_k.mq4 |
//|                                                     |
//|                                                          no link |
//+------------------------------------------------------------------+
#property copyright "123"
#property link      "no link"

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 MediumSpringGreen

#property indicator_width1 1

double   buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Koefficient");
   SetIndexShift (0, 0);

   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   
   while (i>=0)
   {
      double x1 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 1, i); //Верхняя полоса
      double x2 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 2, i); //Нижняя полоса
   
      buf_0[i] = x1 / x2;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+

Y la esencia es la siguiente: quiero un indicador que muestre una línea de valores dividiendo la Banda de Bollinger superior por la Banda de Bollinger inferior.

Pero no hay ningún resultado.

La ventana del indicador está vacía:

¡Gracias de antemano si alguien puede ayudar!

 
ramirez17:

¡Saludos camaradas!

Por favor, pueden decirme cuál puede ser el error en el siguiente código:

Y la esencia es la siguiente: quiero un indicador que muestre una línea de valores dividiendo la Banda de Bollinger superior por la Banda de Bollinger inferior.

Pero no hay ningún resultado.

La ventana del indicador está vacía:

¡Gracias de antemano si alguien puede ayudar!

buf_0[i] = x1 / x2;

tienes x2=0 en las barras de la izquierda. Y dividir por cero no es algo bueno...

 
ilunga:

tienes x2=0 en las barras de la izquierda. Y dividir por cero no es algo bueno...


¿Qué puede hacer, por ejemplo, para evitarlo?
 
ramirez17:

¿Qué puede hacer, por ejemplo, para evitarlo?
if (x2 == 0) buf_0[i] = 0;
else buf_0[i] = x1 / x2;
Es mejor evitar que esto ocurra.
 
¿Puedes darme una pista? Hay dos condiciones, para comprar y para vender. Después de captar una señal falsa de venta, por ejemplo de compra, el asesor experto comienza a abrir la siguiente posición de nuevo por esta señal falsa y vuelve a captar una falsa. ¿Cómo debo hacer que mi EA espere la señal en la dirección opuesta después de la pérdida y no se abra por la señal falsa de nuevo? Gracias.