Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 199

 
STARIJ:
Lee tu comentario: resulta que si una de las tres últimas órdenes se cierra con beneficio, ¡la operación se detiene!

Gracias por el consejo

ABRIR LA NUEVA ORDENADA que di sólo por el ejemplo. Todavía no estoy negociando.

No entiendo cómo codificar esta condición .

Si 3 - 4 - 5 ..... últimos pedidos se han cerrado en STOP

NO TENGO NI IDEA DE QUÉ HACER.

 
Victor Nikolaev:


Las diferencias son mínimas. Una de las variables es booleana.

La salida dirá verdadero o falso

Uf, no puedo averiguar cómo añadir variables - es decir, digamos que tengo 4 variables booleanas y necesito pasar por ellas?

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=15;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int n=0;n<N;n++)
     {
      int tmp=n;
      bool a= (bool) MathMod(tmp,2);
      bool b= (bool) MathMod(tmp,3);
      bool c= (bool) MathMod(tmp,4);
      bool d= (bool) MathMod(tmp,5);

      Print("N=",n,"; A=",a,"; B=",b,"; C=",c,"; D=",d);
     }

  }

Entiendo la esencia de la cuestión - debe ser un resto menor o mayor que cero después de la división - pero no puedo averiguar cómo lograr esto :(

 
ANDREY:

Gracias por el consejo

ABRIR LA NUEVA ORDENADA que di sólo por el ejemplo. Todavía no estoy negociando.

No entiendo cómo codificar esta condición .

Si 3 - 4 - 5 ..... las últimas órdenes se han cerrado en STOP

SÓLO NECESITO TOMAR ALGUNAS MEDIDAS.

Antes de tomar cualquier acción, deberíamos mirar 3 - 4 - 5 posiciones cerradas seguidas. Si todo está en parada, entonces toma alguna medida. Elemental, Watson...
 
ANDREY: Es necesario que se hayan cerrado no sólo las últimas sino también las penúltimas órdenes en la parada

y sólo entonces abrir otra orden

El script adjunto - lo he comprobado, funciona, el resultado se adjunta

//+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
    if(!OrderSelect(Номер, SELECT_BY_POS, MODE_HISTORY)) continue;
    Alert(Номер, "  Тикет = ", OrderTicket(),"  T =",OrderOpenTime(), "  Профит = ", OrderProfit());
    if(OrderProfit()>=0) break;
    Счет++;
    if(Счет==3)
    {
      Alert("Вот тут и открываем новый ордер");
      return;
    }
  }
  Alert("Подряд идущих убыточных ордеров слишком мало");
}

Eso es todo historia


Y esto es clic derecho en la historia y eligió el período hasta el 3 de mayo

 
STARIJ:

Se adjunta el script - probado, funciona, el resultado se adjunta

Esa es toda la historia.


Y esto es haciendo clic con el botón derecho del ratón en el historial y seleccionando el periodo hasta el 3 de mayo

Es una parada. Y no es fiable. Hay que hacerlo independientemente de la clasificación.
 

Lamento molestarle, responderé de nuevo a mi pregunta.

Creo que es el momento de mirar el gráfico, no soy un conocedor de mql4.

Puede que haya hecho una pregunta en la rama equivocada.

 
STARIJ:

Se adjunta el script - probado, funciona, el resultado se adjunta

Esa es toda la historia.


Y esto es haciendo clic con el botón derecho del ratón en el historial y seleccionando el periodo hasta el 3 de mayo

Muchas gracias por toda su ayuda.
 
Artyom Trishkin Así que es una parada. Y no es fiable. Debería hacerse independientemente de la clasificación.

Artem! En la esquina inferior derecha del terminal se encuentra el indicador de intercambios con el servidor - kilobytes recibidos y enviados. El indicador mostró 2318. Hice clic con el botón derecho del ratón en el historial y seleccioné Hoy (y hoy es domingo). La historia se vació. El script muestra que no hay órdenes en el historial. Hice clic con el botón derecho del ratón en el historial y seleccioné Todo el historial. El indicador cobró vida con 518 kilobytes añadidos. Por lo tanto, cuando se establece el filtro en un período LARGO, las órdenes se descargan del servidor. Si se establece un periodo menor, se eliminan. Por lo tanto, es mejor establecer Última semana, Últimos 3 días o Hoy para acelerar el trabajo (menos pedidos a procesar). Esto se puede comprobar fácilmente con la ayuda de un script con Alert(OrdersHistoryTotal());

