[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 756

 
ToLik_SRGV:

Ilya, le echaré un vistazo, pero no entiendo muy bien por qué los arrays tienen el tipo string.

es una variante que funciona por ahora :)

En realidad, me gustaría aclarar:

¿Existe una "estructura" similar en mql que en c.

Necesito almacenar en el array dado los datos de diferentes tipos - fecha + hora de la formación del extremo, así como el valor del extremo mismo...

En consecuencia, quería aclarar: ¿existe una función estándar para convertir una cadena en fecha+hora... o ¿cómo se puede evitar esta situación?

 

Toma esta ZZ y no te preocupes.

Archivos adjuntos:
zigzag2_r_.mq4  10 kb
 
Morzh09:

Me disculpo por repetirme, pero realmente me gustaría entender...


Lo que inmediatamente me llamó la atención, es que tu array Número_de_extremo[] no está inicializado en ninguna parte, respectivamente, no tiene celdas para almacenar datos, y estás tratando de escribir en él el mínimo/máximo (por supuesto, siempre termina con 0). Sugiero esta opción - cambiar dinámicamente el tamaño del array dependiendo de la variable K:

        
   }
   
//====================================================  

   ArrayResize(Number_of_extremum, k);
   
   for (int u=0;u<k;u++)//
   {
      if (StrToDouble(TimeSave1[u+1][1])<=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=1;// значит под номером u - нашли min
      }
      else
      if (StrToDouble(TimeSave1[u+1][1])>=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=2;// значит под номером u - нашли max
      }
   }
   
//====================================================   

Parece que funciona, aunque creo que en alguna parte de la lógica sigue habiendo un error, a veces los números empiezan a salirse de la secuencia, pero ¿puede haber dos máximos consecutivos?

 
ToLik_SRGV:

¿Qué quería conseguir al final?

Si he calculado bien:
1000*60*(240+1)*1000 = 14 460 000 segundos.

¿Quiere que el probador se detenga en cada tic durante 167 días?

Sobre la pausa, dije hace unas páginas.

Gracias, es más o menos correcto - El sueño no funciona en el probador. Esta demora imposible la puse para comprobar si el sueño funciona.
 

Hola. Existe una estrategia de arbitraje, ¿es perfecta? Es decir, ¿es irreal perder con ello o el precio no siempre alcanza el nivel adecuado?

Gracias

 
Swetten:

¿Cuál es el número máximo de ventanas en MT4?

Necesitaba abrir 3x19 ventanas, pero son 54 (creo) y ya está.

Es decir, la ventana se dibuja, pero tiene una captura de pantalla de las ventanas anteriores (que están en el fondo).

Y eso es todo.

Ocurre cuando no hay suficiente memoria de vídeo...
 

Por favor, aconsejar que el código debe ser añadido a la Expert Advisor, por lo que se detendría en el punto de equilibrio después de un beneficio de al menos 20 pips y no se movería más

Estaré muy agradecido por sus comentarios

 

Colegas, me pueden decir si existe un indicador que conste de tres líneas horizontales paralelas, es decir, una especie de canal. Por ejemplo, si tomas una línea horizontal, la pones en algún nivel, y a partir de esta línea después de un cierto número (dado) de puntos vas dibujando las otras líneas paralelas a ella. Se lo agradezco de antemano.

 

En el probador, el Asesor Experto abre 5 órdenes durante el período seleccionado.

Si cambiamos el OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue); sustituyendo 10 por 15, entonces se abrirán 4 órdenes de 5, y si sustituimos 10 por 20, entonces sólo se abrirán 3. Al mismo tiempo,

sólo las órdenes perdedoras que se cierran por Stop Loss. No se ve ningún mensaje de error. ¿Cuál es la razón de esto, por favor?

Y la sensación es que ni siquiera entra en esta rama.

if (OrdersTotal()!=0) {
   if (OrderType()==OP_BUY && stochMain0<stochSIGNAL0) CLOSEORDER("Buy");     
   if (OrderType()==OP_SELL && stochMain0>stochSIGNAL0) CLOSEORDER("Sell");  
}
else {
   double MA0 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,0);   
   double MA1 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift);   
   double MA2 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift*2); 
   if (MA0>MA1-razn1 && MA1>MA2-razn1 && MA0<Ask)    
      if(stochMain0>stochSIGNAL0 && stochMain_1>stochSIGNAL_1 && stochMain_4<stochSIGNAL_4) {
         //OPENORDER ("Buy");
         OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue);
      }
   else if (MA0+razn1<MA1 && MA1+razn1<MA2 && MA0>Bid)     
      if(stochMain0<stochSIGNAL0 && stochMain_1<stochSIGNAL_1 && stochMain_4>stochSIGNAL_4)  //   
         {OPENORDER ("Sell");  }
}     
Archivos adjuntos:
stoch_1.mq4  7 kb
 
profitinvesting:

Por favor, aconsejar que el código debe ser añadido a la Expert Advisor, por lo que se detendría en el punto de equilibrio después de un beneficio de al menos 20 pips y no se movería más

Estaré muy agradecido por sus comentarios

¿Necesita el beneficio total de todas las posiciones abiertas o quiere poner un stop en cada una de ellas cuando alcancen 20 puntos de beneficio?
Razón de la queja: