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

 
Oleh Fedorov:

Hola.

¿Nadie va a decir nada sobre el puesto de Bilder?

¿Tal vez tenga sentido ponerlo en un nuevo hilo, para que lo vea más gente? Si es así, pide a los moderadores que lo publiquen... ¿O crear uno tú mismo?

Sí, crea un tema aparte. Sólo trata de elegir la sección correcta del foro en la que crear el tema.

 

Un consejo, por favor, elemental. Matrices.

Estoy estudiando y no lo entiendo.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  OrderSend(Symbol(),OP_BUYSTOP,0.01,tick[1,2],3,0,0,"bs2",0,0,clrBlue); 
}

No me da errores durante la compilación, pero cuando lo ejecuto en la terminal me da un error crítico.

Por qué cuando se imprime el comentario del valor deltick[1,1], redondea el número a 4 decimales.

¿Por qué no sólo es incapaz de calcular correctamente el valor deltick[1,2] sino que además se niega a copiar los datos de la celda deltick[1,1] (tick[1,2]=tick[1,1];)?

Y por último, por qué al crear una orden, si en lugar del valor del precio cito una celda del array donde se almacena este preciotick[1,2], considera esta variable como 2 valores a la vez.(hay un valor de deslizamiento que salta en las pistas)

 
Gilmor:

Un consejo, por favor, elemental. Matrices.

Estoy estudiando y no lo entiendo.

No me da errores durante la compilación, pero me da un error crítico cuando lo ejecuto en la terminal.

Por qué cuando se imprime el comentario del valor deltick[1,1], redondea el número a 4 decimales.

¿Por qué no sólo es incapaz de calcular correctamente el valor deltick[1,2] sino que además se niega a copiar los datos de la celda deltick[1,1] (tick[1,2]=tick[1,1];)?

Y por último, por qué al crear una orden, si en lugar del valor del precio cito una celda del array donde se almacena este preciotick[1,2], considera esta variable como 2 valores a la vez.(hay un valor de deslizamiento que salta en las pistas)

Porque en los parámetros de la función OrderSend, como en todas las demás funciones, la coma juega un papel importante. En cuanto aparece una coma en el texto, se trata como separador de valores entrantes. Hacer tick[1][2]

 
Alexey Viktorov:

Porque en los parámetros de la función OrderSend, como en todas las demás funciones, la coma juega un papel importante. En cuanto aparece una coma en el texto, se trata como separador de valores entrantes. Hacer tick[1][2]

Gracias. ¿Tal vez pueda responder también a las otras preguntas? :)
 
Gilmor:
Gracias. ¿Tal vez pueda responder también a otras preguntas? :)

¿Puede responder a la pregunta carne(2,55=367,12)

 
Alexey Viktorov:

¿Puede responder a la pregunta carne(2,55=367,12)

Lo tengo.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }
double tick[2,2];

Creé una matriz de 2 celdas en la fila superior, 2 celdas en la fila inferior.

void OnTick()
  {
  tick[1,1] = Ask;
 Comment (tick[1,1])

Resultado. El precio en el gráfico es 0,84478, pero el comentario en la parte superior muestra 0,8448 ???? ¿Por qué se redondea a 4 decimales?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = tick[1,1];
  }

Siguiendo la lógica de escribir en una celda, copio los datos de la celda 1 del array, a la celda 2 del mismo array. El resultado es un error crítico.

¿Por qué?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }

Queremos añadir a la celda 2 del array el valor del precio futuro de la orden pendiente. En otras palabras, queremos añadir 100 puntos al precio Ask y luego especificar esta celda de la matriz en el parámetro de precio al colocar la orden. Pero al ejecutar este comando, volvemos a tener el mismo error.


¿Por qué?

 
Gilmor:

Siguiendo la lógica de escribir en una celda, copio los datos de la celda 1 del array, a la celda 2 del mismo array. El resultado es un error crítico.

¿Por qué?

porque no entiendes lo que son los arrays, si lees la ayuda, y no funciona, vamos "a dedo"

es una declaración de matriz

double tick[2,2];

que le dice al compilador que reserve "4 celdas de memoria" --> 2x2

y el acceso al elemento más bajo tiene índice 0, es decir, en su caso, el arraytick[2,2], sólo tendrá estos elementos del array

tick[0,0]tick[0,1]

tick[1,0]tick[1,1]

hay 4 elementos en la matriz, ¿verdad? .... pero el índice más joven de la matriz tiene el número 0, y no como le gustaría (o como se acostumbró durante el cálculo verbal) del número 1


y, en consecuencia, el elemento más antiguo de la matriz tendrá el número: tamaño de la matriz menos 1

si ha superado las dimensiones del array, obtendrá un error crítico de ejecución - su captura de pantalla, es decir, para el array tick[2,2] no existe tal elemento del array con el númerotick[2,2]

 

Bueno, al menos admito que soy un principiante :)

Gracias.

Lo de "en los dedos" es una costumbre. "En los dedos", es más fácil de entender. Y si se lo explicara a alguien que es un cero total en este idioma, tendría que usar los dedos del pie para aclararlo =))

 
Gilmor:

Bueno, al menos admito que soy un principiante :)

Gracias.

Lo de "en los dedos" es una costumbre. "En los dedos", es más fácil de entender. Y si se lo explicara a alguien que es un cero en este idioma, tendría que usar los dedos del pie para aclararlo =))

Un principiante no es una vergüenza, más la rama es temática - para los principiantes, y este es uno de los pocos foros donde se puede obtener una respuesta rápida a su pregunta ;)

Bueno, además, lee el principio de la ayudahttps://docs.mql4.com/ru/basis/variables

 
Igor Makanu:

no es una vergüenza para un novato, sobre todo porque este es uno de los pocos foros donde se puede obtener una respuesta rápida a su pregunta ;)

y además, lee el principio de la ayudahttps://docs.mql4.com/ru/basis/variables

Gracias.
Razón de la queja: