Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 131

 
Vitaly Muzichenko:

No puedo tocarlo con el eventoOnCalculate(...), puedo tocar cualquier función, pero no puedo tocar esta. El temporizador no es una opción, el indicador no se necesita tan a menudo, y sería mejor utilizarlo con un clic en un elemento gráfico.

¿Cómo aplicarlo?

Se atrapa el clic en el objeto en el indicador y en el manejador de eventos, y luego se recalculan los buffers del indicador como en un nuevo inicio. No es necesario tirar de OnCalculate
 
-Aleks-:

¿Puede decirme cómo buscar correctamente los lugares del código que más recursos consumen y que cargan la CPU?

Ejecutar el perfilado de código desde el editor.
 
Artyom Trishkin:
Ejecutar el perfilado del código desde el editor.

Gracias, pero ¿cómo se hace sin conexión, en un día libre?

 
¿Cuál puede ser el problema?

Un trozo de código:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Al probar, el depurador genera un error en la línea if. Matriz fuera de rango.

Gracias de antemano.
Archivos adjuntos:
 
Andy-D:
¿Cuál puede ser el problema?

Un trozo de código:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Al probar, el depurador genera un error en la línea if. Matriz fuera de rango.

Gracias de antemano.
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
Gracias ayuda, supongo que no debería haber puesto "<="? Sin embargo, es extraño. No entiendo por qué. ¿Dónde pongo el signo más?
 
Andy-D:
Gracias me ha servido de ayuda, supongo que no debería haber puesto "<="? Sin embargo, es extraño. No entiendo por qué. ¿Dónde poner el signo más?
La indexación de la matriz comienza con 0 y termina con Bars-1 (en este caso). Por lo tanto, el valor de Bars resulta en un desbordamiento de la matriz.
 
Andy-D:
Gracias ayuda, supongo que no debería haber puesto"<="? Sin embargo, es extraño. No entiendo por qué. ¿Dónde poner el signo más?
Porque la indexación de los arrays empieza por cero, así que, por ejemplo, si el número de barras en Bares es 1, entonces para obtener un valor de esta única barra, debes tomar el valor de su celda con el índice 0.

Aquí tienes una tabla comparativa:

Número de barras en Bares
1 2 3 4 5 6 7 8 9 10 Conjunto exterior
Índice de bucle que hace referencia a los datos
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
 
Sergey Gritsay:
Para ello, es necesario crear un servidor fuera del ordenador local y transferir los datos a través de este servidor, respectivamente, para la MT es necesario escribir un indicador o un Asesor Experto que procesa estos datos, o poner los terminales en un servidor VPN y establecer un copiador de ofertas de su cuenta a las cuentas de sus amigos allí. Otra opción es copiar sus operaciones ejecutadas en determinados niveles a través del servicio de señales. En general, debe tener en cuenta su capacidad financiera para pedir el software adecuado.
He encontrado un indicador (mq4) con un principio de mapeo similar. He visto sus resultados y no me gustan. Tengo mis propios datos. Creo que son más precisos. Tengo mis propios datos. ¿Puedo editarlos para hacerlos más precisos y eliminar algunos mapeos innecesarios y especificar la ruta de mis datos? Sólo tómalo como base.
 
Artyom Trishkin:
Dado que la indexación de la matriz comienza con cero, por ejemplo, si el número de barras en Bares es 1, entonces para obtener el valor de esta única barra, tenemos que tomar el valor de su celda con índice 0.

Aquí está la tabla comparativa:

Número de barras en Bares
1 2 3 4 5 6 7 8 9 10 Conjunto exterior
Índice de bucle que hace referencia a los datos
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
Muchas gracias, ahora tiene más sentido.