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

 
Boris:

Así que... Lea la documentación (de nuevo).

Pregunta. ¿Qué ocurre? No cuenta ni con CopyTicksRange ni con CopyTicks.

Tienes que leer más y más y más... Léelo hasta que leas lo que he copiado de la documentación para ti personalmente y lo he marcado en negrita con letra roja.

Qué fastidio... las citaciones no se aferran... Tendré que duplicarlas...

de_msc

[en] La fecha a partir de la cual se solicitan las garrapatas. Especificado en milisegundos desde el 01.01.1970. Sino se especifica el parámetro from_msc , los ticks se devuelven desde el principio del historial. Se devuelven los ticks con tiempo >= from_msc.

to_msc

[en] Fecha en la que se solicitan los ticks. Especificado en milisegundos desde el 01.01.1970. Se devuelven los ticks con tiempo <= to_msc. Si no se especifica el parámetro to_msc, se dan todos los ticks hasta el final del historial .


 
Boris:

Así que... Lea la documentación (de nuevo).

Pregunta. ¿Qué ocurre? No cuenta a través de CopyTicksRange o a través de CopyTicks.

La duda que tengo, por ejemplo, no conozco bien µl5, es la palabra Fecha, no Hora. Y en consecuencia una pregunta, y dentro de una fecha ¿qué edad tendrá?

Y después de una insinuación. ¿Cómo obtener el tiempo en milisegundos?

 
Valeriy Yastremskiy:

La pregunta que tengo es, por ejemplo, no conozco muy bien µl5, es la palabra Fecha, no Hora. Y en consecuencia la pregunta es, dentro de la misma fecha, ¿cuál es la edad?

Y después de una insinuación. ¿Cómo obtener el tiempo en milisegundos?

1 segundo = 1000 milisegundos. Y "Date" implica "Date and Time", porque el tipo es datetime y no sólo date.

 
Alexey Viktorov:

Lee más y más y más... Lee hasta que hayas leído lo que he copiado personalmente de la documentación para ti y que he resaltado en negrita.

Lástima... las comillas no se pegan... Tendré que duplicarlas...


Oh, hombre... Sí, bueno... ¡Funciona!

 

Pregunta sobre mql4:

Hay una restricción de propagación en el código de la EA, la EA se establece para varios gráficos.

No es del todo correcto introducir el spread medio de un par en los parámetros de entrada, y varía de una mesa de operaciones a otra.

El diferencial medio es de 5pp, pero hay momentos en los que se amplía a 12pp durante unos minutos y no es un rollover.

¿Cómo puedo automatizar esto para calcular el spread medio y no abrir una posición en un spread ampliado?

   MqlRates rates[]; 
   int copied=CopyRates(NULL,PERIOD_M1,0,100,rates); 
   if(copied>0) 
   for(int e = ArraySize(rates)-1; e >=0; e--) {
     Print(e,"=",rates[e].spread); // всегда "0"
   }
 

Hola, ¿es posible y cómo crear un Asesor Experto basado en el algoritmo de apertura y cierre de una operación sin utilizar ningún indicador?

Por ejemplo, tome dos líneas, una línea de tendencia es alcista y la segunda también es bajista, póngalas una encima de la otra, hay un punto de intersección entre las dos líneas, supongamos que está en el 15-30 en el tiempo, entonces ¿cómo hacer que la orden se abra automáticamente al mismo tiempo para empezar en cualquier dirección, cómo hacer que el algoritmo encuentre estos puntos yabra una posición? Me gustaría que me lo aclararan y que me dieran su opinión.

¿Podemos crear un EA basado en dicho T3?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
Vitaly Muzichenko:

Pregunta sobre mql4:

Hay una restricción de propagación en el código de la EA, la EA se establece para varios gráficos.

No es del todo correcto introducir el spread medio de un par en los parámetros de entrada, y varía de una mesa de operaciones a otra.

El diferencial medio es de 5pp, pero hay momentos en los que se amplía a 12pp durante unos minutos y no es un rollover.

¿Cómo automatizar esto para calcular el diferencial medio y no abrir una posición sobre una extendida?

Una buena idea es vigilar el diferencial en cada tic. A juzgar por la retórica y los problemas de los comerciantes con su fuerte aumento a los loos. El problema, según entiendo, no es un gran diferencial largo, eso es lo de menos, sino un aumento brusco del diferencial grande y corto.

Yo miraría la especificada en las propiedades del símbolo, la tomaría como media y la aumentaría razonablemente antes de abrir las órdenes. Y también miraríamos el diferencial para cerrarlo o modificarlo. O bien, yo vigilaría el diferencial medio de los últimos 3 a 10 ticks.

 
Valeriy Yastremskiy:

Una buena idea es vigilar el diferencial en cada tic. A juzgar por la retórica y los problemas que tienen los comerciantes con un fuerte aumento de la misma hasta el punto de perder dinero. El problema, tal y como yo lo entiendo, no es un diferencial grande y largo, que es el menor de los problemas, sino un diferencial grande y corto en aumento.

Yo miraría la especificada en las propiedades del símbolo, la tomaría como media y la aumentaría razonablemente antes de abrir las órdenes. Y también miraríamos el diferencial para cerrarlo o modificarlo. O bien, se vigilaría el diferencial de los últimos 3 a 10 ticks de media.

Ayer cerca de 1 minuto (y no son 10 ticks) hubo ~14 puntos de dispersión con un promedio de dispersión normal de 4 puntos. Así que en el momento de la extensión el robot entró a comprar.

10 ticks son claramente insuficientes

 
Vitaly Muzichenko:

Ayer durante aproximadamente 1 minuto (que no son 10 ticks) hubo un diferencial de ~14pp con un diferencial medio normal de 4pp. Así que en el momento de la extensión el robot entró a comprar.

Es evidente que 10 ticks no son suficientes.

La tarea aquí es fijar el principio y el final de los cambios. Y la fijación debe hacerse en un intervalo de tiempo corto. Es decir, el valor medio de la dispersión debe fijarse de un segundo a 10 segundos mediante una ventana flotante. Deberías mirar cuántos ticks por segundo en promedio o mirar los ticks durante 10 segundos y hacer un promedio. Prefiero la primera opción.

 
Valeriy Yastremskiy:

La tarea aquí es capturar el inicio de los cambios y el final. y las emisiones de los cambios individuales. y la captura debe ser en un corto período de tiempo. El valor medio de la dispersión debe fijarse de un segundo a 10 segundos mediante una ventana flotante. Deberías mirar cuántos ticks por segundo en promedio o mirar los ticks durante 10 segundos y hacer un promedio. La primera variante está más cerca de mí.

Yo lo he resuelto así:

void OnTick(void)
{
 int sp = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

   if(CheckSpr(sp)) {
     // Здесь код отправки
   }
}

//+------------------------------------------------------------------+
bool CheckSpr(int _sp)
{
  static int ts=0, res=0;
  static long tc=0;
   tc++;
   ts += _sp;
   res =ts/tc;
   if(tc>LONG_MAX-1) {
      tc=0;
      ts=0;
   }
   // Comment( res,"=",tc );
   if(tc<500) return(false);
   return(res>_sp?true:false);
}

El problema es que registrará una gran extensión en el rollover y trabajará con él.

Creo que esta solución es ineficaz, necesito limitar de alguna manera la grabación del rollover sin aplicar un límite de tiempo.

Razón de la queja: