Pregunta sobre el asesor multidivisa - página 12

 

Por la tarde. Función MiniMaxOrderPrice(Symbol(), -1, OP_BUYSTOP, 1 )

muestra correctamente una orden de ticker que está actualmente más lejos del precio actual que otras órdenes.

Tengo que eliminar este pedido "lejano" si el número de pedidos realizados supera el valor especificado.

Lo hago así:

//--------Удаление лишних ордеров--------------

if ( NumberOfOrders(NULL,OP_BUYSTOP,-1)> Количество_ордеров_  ){
//если число ордеров больше заданного

 for (int v=0; v<OrdersTotal(); v++)                                   {       
  if (OrderSelect( v, SELECT_BY_TICKET, MODE_TRADES))                    {
// перебираем по тикету
           
   if (OrderSymbol()==Symbol())                                        {                  
    if (OrderType() == OP_BUYSTOP)     { выбираем байстопы 


if (OrderTicket()== MiniMaxOrderPrice(Symbol(), -1,OP_BUYSTOP,1) )
//если тикет равен тикету самого дальнего ордера, - удаляем его

{     OrderDelete(OrderTicket(),Yellow);     return(0);    }
             }}}}} 


Pero desgraciadamente no es la orden más lejana la que se borra (si es que se borra) del todo.

Sin embargo, puedo ver en el comentario y en el gráfico que la función

MiniMaxOrderPrice(Symbol(), -1,OP_BUYSTOP,1)
es el billete más lejano que se devuelve.

Pero es el orden más lejano el que se aleja. Y entonces, después de varios borrados, empezamos a recibir errores de borrado de órdenes 4108 (ticket equivocado/ ticket desconocido).

Aparentemente hay un error en el código en las últimas 2-3 líneas.... ¡!

Por favor, indique dónde puede haber un error... ??


 
rid писал(а) >>

Por la tarde. Función MiniMaxOrderPrice(Symbol(), -1, OP_BUYSTOP, 1 )

muestra correctamente una orden de ticker que está actualmente más lejos del precio actual que otras órdenes.

Tengo que eliminar este pedido "lejano" si el número de pedidos realizados supera el valor especificado.

Lo hago así:


Pero desgraciadamente no es la orden más lejana la que se borra (si es que se borra).

Aunque, en el comentario y visualmente en el gráfico, veo que la función

devuelve el billete exactamente más lejano.

Pero por alguna razón borra el que está cerca. Y entonces, después de varios borrados, empiezan a producirse los errores de borrado de órdenes 4108 (ticket erróneo/desconocido).

Aparentemente hay un error en el código en las últimas 2-3 líneas.... ¡!

Por favor, indique dónde puede haber un error... ??

int DeleteTicket= MiniMaxOrderPrice(Symbol(), -1,OP_BUYSTOP,1);
OrderSelect( DeleteTicket, SELECT_BY_TICKET);
OrderDelete(OrderTicket(),Yellow);  
Podrías hacer algo así, aunque no estoy seguro de que sea la mejor opción
 
Gracias. Lo intentaré.
 

Sí...

Parece que la clasificación por billetes en esta situación es un asunto complicado y no del todo correcto.

¡El programa se confunde en las entradas! Se está retrasando en la salida. Elimina los pedidos fuera de orden...

Intentaré establecer órdenes con diferentes magos. Y luego ordenar por mago con todas las consecuencias...

 

Si no te importa, puedo echar un vistazo a todo el código, compruébalo. vinin@mail.ru

 

¡BIEN! Gracias. Limpiaré los mocos del código, lo cepillaré y lo enviaré.

 

¿Puede decirme algo, por favor? Si abro varios gráficos y pongo un EA en cada uno de ellos, ¿funcionará cada uno de ellos o sólo el que esté en la ventana del gráfico activo?

 

Sí, es probable que así sea. Todos los EAs funcionarán, en todas las ventanas.

Además, echa un vistazo a los parámetros de EA.

Debe haber una opción de Magia o algo similar. SIMILAR.

Es decir, ¡este es el parámetro por el que el EA distingue las órdenes y posiciones "ajenas" de las propias!

Como dijo el poeta. -

Si un hombre me es fiel - es mi hermano,
Un hermano infiel es mi enemigo, maldito sea cien veces.
La medicina es a veces más peligrosa que el veneno,
La enfermedad a veces cura el veneno. (O.H.)

En otras palabras, las garantías puestas por otro experto, con otro mago, cada experto particular no presta atención. ¡Y exhibe y "recoge para la modificación" o cierra sólo su propia, con el mago específicamente establecido por él!

Eso es todo...

 

Me pregunto si cada uno tiene su propio asistente y sólo una posición permitida a la vez, el EA abrirá una posición si ya hay una posición abierta

por otro EA?

 

La pregunta está vagamente formulada, pero la he entendido.

La respuesta es: sí, claro que sí. Porque se dice:

¿Quién en la copa de la vida brillará una gota?
¿Tú o yo? Brillará y se desvanecerá.
Y el copero de la vida, - millones
Radiante salpica y derrama y derramará.(0.X.)

//-------------------------------------------------------------

Independientemente de que haya posiciones abiertas en el terminal para este instrumento. Abierta manualmente o por otro Asesor Experto.

Pero si el magik de estas posiciones abiertas no coincide con el magik del EA específico en cuestión, ¡este EA abrirá su propia posición con su propio magik! A pesar de la presencia de otras posiciones (con un mago diferente) para este instrumento.


Razón de la queja: