¿Cómo implementar el cierre de posiciones de una en una después de N minutos? - página 7

 
Renat Akhtyamov:

¿Ha traducido al inglés?

¿Y la ficha de los expertos está en ruso?


No, todo es por defecto.

 
Natalya Dzerzhinskaya:

No, todo es por defecto.

en la pestaña de expertos por favor mire - ¿los errores están traducidos en ruso?

 
Natalya Dzerzhinskaya:

Sí, el código funciona.

Uso int en lugar de bool para cerrar en su código

int cerrar;

Y un billete se utiliza para todos los cierres de compra y venta, pero esto es sólo para la prueba. Tal vez por esto hay un error porque la compra está cerrada y no hay cierre para la venta.

Bueno, eso es correcto, así es como se supone que debe ser

 
Renat Akhtyamov:

en la pestaña de expertos, ¿podría comprobar si los errores se emiten en ruso?


Todo se emite en inglés

 
Natalya Dzerzhinskaya:

todo se emite en inglés

La idea original, según sus descripciones, era que

Puse el código en la primera página, al final de la cual

if(TicketFirst>0)
{
//ну и пошло-поехало...
}

Es necesario poner una de las 2 funciones de cierre en esta condición y cerrar la orden encontrada por la entrada (yo puse dos), es decir

if(TicketFirst>0)
{
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }
                  if(OrderSelect(TicketFirst, SELECT_BY_TICKET)==true)
                  {
                     close=OrderClose(TicketFirst,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,clrBlue);
                     if(close<0){if(Fun_Error(GetLastError())==1)return;}
                  }

}

y colocar la función de manejo de errores después de todo el código

Además debería haber alguna lógica en la condición de entrada a la función de cierre, no lo has explicado hasta el final, yo también escribí sobre eso.

Y estaría bien.

Si se deja así, el mismo billete se cerraría dos veces. Habrá un error 4108 al cerrar un pedido con un ticket ya cerrado la primera vez.

 
Renat Akhtyamov:

así es, así es como debe ser

No hay que pensar en ello, sino utilizar la ayuda y escribir un valor de tipo bool.

Sin embargo, puedes usar int, no cambiará nada de todos modos.

Ejecuta el script, puedes ejecutarlo 50 veces seguidas, y la variable close nunca será igual a -1. Esto significa que los errores no se traducirán en ningún idioma, ni siquiera en chino.

//+------------------------------------------------------------------+
#property version   "1.00"
#property strict
#property show_inputs

input int MyTicket = 451971753;

int close = -1;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//закрытие по тикету, переделайте под свой

   if(OrderSelect(MyTicket,SELECT_BY_TICKET)==true)
     {
      close=OrderClose(MyTicket,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,clrRed);
      if(close<0) Print("ERROR равен -1: ",close);
      if(close==0) Print("ERROR не может быть -1 НИКОГДА: ",close);
     }
  }


 
Vitaly Muzichenko:

No hay que pensar en ello, sino utilizar la ayuda y escribir un valor de tipo bool.

Sin embargo, puedes usar int, no cambiará nada de todos modos.

Ejecuta el script, puedes ejecutarlo 50 veces seguidas, y la variable close nunca será igual a -1. Esto significa que los errores no se traducirán en ningún idioma, ni siquiera en chino.

Vitaly, no tienes que enseñarme.

Recuerdo que yo mismo te enseñé hace uno o dos años cómo cambiar a 5 círculos, así que tienes menos experiencia hasta ahora...

No hiciste uno de los míos, pero estás diciendo...
 
Renat Akhtyamov:

Vitaly, no tienes que sermonearme.

Recuerdo que yo mismo te enseñé hace uno o dos años cómo cambiar a una de 5 manivelas, así que tienes menos experiencia hasta ahora...

Incluso te he puesto un ejemplo, ¡no te hagas el remolón!

 
Vitaly Muzichenko:

Sí, incluso he puesto un ejemplo, ¡no te hagas ver mal!

No hiciste lo mismo que el mío, lo hiciste a tu manera, y dices...

De todos modos, ¿cuál es tu constitución?

y no me muestra la ficha de los expertos, me muestra el diario. Son dos grandes diferencias.

El error en mi caso lo emite el Asesor Experto en la pestaña de Asesores Expertos.
 
Renat Akhtyamov:

No hiciste uno de los míos, hiciste uno de los tuyos, y dices...

¿Cuál es tu constitución?

y no me muestra la ficha de los expertos, me muestra el registro. En realidad hay dos grandes diferencias.

El error en mi caso lo transmite el Asesor Experto en la pestaña de Asesores Expertos.

Lo entiendo, estás tratando de trollearme.

Bien, me voy de aquí.

No, supongo que escribiré a servicedesk y les diré que tengo un terminal defectuoso.

Razón de la queja: