Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 643

 
Alexey Viktorov:

No es el último de la lista, sino el más "joven" en el tiempo.

Aunque soy igual de desconsiderado. La pregunta es sobre la modificación, y estoy escribiendo cerca... Y si simplemente lo modificas, no habrá huecos en la lista de pedidos... Sólo debe añadir variables y asignarles valores, y DEBE comprobar los parámetros para evitar el error nº 1. Bueno, Mila puede hacerlo ella misma.

Artyom Trishkin:

¿Cómo puede estar seguro de que no habrá una dependencia de la ordenación y de que no se equivocará en absoluto?

Una vez más, para encontrar de forma fiable el último pedido, es necesario identificarlo por su hora de apertura, y no por su posición en la lista.

Por lo que sé, los pedidos en la lista se ordenan sólo desde el más antiguo (OrdersTotal()-1) hasta el más reciente (0). Si no es así (la lista no está ordenada por tiempo) y tiene pruebas, por favor, facilítelas.

Si lo que dices es que en el momento en que se solicitó el historial mediante la función OrdersTotal(), otro EA realizó una orden, entonces ésta se saltaría (en todo caso, porque no tuvo tiempo de estar en el historial de órdenes), o también se convertiría en la última de la lista de órdenes.

Por supuesto, podemos reasegurarnos fuertemente y comparar el tiempo de apertura de todas las órdenes de total-1 a 0, pero difícilmente sería una solución óptima cuando tenemos un gran número de órdenes y símbolos negociados.

 
Alexey Kozitsyn:

Por lo que sé, los pedidos de la lista se ordenan sólo desde el más antiguo (OrdersTotal()-1) hasta el más reciente (0). Si no es así (la lista no está ordenada por tiempo) y tiene pruebas, por favor, facilítelas.

Si lo que quieres decir es que en el momento en que se solicitó el historial mediante la función OrdersTotal(), otro EA realizó una orden, entonces o bien se omitiría (en todo caso, no tendría tiempo de estar en el historial de órdenes), o bien se convertiría también en la última de la lista de órdenes.

Por supuesto, podemos reasegurarnos fuertemente y comparar el tiempo de apertura de todas las órdenes de total-1 a 0, pero difícilmente sería una solución óptima cuando tenemos un gran número de órdenes y símbolos negociados.

Jesús... Pruebas para ellos...

Supongo que no recuerdas que estas situaciones se discutan en mql4.com desde hace mucho tiempo. Fue entonces cuando llegamos a la conclusión de que sería mejor buscar una orden por tiempo para determinar inequívocamente su hora de apertura/cierre. Ya me he cansado de repetir que había una dependencia de la clasificación. Entonces lo hicimos para que no lo fuera. La gente se relajó y empezó a hacer lo que usted sugiere. Y entonces bam... y hubo una dependencia de la clasificación de nuevo. La gente aullaba y los robots se volvían locos. Y entonces la dependencia de la clasificación volvió a desaparecer.

Si tienes el deseo de que la supuesta optimalidad vuelva a caer bajo el flechazo algún día, entonces hazlo como lo estás haciendo. Pero no sugieras esas soluciones a otras personas. O, al ofrecerlo, adviértales de la posibilidad de perder alguna vez dinero por fallos en la búsqueda del orden necesario, que (la búsqueda) depende de la clasificación de los símbolos en la lista, que, a su vez, no depende de usted ni de su algoritmo. Por el contrario, su algoritmo depende de otra persona...

No les digas que el concesionario puede hacer trampas con la hora de apertura/cierre, esa es otra cuestión.

Buena suerte.

 
Artyom Trishkin:

Jesús... Las pruebas que quieren...

Por lo visto, no recuerdas del todo que estas situaciones se discutían en mql4.com hace mucho tiempo. Es entonces cuando llegas a la conclusión de que sigue siendo mejor buscar por tiempo una orden para determinar inequívocamente su hora de apertura/cierre. Ya me he cansado de repetir que había una dependencia de la clasificación. Entonces hicimos que dejara de depender de la clasificación. La gente se relajó y empezó a hacer lo que usted sugiere. Y entonces bam... y hubo una dependencia de la clasificación de nuevo. La gente aullaba y los robots se volvían locos. Y entonces la dependencia de la clasificación volvió a desaparecer.

Si tienes el deseo de que la supuesta optimalidad vuelva a caer bajo el flechazo algún día, entonces hazlo como lo estás haciendo. Pero no sugieras esas soluciones a otras personas. O, al ofrecerlo, adviértales de la posibilidad de perder alguna vez dinero por fallos en la búsqueda del orden necesario, que (la búsqueda) depende de la clasificación de los símbolos en la lista, que, a su vez, no depende de usted ni de su algoritmo. Por el contrario, su algoritmo depende de otra persona...

No me digas que el concesionario puede hacer trampas con el tiempo de apertura/cierre, ese es otro tema.

Buena suerte.

Sí, no recuerdo discusiones así, no leo el foro de cuatros a menudo. Tal vez, alguna vez, hubo algo así. Pero si se construye sobre todo lo que fue "antaño" no habrá recursos suficientes.

Si tiene el deseo, en aras de una supuesta optimización, de volver a caer en el punto de mira algún día, haga lo que haga. Pero no sugieras esas soluciones a otras personas. O, al ofrecerlo, adviértales de la posibilidad de perder alguna vez dinero por fallos en la búsqueda del orden necesario, que (la búsqueda) depende de la clasificación de los símbolos en la lista, que, a su vez, no depende de usted ni de su algoritmo. Por el contrario, su algoritmo depende totalmente de otra persona...

Como dices, es posible "quedar en el punto de mira" de muchas otras maneras. Si necesita determinar rápidamente el último pedido, no es racional buscar en todos ellos a tiempo.

Que cada uno decida por sí mismo si acepta mi método o no. La mejor solución es abrir muchos pedidos y ver cómo funciona la clasificación AHORA.

Buena suerte para ti también.

 
Artyom Trishkin:

¿Está seguro de que ha mostrado una forma fiable de perder la última posición de la lista?

Si negocia de forma realista, ¿no le preocupa que la clasificación se convierta de repente en una adicción?

Aún así, IMHO, necesitamos dos ciclos aquí - en el primero buscamos la posición más fresca por la hora de apertura, en el segundo modificamos todas excepto la que se encontró en el primer ciclo.

No, no estoy seguro, pero lógicamente es correcto.

He leído a continuación sobre la insidia de los MQs - la ansiedad ha surgido. Gracias por el aviso.

 
Alexey Kozitsyn:

Cuando se necesita identificar rápidamente el último pedido, no es racional recorrerlos todos a la vez, y ya he dicho por qué.

¿Por qué tenemos que pasar por ellos cada vez? Esta es exactamente la irracionalidad.

Podemos buscar sólo una vez por tick las posiciones de mercado y las órdenes cerradas y rellenar todos los campos de la estructura con todos los datos necesarios de las dos últimas órdenes - abiertas y cerradas.

Y utilizar los datos obtenidos durante esta garrapata. Después de cambiarlos en este tick, obtendrá nuevos datos y nuevos campos de las dos estructuras en el siguiente tick. Me parece que es un equilibrio normal entre la fiabilidad y la velocidad. En eso consiste la optimización. Y lo que tú llamas optimismo, en mi opinión, es para quitarse el sombrero ;)

 
Artyom Trishkin:

¿Por qué repasar cada vez? Este es exactamente el punto en el que no es racional.

Puede buscar una vez por tick las posiciones de mercado y las órdenes cerradas, y rellenar todos los campos de la estructura con todos los datos necesarios de las dos últimas órdenes - abiertas y cerradas.

Y utilizar los datos de esa garrapata. Después de cambiarlos en este tick, obtendrá nuevos datos y nuevos campos de dos estructuras en el siguiente tick. Me parece que es un equilibrio normal entre la fiabilidad y la velocidad. En eso consiste la optimización. Y lo que tú llamas optimismo, en mi opinión, es para quitarse el sombrero ;)

Estáis entrando en detalles, nadie ha mencionado nada sobre todas las veces. Yo, al igual que tú, estoy a favor de la racionalidad, sólo que tenemos puntos de vista diferentes sobre ella.

 
Alexey Kozitsyn:

Estás entrando en matices, nadie estaba hablando de todas las veces en absoluto. Yo, al igual que tú, estoy a favor de la racionalidad, sólo que tú y yo tenemos una visión diferente de la misma.

Sus propias palabras:

Cuando se necesita determinar rápidamente la última orden, no es racional pasar por todas ellas a tiempo, imho...

¿"En todas partes" no es sinónimo de "cada vez" en este contexto?

Por eso he dicho "pasar una vez por garrapata", rellenar los campos de la estructura con los datos correctos y utilizarla en todos los sitios donde se necesite obtener datos sobre el último pedido, en lugar de pasar por todos los sitios cada vez.

¿Quizá te he entendido mal? Pero su expresión citada, en mi opinión, excluye la ambigüedad del entendimiento.

 
Artyom Trishkin:

Sus propias palabras:

¿"En todas partes" no es sinónimo de "cada vez" en este contexto?

Por eso he contestado: es para pasar una vez por cada tic, rellenar los campos de la estructura con los datos correctos y utilizarlos donde sea necesario para obtener los datos del último pedido, no para pasar por ellos cada vez.

¿Quizá lo he entendido mal? Pero su expresión citada, en mi opinión, excluye la ambigüedad del entendimiento.

No se tiene en cuenta que puede haber pausas o cálculos largos en el programa, después de los cuales hay que actualizar el entorno comercial. Arrastrar una matriz de órdenes no siempre es conveniente, y una matriz global no siempre es una buena solución.

De todas formas, como he dicho, nadie te desanima, pero hay casos en los que tu opción será menos preferible (sistemas multidivisa/multiorden). Y estar tranquilo de que MQ volverá a cambiar el orden de clasificación (dado que es el mismo en mql4, y en mql5), creo que no es necesario.

 
Alexey Kozitsyn:

No está teniendo en cuenta que puede haber pausas/ cálculos largos en el programa después de los cuales necesita actualizar el entorno comercial. Arrastrar una matriz de órdenes detrás de ti no siempre es conveniente, y una matriz global no siempre es una buena solución.

De todas formas, como he dicho, nadie te desanima, pero hay casos en los que tu opción será menos preferible (sistemas multidivisa/multiorden). Y para estar seguro de que MQ volverá a cambiar el orden de clasificación (dado que es así en mql4, y en mql5), creo que no es necesario.

Una clase que permite tener fácilmente y sin esfuerzo los datos de cualquier personaje y cualquier mago se hizo hace mucho tiempo. Y no es necesario llevar nada, especialmente toda la matriz, sino sólo DOS órdenes: la última abierta y la última cerrada. Cada vez que, tras largos cálculos o esperas, hay que volver a rellenar los campos de la estructura, lo que, por cierto, hay que hacer, o no se actualiza el entorno...

DE ACUERDO. Es una obviedad... Hazlo a tu manera. No te preocupes por la fiabilidad, olvídalo...

 
Artyom Trishkin:

Desde hace tiempo se ha hecho una clase que permite tener fácilmente y sin esfuerzo datos sobre cualquier símbolo y cualquier mago. Y no es necesario arrastrar nada, especialmente toda la matriz, sino sólo DOS órdenes - la última abierta y la última cerrada. Cada vez que, tras largos cálculos o esperas, hay que volver a rellenar los campos de la estructura, que, por cierto, hay que hacer, o no se actualiza el entorno...

DE ACUERDO. No es un gran problema... Hazlo a tu manera. No te preocupes por la fiabilidad, olvídalo...

Y sí actualizo el entorno, es que tu método de búsqueda tardará mucho más, eso es todo, y sobre el tema de la fiabilidad, es discutible.