Discusión sobre el artículo "Símbolo personalizados: fundamentos de uso en la práctica" - página 4

 
afsmerinostra:

¡Buenas tardes, Stanislav!

Muchas gracias por el artículo y el trabajo realizado, ¡he encontrado muchas cosas nuevas!

¿Puedes decirme dónde en el código para buscar la lógica de la formación de barras de inversión en RENCO, he estado luchando con esto durante un mes en el probador, pensé que iba a encontrar una manera de simplemente pasar por alto con las señales, pero no así.... ) Soy un principiante en la programación, así que si usted puede meter el dedo específicamente, se lo agradecería.

¿Por qué no podríamos dejar ABIERTO como está, para qué moverlo en las inversiones? Sería mucho más fácil con un probador, y en general. ¿Es así históricamente con renko? ¿Y tiene alguna utilidad práctica, salvo la "corrección"?

Parece que todas las barras en RenkoTicks (si estamos hablando de ello) se construyen de acuerdo con el mismo algoritmo - se marcan con "caja arriba" y "caja abajo" en los comentarios (las reversiones no se marcan de una manera especial, pero se pueden ver por la dirección de las cajas). Es más lógico construir señales en el indicador, imho, no veo el punto de entrar en el generador de símbolos personalizados.

No entiendo lo del movimiento abierto. Las cajas de renko clásico son iguales en tamaño por definición y la reversión está marcada por una brecha del tamaño de la caja. Hay otras variedades de renko (incluyendo las que no tienen gaps), pero no están en el artículo.

 
Hola, tal vez me perdí una parte pero, ¿cómo pueden las mechas de los bloques renko ser más grandes que los cuerpos?
 
Adren6:
Hola, tal vez me perdí una parte pero, ¿cómo pueden las mechas de los bloques renko ser más grandes que los cuerpos?

Las mechas muestran los movimientos del precio entre el momento en que se completó la caja anterior y la siguiente caja. Por ejemplo, si tenemos una caja alcista terminada, el precio puede subir algunos puntos y no formar la siguiente caja, si la distancia es menor que el tamaño de la caja requerida. Entonces el precio comienza a moverse hacia abajo, va lado a lado con la última caja alcista, cubre toda la caja en dirección hacia abajo (aún no es una nueva caja), luego cubre más puntos y finalmente alcanza el tamaño de la caja. En este momento se forma una nueva caja bajista, y la mecha alcista muestra toda la distancia, que es la caja alcista anterior y el movimiento alcista anterior no finalizado que no fue suficiente para formar la siguiente caja alcista.

El tamaño de una mecha es siempre menor que 2 tamaños de caja, porque esta es la distancia que llevaría a un retroceso. Hasta que no se produzca el retroceso, la mecha recoge toda la volatilidad.

 
Stanislav, estaba buscando operar con gráficos Renko, tu desarrollo cubre todas mis dudas al respecto. Gracias por agregar gran valor a los traders. El asesor experto solo necesita una hora de inicio y fin para operar.
 

También me he encontrado con "HistoryCache: error de lectura de cabecera de contenedor [0]" seguido de "HistoryBase: se ha encontrado un contenedor no válido (1970.01.01)".

Al mismo tiempo, el historial de enero de 2022 se elimina del historial de la herramienta personalizada, quedando un hueco desde el 31 de diciembre hasta hoy.

Ocurre sólo en 2 ordenadores, los recursos son suficientes.

@Slava, ¿qué detalles necesitas para la reproducción?

 
Andrey Khatimlianskii #:

También me he encontrado con "HistoryCache: error de lectura de cabecera de contenedor [0]" seguido de "HistoryBase: se ha encontrado un contenedor no válido (1970.01.01)".

Esto elimina el historial de enero de 2022 del historial de la herramienta personalizada, obteniendo un hueco desde el 31 de diciembre hasta hoy.

Ocurre sólo en 2 ordenadores, los recursos son suficientes.

@Slava, ¿qué detalles necesitas para la reproducción?

En mi humilde opinión, hace tiempo que se podría haber incorporado un auto-reportador en la versión beta del terminal, similar a la forma en que Android envía cuelgues y exepts a Google Play.

Entonces no habría necesidad de bailar con pandereta sobre reproducir la situación y proporcionar pruebas - toda la información necesaria en forma de volcado sería enviada a MQ por consentimiento del usuario.

Pero al parecer esto no le conviene a MQ, porque incluso cerraron la SD. Y si hubiera un auto-reportador, estarían inundados de informes de errores.

 
Stanislav Korotky #:

En mi humilde opinión, hace mucho tiempo se podría haber incorporado un autoinforme en la versión beta del terminal al estilo de cómo Android envía cuelgues y excepciones a Google Play.

Entonces no habría necesidad de bailar con pandereta sobre la reproducción de la situación y proporcionar pruebas - toda la información necesaria en forma de volcado sería enviada a MQ por el consentimiento del usuario.

Pero por lo visto esto no le conviene a MQ, porque incluso han cerrado la SD. Y si hubiera un auto-reportador, estarían inundados de informes de errores.

Estoy de acuerdo, después del cierre del service-desk se hizo muy difícil arreglar los errores encontrados por los usuarios.

Sólo fxsaber consigue de alguna manera aportar algunas de sus ideas a MQ.

