Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 73
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Artem, estás equivocado. El array declarado a nivel global es visible en todas las partes del programa y no es necesario pasarlo a algún sitio desde algún lugar. Lo rellenas en un lugar del programa, lo ordenas en otro y lo lees en el tercero, no importa.
La misma función puede ordenar y/o buscar datos en diferentes matrices con éxito. ¿Verdad? Y si es así, es mejor pasar el array por referencia - para el futuro. Y al llamar a la función, no estará de más ver con qué array funcionará.
Sólo estoy haciendo estas consideraciones. ¿En qué me equivoco?
La misma función puede ordenar y/o buscar datos en diferentes matrices con éxito. ¿Verdad? Y si es así, es mejor pasar el array por referencia - para el futuro. Y al llamar a la función, también deberías poder ver el array con el que trabajará.
Sólo tengo razón en eso. ¿Dónde está el error?
Lo tengo. Tus consejos son para los programadores de lego. No se hace esta perversión.
Eso deja una cosa mal, en que el array debe ser declarado globalmente.
Me alegro de que nos entendamos.
Lo tengo. Tus consejos son para los programadores de lego. Tú no haces esas perversiones.
Entonces queda una cosa, equivocada sobre que el array tiene que ser declarado globalmente.
Me alegro de que nos entendamos.
Lo que quiero decir en este contexto es lo siguiente:
Por esta razón, sería mejor tener matrices globales - para órdenes y posiciones cerradas y abiertas. Una vez en un nuevo tick, pasamos la cantidad necesaria de órdenes/posiciones una vez, llenando dos arrays con ellas. Y luego obtenemos todos los datos necesarios de ellos en el mismo momento. Tenga en cuenta que no sólo se calcula la última orden/posición cerrada/abierta y todos sus datos, sino que también se buscan todos los ticks padres e hijos de todas las posiciones en caso de cierre parcial. En consecuencia, en cualquier momento puedo ver de qué billete es tal o cual posición, si se ha cerrado parcialmente más de una vez - todo esto ya funciona en una clase que se ejecuta en un temporizador. Tengo muchos otros datos que necesito con un pequeño número total de ciclos. La profundidad requerida del historial para las matrices se establece para el probador.
Y así sucesivamente...
En este contexto, mi punto es este:
Por esta razón, sería mejor tener matrices globales - para órdenes y posiciones cerradas y abiertas. Una vez en un nuevo tick, pasamos la cantidad necesaria de órdenes/posiciones una vez, llenando dos arrays con ellas. Y luego obtenemos todos los datos necesarios de ellos en el mismo momento. Tenga en cuenta que no sólo se calcula la última orden/posición cerrada/abierta y todos sus datos, sino que también se buscan todos los ticks padres e hijos de todas las posiciones en caso de cierre parcial. En consecuencia, en cualquier momento puedo ver qué billete se originó en una u otra posición, si se ha cerrado parcialmente más de una vez - todo esto ya funciona en una clase que se ejecuta en un temporizador. Tengo muchos otros datos que necesito con un pequeño número total de ciclos. Para el probador, se establece la profundidad deseada de la historia para las matrices.
Y así sucesivamente...
Así que no nos entendemos del todo.
Si el array es global, ¿por qué pasarlo a una función por referencia si ya es visible dentro de esta función?
Entonces no nos entendemos del todo.
Si el array es global, ¿por qué pasarlo a una función por referencia, si ya es visible dentro de esta función?
Sobrecarga de funciones - existe esta noción ;)
Si necesitas hacer las mismas acciones con diferentes arrays en una función...
Sin embargo - estamos discutiendo diferentes casos especiales...
Sobrecarga de funciones - existe este concepto ;)
Si necesitas hacer las mismas acciones con diferentes arrays en una función...
Sin embargo - estamos discutiendo diferentes casos especiales...
Bueno, menos mal que entiendo tus pensamientos. Pero son muy parecidos a los consejos para los programadores de lego.
Sería muy extraño tener un gran número de funciones que funcionen al 100% y escribirlas de nuevo cada vez. Este no es un consejo para construir casas de cubos. Es un consejo para acumular sus propias bibliotecas de funciones y clases. ¿Y qué hay de malo en que una función maneje varios arrays dependiendo de cuál se le pase por referencia? ¿Y qué tienen de malo las plantillas de funciones?
Si tienes código para ordenar un array, ¿por qué escribir una función distinta para cada tipo de array? Puedes simplemente sobrecargar y ordenar cualquier tipo. ¿Cómo crees que funciona ArraySort()? Allí se pasan diferentes tipos de arrays, y en una salida se recibe el ordenado que se pasó - ¿o las meta cuotas también lego-codifican o qué?
Sería muy extraño tener un gran número de funciones que funcionen al 100% y escribirlas de nuevo cada vez. Este no es un consejo para construir casas de dados. Es un consejo para acumular sus propias bibliotecas de funciones y clases. ¿Y qué hay de malo en que una función maneje varios arrays dependiendo de cuál se le pase por referencia? ¿Y qué tienen de malo las plantillas de funciones?
Si hay código para ordenar un array, ¿por qué debemos escribir una función distinta para cada tipo de array? Puedes hacer una sobrecarga y ordenar cualquier tipo. ¿Cómo crees que funciona ArraySort()? Allí pasas diferentes tipos de arrays, y la salida es una ordenada, que pasaste - o metacotizaciones también lego-codificadores, o qué?
Lo principal es no llegar a esto.
https://www.mql5.com/ru/forum/165468/page3#comment_3978059
Lo principal es no llegar a esto.
https://www.mql5.com/ru/forum/165468/page3#comment_3978059
hay una variable
int Nivel = 0;
Mientras el programa está en marcha, cambia constantemente. Ayúdame a escribir una condición: si el Nivel NO ha cambiado, no hacer nada, si el Nivel ha cambiado (no importa si ha cambiado más o menos), hacer alguna acción { operador }