Sobre la clasificación. Si hace clic en las cabeceras de las columnas del historial, puede ordenar el historial visualmente de forma descendente o ascendente de cualquier columna. Sin embargo, las órdenes se seleccionan siempre mediante la función OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY), empezando por el principio del intervalo SELECTED del historial. Y en el historial, los pedidos están ordenados por la hora en que fueron enviados al servidor, que es lo más natural. Si el número = 0, entonces este es el orden más antiguo del intervalo seleccionado de la historia. Si OrdersHistoryTotal()-1, es el pedido más reciente del intervalo de historia elegido. Lo he comprobado muchas veces. Y es poco probable que se cambie alguna vez.

 
STARIJ:

Artem! En la esquina inferior derecha del terminal hay un indicador de intercambio con el servidor - los kilobytes recibidos y enviados. En el indicador era 2318. Haga clic con el botón derecho del ratón en el historial y seleccione Hoy (y hoy es domingo). La historia está vacía. El script muestra que no hay órdenes en el historial. Hice clic con el botón derecho del ratón en el historial y seleccioné Todo el historial. El indicador cobró vida con 518 kilobytes añadidos. Por lo tanto, cuando se establece el filtro en un período LARGO, las órdenes se descargan del servidor. Si se establece un periodo menor, se eliminan. Por lo tanto, es mejor establecer Última semana, Últimos 3 días o Hoy para acelerar el trabajo (menos pedidos a procesar). Esto se puede comprobar fácilmente con la ayuda de un script con Alert(OrdersHistoryTotal());

Sobre la clasificación. Si hace clic en las cabeceras de las columnas del historial, puede ordenar el historial visualmente de forma descendente o ascendente de cualquier columna. Sin embargo, las órdenes se seleccionan siempre mediante la función OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY), empezando por el principio del intervalo SELECTED del historial. Y en el historial, los pedidos están ordenados por la hora en que fueron enviados al servidor, que es lo más natural. Si el número = 0, entonces este es el orden más antiguo del intervalo seleccionado de la historia. Si OrdersHistoryTotal()-1, es el pedido más reciente del intervalo de historia elegido. Lo he comprobado muchas veces. Y es poco probable que esto cambie alguna vez.

Eres tan nuevo aquí que no sabes todo como era. Es una regla de tres años que una búsqueda basada en el tiempo es la única forma fiable de identificar las últimas/primeras o consecutivas posiciones. Estás trabajando con dinero. Vale, aunque sólo sea con la tuya, pero también con la de los demás. Incluso indirectamente con su programa.

Y lo que me cuentas no es un secreto ni una revelación, todo el mundo lo sabe desde hace años ;)

Y lo que estaba diciendo - todavía no lo entiendes ...

 
Artyom Trishkin:

Eres tan nuevo aquí que no sabes todo como era. Es una regla de tres años que una búsqueda basada en el tiempo es la única forma fiable de identificar las últimas/primeras o consecutivas posiciones. Estás trabajando con dinero. Vale, aunque sólo sea con la tuya, pero también con la de los demás. Incluso indirectamente con su programa.

Y lo que me cuentas no es un secreto ni una revelación, todo el mundo lo sabe desde hace años ;)

Y de lo que yo hablaba, sigues sin entenderlo...

¡¡¡Artem, o es trolling discreto o no sabes de qué escribes!!!

En tu último post hablaste de la clasificación. Se le explica que no hay dependencia de la clasificación.

He visto y participado en uno de los debates sobre la selección de pedidos por tiempo. La conclusión fue que los pedidos se ordenan ahora en la base de datos de pedidos según el momento en que se envían al servidor. Pero TEORÉTICAMENTE existe el temor de que los desarrolladores puedan cambiar esto. Ese fue el final de la discusión. Como especialista en bases de datos le aseguro que este temor es infundado, un cambio está fuera de toda duda. Puedes remitir el problema a los desarrolladores. Si escribo algo, sé lo que escribo. Es el 50º aniversario de la programación. Si notas en mis posts algún desorden desde tu punto de vista - contáctame en persona. Te lo explicaré y tus dudas se disiparán. Pero aquí es poco probable que las discusiones sean apropiadas. Le escribí un guión y me dio las gracias. ¿No es bueno?

Sobre el otro día. Acabo de cambiar mi nombre de usuario, puedes adivinar cuál era por estilo. O comprueba tu IP, probablemente tengas acceso... Por favor, déjelo sin responder.

Razón de la queja: