Quiero transferir el indicador ATP al gráfico de precios. Pero no sé cómo hacerlo. Quiero que muestre el máximo movimiento de volatilidad desde la línea media del mismo periodo. Si alguien tiene el código, gracias por compartirlo.
¿Se trata de seleccionar en qué plazos se muestra el objeto y en cuáles no?
Digamos que hay un panel de operaciones en el gráfico. Luego construyo manualmente los objetos (niveles de operación, líneas verticales, rectángulos).
Todo lo que construya manualmente se aplicará al panel de operaciones. Todos los objetos están en el mismo marco temporal.
¿Y cómo ayuda el "método recomendado por los desarrolladores" en este caso?
He tomado nota de tu sugerencia, pero he tenido parpadeos al borrar y volver a dibujar un objeto.
El método propuestopor Artyom Trishkin funciona de verdad.
Ahora no hay redibujado ni parpadeo del objeto y se mantiene visualmente por encima de todo.
Por cierto, en mi caso también era un panel de operaciones que estaba bloqueado por flechas de operaciones abiertas y cerradas.
Cómo resolví el problema:
// Глобальное объявлениеint last_tick_objects = 0; // количество объектов на прошлом тике// имена графических объектов:string tp_rctngl = "TP Rectangle";
string sl_rctngl = "SL Rectangle";
string vol_rctngl = "Volume Rectangle";
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
long cid = ChartID();
if(ObjectsTotal() != last_tick_objects) // количество объектов поменялось
{
last_tick_objects = ObjectsTotal(); // запоминаем новое количество объектов// выводим на передний план объекты: tp_rctngl, sl_rctngl, vol_rctnglif(ObjectFind(cid, tp_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, tp_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
}
//---if(ObjectFind(cid, sl_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, sl_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS); // делаем видимым на всех таймах
}
//---if(ObjectFind(cid, vol_rctngl) > -1) // объект существует
{
ObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_NO_PERIODS); // делаем невидимым на всех таймахObjectSetInteger(cid, vol_rctngl, OBJPROP_TIMEFRAMES, OBJ_ALL_PERIODS);// делаем видимым на всех таймах
}
ChartRedraw(cid);// перерисовка графика для применения изменений
}
}
//+------------------------------------------------------------------+
Estoy escribiendo un EA que de vez en cuando necesita realizar varios ciclos largos de diferentes recálculos (por ejemplo, cada 12, 24, 48 horas). Cada uno de estos recálculos tarda entre 1,5 y 2 horas en un núcleo (es decir, en un hilo) y, naturalmente, el procesamiento de nuevos ticks y la negociación por parte de este EA están en pausa
... Estos cálculos pueden ser delegados a otro EA en otro hilo y los datos finales pueden ser transferidos entre EAs usandola función EventChartCustom y el manejador de eventos OnChartEvent
Pero necesito poder publicar el EA en el mercado, por lo que delegar los recálculos en el mismo hilo no es adecuado. ¿Existe un análogo de la biblioteca de hilos de C++ o alguna otra versión para implementar un EA tan específico en MQL5? (He introducido la palabra "hilo" con el filtro "documentación" en el buscador de la web y no hay nada).
He tomado nota de tu sugerencia, pero he tenido parpadeos al borrar y volver a dibujar un objeto.
El método propuestopor Artyom Trishkin funciona de verdad.
Ahora no hay redibujo ni parpadeo del objeto y se mantiene visualmente por encima de todo.
Por cierto, en mi caso también era un panel de operaciones que estaba bloqueado por flechas de operaciones abiertas y cerradas.
Cómo resolví el problema:
La cuestión es que el parpadeo se debe a que el borrado y el renderizado se producen muy a menudo, sólo hay que captar la aparición de nuevos objetos. Si el método funciona, por supuesto que también lo tendré en cuenta, pero como la documentación no menciona una propiedad tan útil, nunca le he prestado atención.
Aunque la pregunta sigue siendo si usted utiliza su propio panel de operaciones junto con un indicador de terceros que también construye objetos.
La cuestión es que el parpadeo se debe a que el borrado y el renderizado se producen muy a menudo, sólo hay que captar la aparición de nuevos objetos. Si el método funciona, por supuesto que lo adoptaré también, pero como la documentación no menciona una propiedad tan útil, nunca le he prestado atención.
Aunque la pregunta sigue siendo si usted utiliza su propio panel de operaciones en combinación con un indicador de terceros que también construye objetos.
El método recomendado por Slava era el único aceptable. Puedes buscar sus posts - está en su perfil - publicaciones/todos los posts.
Y, sí, ¿cómo ayuda tu método de recrear todos los objetos en la misma situación?
Slava recomendó el método como el único más adecuado. Puedes buscar sus posts - está en su perfil - publicaciones/todos los posts.
Y, sí, ¿cómo ayudaría tu método de recrear todos los objetos en la misma situación?
Yo haría lo siguiente, con un indicador de terceros que necesita para realizar un seguimiento de ObjectsTotal(), y si el mayor índice de mi objeto de panel es menor que ObjectsTotal()-1, entonces recrear el panel. Necesito probar tu método en todo tipo de situaciones primero, pero hasta ahora no veo más libertad en el uso de la Visibilidad de Objetos.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Arriba mostré lo que hay que hacer. ¿Por qué complicarse tanto cuando hay un método recomendado por los desarrolladores?
¿Se trata de elegir en qué plazos se mostrará el objeto y en cuáles no?
Digamos que hay un panel de operaciones en el gráfico. Luego construyo manualmente los objetos (niveles de operación, líneas verticales, rectángulos).
Todo lo que construya manualmente se aplicará al panel de operaciones. Todos los objetos están en el mismo marco temporal.
¿Y cómo ayuda el "método recomendado por los desarrolladores" en este caso?
Hola.
Quiero transferir el indicador ATP al gráfico de precios. Pero no sé cómo hacerlo. Quiero que muestre el máximo movimiento de volatilidad desde la línea media del mismo periodo. Si alguien tiene el código, gracias por compartirlo.
https://www.mql5.com/ru/code/23304
Propiedad OBJPROP_TIMEFRAMES:
OBJ_NO_PERIODS - no es visible en todos los períodos,
OBJ_ALL_PERIODS - visible en todos los períodos
Gracias.
El método resultó realmente eficaz y es muy compacto.
El objeto queda ahora visualmente por encima de todos los demás.
¿Se trata de seleccionar en qué plazos se muestra el objeto y en cuáles no?
Digamos que hay un panel de operaciones en el gráfico. Luego construyo manualmente los objetos (niveles de operación, líneas verticales, rectángulos).
Todo lo que construya manualmente se aplicará al panel de operaciones. Todos los objetos están en el mismo marco temporal.
¿Y cómo ayuda el "método recomendado por los desarrolladores" en este caso?
He tomado nota de tu sugerencia, pero he tenido parpadeos al borrar y volver a dibujar un objeto.
El método propuestopor Artyom Trishkin funciona de verdad.
Ahora no hay redibujado ni parpadeo del objeto y se mantiene visualmente por encima de todo.
Por cierto, en mi caso también era un panel de operaciones que estaba bloqueado por flechas de operaciones abiertas y cerradas.
Cómo resolví el problema:
Estoy escribiendo un EA que de vez en cuando necesita realizar varios ciclos largos de diferentes recálculos (por ejemplo, cada 12, 24, 48 horas). Cada uno de estos recálculos tarda entre 1,5 y 2 horas en un núcleo (es decir, en un hilo) y, naturalmente, el procesamiento de nuevos ticks y la negociación por parte de este EA están en pausa
... Estos cálculos pueden ser delegados a otro EA en otro hilo y los datos finales pueden ser transferidos entre EAs usandola función EventChartCustom y el manejador de eventos OnChartEvent
Pero necesito poder publicar el EA en el mercado, por lo que delegar los recálculos en el mismo hilo no es adecuado. ¿Existe un análogo de la biblioteca de hilos de C++ o alguna otra versión para implementar un EA tan específico en MQL5? (He introducido la palabra "hilo" con el filtro "documentación" en el buscador de la web y no hay nada).
He tomado nota de tu sugerencia, pero he tenido parpadeos al borrar y volver a dibujar un objeto.
El método propuestopor Artyom Trishkin funciona de verdad.
Ahora no hay redibujo ni parpadeo del objeto y se mantiene visualmente por encima de todo.
Por cierto, en mi caso también era un panel de operaciones que estaba bloqueado por flechas de operaciones abiertas y cerradas.
Cómo resolví el problema:
La cuestión es que el parpadeo se debe a que el borrado y el renderizado se producen muy a menudo, sólo hay que captar la aparición de nuevos objetos. Si el método funciona, por supuesto que también lo tendré en cuenta, pero como la documentación no menciona una propiedad tan útil, nunca le he prestado atención.
Aunque la pregunta sigue siendo si usted utiliza su propio panel de operaciones junto con un indicador de terceros que también construye objetos.
¿Se trata de elegir en qué plazos se mostrará el objeto y en cuáles no?
Digamos que hay un panel de operaciones en el gráfico. Luego construyo manualmente los objetos (niveles de operación, líneas verticales, rectángulos).
Todo lo que construya manualmente se aplicará al panel de operaciones. Todos los objetos están en el mismo marco temporal.
¿Y cómo ayuda el "método recomendado por los desarrolladores" en este caso?
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias
Cualquier pregunta de los novatos en MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos
Oleg Remizov, 2020.04.26 14:44
Gracias.
El método ha demostrado ser realmente eficaz y muy compacto.
Ahora el objeto es visualmente más alto que todos los demás.
La cuestión es que el parpadeo se debe a que el borrado y el renderizado se producen muy a menudo, sólo hay que captar la aparición de nuevos objetos. Si el método funciona, por supuesto que lo adoptaré también, pero como la documentación no menciona una propiedad tan útil, nunca le he prestado atención.
Aunque la pregunta sigue siendo si usted utiliza su propio panel de operaciones en combinación con un indicador de terceros que también construye objetos.
El método recomendado por Slava era el único aceptable. Puedes buscar sus posts - está en su perfil - publicaciones/todos los posts.
Y, sí, ¿cómo ayuda tu método de recrear todos los objetos en la misma situación?
Slava recomendó el método como el único más adecuado. Puedes buscar sus posts - está en su perfil - publicaciones/todos los posts.
Y, sí, ¿cómo ayudaría tu método de recrear todos los objetos en la misma situación?