Aparentemente, ya estamos en la etapa en la que debemos trabajar con lo que tenemos y no esperar nada en absoluto.

 

Cuando se utilizan símbolos personal izados, ¿se aplica algún tipo de escala al spread?

He importado algunos datos de ticks de Dukascopy para EURUSD (a los que he llamado EURUSD_TDS). Comparando los precios en la pestaña "Ticks" del símbolo personalizado con los precios mostrados para el mismo periodo usando el siguiente código, se muestra que los precios de compra son más o menos los mismos, pero los precios de venta son diferentes de tal manera que el spread es significativamente menor que en la pestaña "Ticks" - es decir, el EA está viendo un spread menor que los datos en bruto.También la sincronización de los ticks difiere, lo que me sorprendió un poco, pero es el problema del spread lo que más me preocupa.

void OnTick()
{
   double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
   datetime now = TimeCurrent();
   
   if ((now >= StartDate) && (now < EndDate))
   {
      double spread = (Ask - Bid) / _Point;
      writeToLog(StringFormat("%s, %.5f, %.5f, %.i", (string)now, Bid, Ask, (int)spread));
   }
}


Datos brutos, spread entre 11 pts y 67 pts... Lo que ve el EA, spread 9 o 26 pts...

 
Mr David Frederick Roberts símbolos personalizados, ¿se aplica algún tipo de escala a la dispersión?

He importado algunos datos de ticks de Dukascopy para EURUSD (a los que he llamado EURUSD_TDS). Comparando los precios en la pestaña "Ticks" del símbolo personalizado con los precios mostrados para el mismo periodo usando el siguiente código, se muestra que los precios de compra son más o menos los mismos, pero los precios de venta son diferentes de tal manera que el spread es significativamente menor que en la pestaña "Ticks" - es decir, el EA está viendo un spread menor que los datos en bruto.También la sincronización de los ticks difiere, lo que me sorprendió un poco, pero es el problema del spread lo que más me preocupa.


Datos brutos, spread entre 11 pts y 67 pts... Lo que ve el EA, spread 9 o 26 pts...

Hola, no hay "escalado" del spread, pero probablemente puede haber otros matices que interfieran. Por ejemplo, asegúrate de que estás probando en modo ticks reales y no tienes una opción con spread fijo activado (según el log de la derecha parece el mismo spread durante cada barra).

Sería bueno ver las secuencias exactas de ticks tanto para la tabla UI como para el registro de tu EA (incluyendo msegs) - tu captura de pantalla actual no parece mostrar la misma secuencia de ticks.

 
Stanislav Korotky #:

Hola, no hay "escalado" del spread, pero probablemente puede haber otros matices que interfieran. Por ejemplo, asegúrese de que está probando en el modo de ticks reales y no tiene una opción con spread fijo activado (según el registro de la derecha parece el mismo spread durante cada barra).

Sería bueno ver las secuencias exactas de ticks tanto para la tabla UI como para el registro de tu EA (incluyendo msegs) - tu captura de pantalla actual no parece mostrar la misma secuencia de ticks.

Gracias por la respuesta. Esto es muy extraño, de hecho estoy usando el modo de ticks reales y no era consciente de que hay una opción de spread fijo en MT5 así que estoy seguro de que no (estoy más familiarizado con MT4).No me había dado cuenta de que los diferenciales eran los mismos para cada barra, de hecho, mirando a través del archivo completo parece que sólo cambian en los límites de 1 minuto. Supongo que estoy en lo cierto al pensar que las llamadas a SymbolInfoDouble() deben devolver los precios de la garrapata que se procesa como resultado de la llamada al evento OnTick() - no algún tipo de valor M1?

Intenté imprimir lo que esperaba que fuera el tiempo real del tick con milisegundos usando el código de abajo, pero el valor de milisegundos es siempre cero...

void OnTick()
{
   double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   double Bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
   long timeMillis = SymbolInfoInteger(_Symbol, SYMBOL_TIME_MSC);
   datetime now = TimeCurrent();
   
   datetime time = (datetime)(timeMillis / 1000);
   long millis = timeMillis % 1000;
   
   if ((now >= StartDate) && (now < EndDate))
   {
      double spread = (Ask - Bid) / _Point;
      writeToLog(StringFormat("%s.%i, %.5f, %.5f, %.2f", (string)time, millis, Bid, Ask, spread));
   }
}

EDIT: Como he dicho soy relativamente nuevo en MQL5 - Acabo de encontrar SymbolInfoTick(), tal vez debería estar usando eso en lugar de lo que estoy haciendo! Voy a probar eso y ver qué pasa ...


Ok, eso no hizo ninguna diferencia, exactamente los mismos resultados, pero ninguno de ellos atando con el diálogo "Symbol Ticks" en la terminal. Me equivoqué al decir que el valor de los milisegundos era siempre cero - es distinto de cero durante exactamente un minuto, a saber, ¡el minuto antes de medianoche!

Esto me parece un problema bastante importante. Mi EA de trading espera recibir ticks con precios que coincidan con los datos de tick importados (¡como cualquier otro!). Me atrevo a decir que hay algo que estoy haciendo mal, pero si es así me gustaría saber qué es.He adjuntado un archivo zip con la prueba de EA, una hoja de cálculo de los resultados de la hora a cada lado de la medianoche, y algunas capturas de pantalla de configuración y garrapatas.

Archivos adjuntos: