Discusión sobre el artículo "Desarrollo de Sistemas Avanzados de Trading ICT: Implementación de Order Blocks en un Indicador" - página 2
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Respecto al primer problema, creo que puede deberse a que el indicador no carga los datos correctamente. Esto suele ocurrir al cambiar de gráfico o al abrir uno nuevo. Sin embargo, si se trata de un gráfico que ya estaba en uso, convendría investigar más a fondo por qué no se obtienen los bloques de órdenes. En ese caso, sería útil incluir mensajes de depuración (Print) en el código para identificar el problema.
En cuanto al segundo problema, en el que sólo se obtienen bloques de órdenes alcistas, podría deberse a que el EURUSD en el marco temporal H4 se encuentra actualmente en máximos de 600-700 velas. En ese contexto, es posible que todos los bloques de órdenes bajistas hayan sido mitigados, razón por la cual no se dibujan en el gráfico.
En cuanto al cambio de criterio, he reducido algunas variables booleanas en el código. Sin embargo, no sería un problema reintroducir esas condiciones si fuera necesario.
En cuanto a los colores, la última versión que publiqué en los comentarios aplica transparencia a los colores de los rectángulos del bloque de órdenes. Quizá por eso los colores no coinciden visualmente con los de las versiones anteriores. Por último, en cuanto a la animación, no he entendido muy bien a qué te referías. ¿Podrías explicar con más detalle qué entiendes por animación en este contexto?
En la Sección 3.0 Conclusión, usted presentó un video del indicador en acción para XAUUSD M1. Me preguntaba si estaba utilizando la función del Probador de Estrategias para producir el video. Cuando ejecuto el Probador de Estrategias, generalmente para un EA con el Modo Visal activado, muestra los indicadores y las operaciones, pero generalmente no muestra el texto del EA que se está ejecutando. Me preguntaba si usted podría conocer la causa o una solución.
Además, he descubierto que redimensionar grandes matrices multidimensionales lleva un tiempo desmesurado. He recurrido a utilizar 100 elementos adicionales en cada redimensionamiento para minimizar el tiempo transcurrido. Esto funciona muy bien para mí, ya que utilizo las matrices basadas en cero para series temporales.
En la Sección 3.0 Conclusión, usted presentó un video del indicador en acción para XAUUSD M1. Me preguntaba si estaba utilizando la función del Probador de Estrategias para producir el video. Cuando ejecuto el Probador de Estrategias, generalmente para un EA con el Modo Visal marcado, muestra los indicadores y las operaciones, pero generalmente no muestra el texto que el EA que se está ejecutando. Me preguntaba si usted podría saber la causa o una solución.
Además, he descubierto que redimensionar grandes matrices multidimensionales lleva un tiempo desmesurado. He recurrido a utilizar 100 elementos adicionales en cada redimensionamiento para minimizar el tiempo transcurrido. Esto funciona muy bien para mí, ya que utilizo las matrices basadas en cero para series temporales.
Hola CapeCoddah
Utilicé una aplicación externa para grabar el vídeo, no una función incorporada en Strategy Tester.
Respecto al texto que mencionas durante la ejecución del Asesor Experto, entiendo que podría ser algo externo a MQL5 y no objetos gráficos como etiquetas. Sería de gran ayuda si pudieras compartir una captura de pantalla para poder analizarlo mejor.
Saludos cordiales.
HOLA,
Gracias por la información, te lo agradezco.
Sobre la traducción de tus comentarios del español al inglés. Como Google Translate no traduce el texto después de un // en la línea, no se ajustaba a mis necesidades para traducir tus comentarios. Probé DeepL y sí traduce el texto más allá de //. También me resultó difícil de entender. Traducir el código no fue difícil pero salvar la traducción fue imposible.Sin embargo, realmente hizo un trabajo chapucero de traducción. Insertó puntos y "End" donde pensó que la oración terminaba. Además cambió && por &&& y ciertamente más problemas. Me di por vencido después de corregir estos errores y la compilación todavía produjo más de 100 errores.
Corrí su Parte 2 a través del Probador de Estrategias y sus líneas TP & SL y texto se muestran. Sin embargo, parece que sus cálculos para los niveles TP & SL necesitan ser ajustados. Además, la prueba muestra SLs y TPs superpuestos . En un entorno sin cobertura, los SLs y TPs se fusionarían en un SL o TP. Debería haber sólo una línea, no dos, y debería tener un paso para indicar el cambio de valor. Tampoco muestra en el gráfico dónde comienza su operación prevista.
He decidido concentrarme en su primer programa, ya que parece producir más señales.Estoy planeando: incorporar un mecanismo para terminar la señal cuando termine su tendencia; eliminar señales duplicadas dentro de n barras una de otra; estandarizar la altura de la caja centrada alrededor de la mediana de la barra; identificar y modificar los parámetros del bloque de órdenes para permitir el uso racional en periodos H1 y superiores; colocar una Media Móvil de los volúmenes ya sea en el gráfico principal o abrir un gráfico indicador; y finalmente convertir a matrices basadas en cero para ajustarse a mi uso estándar y eventualmente incorporarlo a mi EA.Intentaré utilizar funciones para realizar y encapsular la lógica para permitirle incorporarla si lo desea. Sin embargo, mi estilo de organización de programación no es tradicional y no se ajusta a las sangrías automáticas de MetaQuotes.
Continuaré siguiéndote ya que creo que tienes un muy buen enfoque para el trading, mantén los grandes esfuerzos.
Saludos y un cordial saludo,
CapeCoddah
Hola,
Estaba probando mi EA en el Probador de Estrategias, EURUSD H4 1/1/2025-2//1/2025, y observé al final de la ejecución, que había dos problemas con el indicador de Orden en Bloque.
En primer lugar, seleccionó una orden en bloque el 2/3/2025 que está fuera de la ventana de prueba y, en segundo lugar, colocó el texto del bloque en el área de desplazamiento del gráfico.
Disfrute de
CapeCoddah
Aquí está una versión traducida Inglés de su primer indicador. Decidí que necesitaba para entender sus muchos comentarios de código en Inglés y reconsideró Google Translate como DeepL no me impresionó. Primero cambié todos los comentarios // en # / # para permitir Google traducir los comentarios // línea .. y luego convirtió el archivo de texto en un documento de MS Word para la entrada a Translate.Después de la traducción, abrí el nuevo documento y lo guardé como un archivo de texto, le cambié el nombre y empecé a sintaxis de la nueva fuente. Estimo que Translate hizo el 90% del trabajo, pero se añaden espacios y caracteres que requieren la conversión manual. Después de un día de trabajo, se compila sin errores. Sorprendentemente funcionó en el primer intento! Lo comparé con su indicador original para 1000 barras y eran idénticos.
Aquí está una versión traducida Inglés de su primer indicador. Decidí que necesitaba para entender sus muchos comentarios de código en Inglés y reconsideró Google Translate como DeepL no me impresionó. Primero cambié todos los comentarios // en # / # para permitir Google traducir los comentarios // línea .. y luego convirtió el archivo de texto en un documento de MS Word para la entrada de Translate.Después de la traducción, abrí el nuevo documento y lo guardé como un archivo de texto, le cambié el nombre y empecé a sintaxis de la nueva fuente. Estimo que Translate hizo el 90% del trabajo, pero se añaden espacios y caracteres que requieren la conversión manual. Después de un día de trabajo, se compila sin errores. Sorprendentemente funcionó en el primer intento! Lo comparé con su indicador original para 1000 barras y eran idénticos.
Desafortunadamente parece que su indicador es estructuralmente defectuoso e inútil para el comercio, ya que está realizando sus cálculos sobre las variables futuras que son unknownat el momento del cálculo como se destaca en el código de abajo en negrita.
for( int i = Universal_search_range ; i > 5 ; i--) {
//comprobación de errores
if( i + 3 > ArraySize(highArray) || i + 3 > ArraySize(atr))
continue ;
if( i < 0) continue;
// Actualiza los índices de las velas
one_candle = i ; //vela central
candle_behind_two = i +2;
candle_behind_one = one_candle +1;
dos_vela = una_vela - 1;
tres_vela = una_vela - 2;
four_candle = one_candle -3;
// Calcular el volumen medio de las velas anteriores
body1 = MathAbs(closeArray[one_candle] - openArray[one_candle]);
body2 = MathAbs(closeArray[two_candle] - openArray[two_candle]);
body3 = MathAbs(closeArray[three_candle] - openArray[three_candle]);
Por desgracia, parece que su indicador es estructuralmente defectuoso e inútil para el comercio, ya que está realizando sus cálculos sobre las variables futuras que son unknownat el momento del cálculo como se destaca en el código de abajo en negrita.
for( int i = Universal_search_range ; i > 5 ; i--) {
//comprobación de errores
if( i + 3 > ArraySize(highArray) || i + 3 > ArraySize(atr))
continue ;
if( i < 0) continue;
// Actualiza los índices de las velas
one_candle = i ; //vela central
candle_behind_two = i +2;
candle_behind_one = one_candle +1;
dos_vela = una_vela - 1;
tres_vela = una_vela - 2;
four_candle = one_candle -3;
// Calcular el volumen medio de las velas anteriores
body1 = MathAbs(closeArray[one_candle] - openArray[one_candle]);
body2 = MathAbs(closeArray[two_candle] - openArray[two_candle]);
body3 = MathAbs(closeArray[three_candle] - openArray[three_candle]);
Hola CapeCoddah, creo que no es el caso, ya que por ejemplo el indicador hace todos los cálculos usando arrays en serie (aunque no es lo común, normalmente se hacen sin series) en el contexto del primer bucle mostrado, ese bucle se usa para detectar bloqueos de orden, lo que se hace es ir desde la vela "Universal_search_range" (Recordemos que en serie la vela 0 es la más reciente) hasta la vela 6 por lo que en ningún momento veo que se utilicen velas futuras y si ese fuera el caso entonces two_candle u otro índice daría como resultado un valor menor que 0 causando fuera de rango. Así que la vela four_candle = one_candle - 3, sería la más cercana a 0 en el caso de que el bucle termine donde i = 6 entonces four_candle = 3, así que teniendo en cuenta que la vela actual es 0 entonces, puedo decir que en ningún momento estoy usando velas futuras. El nombre puede sonar confuso, lo sé, pero lo hice así porque me resultaba más fácil de entender, dado que a la hora de obtener los bloques de órdenes, una_vela era como la vela central. Así que si buscaba un movimiento fuerte, evaluaba las velas que le seguían (en serie, esto sería restar).