Organizar el ciclo de pedidos - página 10

 
Alexey Viktorov:

¿Quién se ha visto perjudicado cuando se ha vuelto a seleccionar un pedido?

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Organizar un ciclo de repetición de pedidos

fxsaber, 2017.10.06 06:26

Puede llevar a una situación en la que se pierda algún billete o se repita un billete a través de uno, etc.

Y ni siquiera se trata de una modificación, sino de simples AmountOrders.

 
fxsaber:

¿Por qué, si IsChange es de cinco líneas?

No para resolver este problema en particular. Es para mi biblioteca - y muchas cuestiones necesarias para la creación de programas cómodos se resuelven allí. Pero, en particular, sólo devuelve el hecho de cualquier cambio en las listas de mercado o de la historia.

 
fxsaber:

Y ni siquiera se trata de una modificación, sino de simples AmountOrders.

Sólo que no necesitas pasar por las listas del entorno, que se barajan cuando el entorno cambia, sino que tienes tu propia lista - no se baraja, y tiene todos (o en exceso, pero no en defecto) los tickets que necesitas cerrar/borrar/modificar. Si faltan físicamente, no hay que volver a empezar el ciclo, sólo hay que pasar al siguiente de la lista. Y eso es todo - no es necesario cambiar el índice del bucle o tratar de repetir el bucle de alguna manera. Simplemente vamos a nuestra lista y tratamos de hacer lo que necesitamos. No hay billete en el mercado - no es gran cosa (no se puede devolver ya) - vamos al siguiente y hacemos lo que queramos con él. Y el temporizador, a su vez, corregirá la lista en el siguiente tick.

 
fxsaber:

Y ni siquiera se trata de una modificación, sino de simples AmountOrders.

Por supuesto que sí. Puede pasar cualquier cosa, en cualquier momento. Vas caminando, vas andando, todo va bien y de repente te resbalas... No hay una red de seguridad para todo. Por eso no intento escribir funciones máximamente universales "para todas las ocasiones". Entonces, ¿qué importa si un pedido se selecciona dos veces para un simple AmountOrders? ¿Cuál es la probabilidad de que la orden sea cerrada/borrada manualmente exactamente en el momento de la ejecución del bucle? Porque en el ejemplo dado, la orden se está cerrando en el mismo bucle. Es posible que esto se haga sólo como experimento, pero no puedo imaginar que tengamos que modificar el pedido o hacer otra cosa y cerrarlo inmediatamente...

 
Artyom Trishkin:

Sólo que no necesita pasar por las listas del entorno que se barajan cuando el entorno cambia, sino que tiene su propia lista - no se baraja, y tiene todos (o en exceso, pero no en insuficiencia) los tickets que necesita cerrar/borrar/modificar. Si faltan físicamente, no hay que volver a empezar el ciclo, sólo hay que pasar al siguiente de la lista. Y eso es todo - no es necesario cambiar el índice del bucle o tratar de repetir el bucle de alguna manera. Simplemente vamos a nuestra lista y tratamos de hacer lo que necesitamos. Si no hay billete en el mercado, no pasa nada (no se puede devolver), vamos al siguiente y hacemos lo que queramos con él. Y el temporizador, a su vez, corregirá la lista en el siguiente tick.

Supongamos que queremos desactivar el EA si el número de órdenes para un determinado símbolo supera el número especificado. Entonces, ¿cómo?

 
Alexey Viktorov:

Por supuesto que sí. Puede pasar cualquier cosa, en cualquier momento. Vas andando, vas caminando, todo va recto, y de repente te resbalas... No hay una red de seguridad para todo. Por eso no intento escribir funciones máximamente universales "para todas las ocasiones". Entonces, ¿qué importa si un pedido se selecciona dos veces para un simple AmountOrders? ¿Cuál es la probabilidad de que la orden sea cerrada/borrada manualmente exactamente en el momento de la ejecución del bucle? Porque en el ejemplo dado, la orden se está cerrando en el mismo bucle. Es posible que esto se haga sólo como experimento, pero no puedo imaginar que tengamos que modificar el pedido o hacer otra cosa y cerrarlo inmediatamente...

¿No has visto esto? ¡Reproducible en poco tiempo!

 
fxsaber:

Supongamos que queremos desactivar el EA si el número de órdenes para un determinado símbolo supera el número especificado. ¿Y cómo?

Allí - en el temporizador al escribir las órdenes a la lista - superado - envió un evento o levantó una bandera.

 
Artyom Trishkin:

Allí - en el temporizador al escribir las órdenes a la lista - superado - han enviado un evento o levantado una bandera.

Sin embargo, es mejor no hacerlo: todo debe estar en su sitio.

En el temporizador del Asesor Experto tomamos la lista según los criterios necesarios y en list.Total()>xxx hacemos lo que queremos.

 
fxsaber:

¿No has visto esto? ¡Se puede jugar en poco tiempo!

Eso es exactamente lo que vi.

    
  // Закрыли позиции
  for (int i = 0; i < Total; i++)
    OrderClose(Tickets[i], 1, SymbolInfoDouble(_Symbol, SYMBOL_BID), 100);
}


Y mi puesto

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias de comercio

Cómo organizar un bucle de pedidos

Alexey Viktorov, 2017.10.06 08:49

¿Cuál es la probabilidad de cerrar/borrar manualmente una orden exactamente en el momento de ejecutar el ciclo?


Y también, ¿cuál es el sentido más profundo en el comercio real para perseguir continuamente el bucle de órdenes? Lo más importante para nada...

 
Alexey Viktorov:

Además, ¿cuál es el significado más profundo en el comercio real de correr continuamente a través de un bucle de órdenes?

En un entorno de combate, esto debería hacerse siempre. Por lo tanto, la probabilidad de encontrarse con un lado que cierra una posición dentro de un ciclo es un porcentaje.

Razón de la queja: