"Eliminar un indicador de un gráfico no significa que la parte de cálculo del indicador también se elimine de la memoria del terminal. Para liberar el mango del indicador, utilice la función IndicatorRelease() ".
Sí, Vladimir, ya lo hice y escribí sobre ello antes, pero el resultado sigue siendo el mismo.
Llevo más de una hora resolviendo este problema. Quería crear y mostrar el indicador ZigZagColor en el gráfico al iniciar el Asesor Experto. Se hizo en int OnInit:
Pero el indicador no se elimina. Lo he solucionado todo. He limpiado el mango y he aplicado la función de borrado. Me pregunto cuál es la razón por la que no se desinstala.
const string nombre_del_indicador // nombre corto del indicador
);
Gracias, Alexey, mañana lo intentaré con la cabeza despejada, ya estoy confundido con la información que tengo. Como se dice, ¡mejor por la mañana!
Ahora tengo otra cosa que me desconcierta y me sorprende mucho. ¡Intenté borrar el gráfico con el script desarrollado por Vladimir Karputov, pero este script borró absolutamente todo excepto el indicador personalizado ZigzagColor! Intenté eliminar un simple ZigZag con el mismo script, ¡tampoco se elimina! Es un misterio...
Gracias, Alexey, mañana lo intentaré con la cabeza despejada, que ya estoy hecho un lío de información. Como dice el refrán, ¡más sabio por la mañana!
Ahora hay otra cosa que me desconcertó mucho y me sorprendió. ¡Intenté borrar el gráfico con el script desarrollado por Vladimir Karputov, pero este script borró absolutamente todo excepto el indicador personalizado ZigzagColor! Intenté eliminar un simple ZigZag con el mismo script, ¡tampoco se elimina! Es un misterio...
Saludos, Vladimir.
Pruebe esta secuencia de comandos
#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---int window=ChartWindowFind(0,"ZigzagColor");
bool res=ChartIndicatorDelete(0,window,"ZigzagColor");
//--- проанализируем результат вызова ChartIndicatorDelete()if(!res)
{
PrintFormat("Не удалось удалить индикатор ZigzagColor с окна #%d. Код ошибки %d",
window,GetLastError());
}
}
nombre corto ZigzagColor - y este es el valor por defecto, si se establece de manera diferente es necesario escribir esos dígitos
y así es como debe escribirse
o puede cambiar el propio indicador - dar un nombre más fácil
//--- name for DataWindow and indicator subwindow labelIndicatorSetString(INDICATOR_SHORTNAME,"ZigZag("+(string)InpDepth+","+(string)InpDeviation+","+(string)InpBackstep+")");
PlotIndexSetString(0,PLOT_LABEL,"ZigzagColor");
//--- set an empty value
por ejemplo
//--- name for DataWindow and indicator subwindow labelIndicatorSetString(INDICATOR_SHORTNAME,"ZigZag");
PlotIndexSetString(0,PLOT_LABEL,"ZigzagColor");
//--- set an empty value
-----------------------------------------------
Ya le mostré el script - si este script se adjunta a un gráfico y usted no da un nombre de indicador, funcionará sin borrar ningún indicador - pero escribirá en la ventana del Asesor Experto qué indicadores están disponibles
https://c.mql5.com/3/332/IndicatorDelete.mq5
Esto es lo que tengo
CS 003:41:36.549 IndicatorDelete (XAUUSD,M30) EWO(5,35)
DF 003:41:36.604 IndicatorDelete (XAUUSD,M30) ZigZag(12,5,3)
KR 003:41:36.626 IndicatorDelete (XAUUSD,M30) LeMan_BrainTrend1Sig
FE 003:41:36.646 IndicatorDelete (XAUUSD,M30) Hline VSC
RN 003:41:36.666 IndicatorDelete (XAUUSD,M30) Pivot Lines TimeZone
KG 003:41:36.686 IndicatorDelete (XAUUSD,M30) Line through two fractals
DL 003:41:36.706 IndicatorDelete (XAUUSD,M30) sanbox
Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
o también puede cambiar el propio indicador dándole un nombre más sencillo
así
-----------------------------------------------
Ya he descargado el script - si este script se adjunta a un gráfico y no se da un nombre de indicador, funcionará sin borrar ningún indicador - pero escribirá en la ventana del Asesor Experto qué indicadores están presentes
https://c.mql5.com/3/332/IndicatorDelete.mq5
¡Esto es lo que tengo!
Hola! He implementado su script. En la pestaña Expertos aparecen dos indicadores: Volúmenes y ZigZag (80,20,0). Efectivamente es así, sólo que el indicador ZigZag está escrito sin Color por alguna razón.
boolChartIndicatorDelete(
long chart_id, // идентификатор графика int sub_window // номер подокна conststringindicator_shortname // короткое имя индикатора
);
El nombre del indicador y el nombre corto del indicador a menudo no coinciden.
Hola! He aplicado su script. En la pestaña Expertos aparecen dos indicadores: Volúmenes y ZigZag (80,20,0). Efectivamente es así, sólo que el indicador ZigZag está escrito sin Color por alguna razón.
Sinceramente, Vladimir.
Por lo tanto, tienes que escribirlo así - ZigZag (80,20,0).
Suelo borrar el asa y la parte de cálculo en OnDeinit y se elimina todo. El objeto no es un indicador.
https://www.mql5.com/ru/docs/chart_operations/chartindicatordelete
"Eliminar un indicador de un gráfico no significa que la parte de cálculo del indicador también se elimine de la memoria del terminal. Para liberar el mango del indicador, utilice la función IndicatorRelease() ".
Sí, Vladimir, ya lo hice y escribí sobre ello antes, pero el resultado sigue siendo el mismo.
Saludos, Vladimir.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Nuevo robot de trading
MrBrooklin, 2020.09.28 10:38
Llevo más de una hora resolviendo este problema. Quería crear y mostrar el indicador ZigZagColor en el gráfico al iniciar el Asesor Experto. Se hizo en int OnInit:
El indicador fue creado y mostrado. Ahora necesito que el indicador se elimine después de que se elimine el Asesor Experto. Lo estoy escribiendo:
Pero el indicador no se elimina. Lo he solucionado todo. He limpiado el mango y he aplicado la función de borrado. Me pregunto cuál es la razón por la que no se desinstala.
Saludos, Vladimir.
Eliminar el indicador del gráfico con la función
ChartIndicatorDelete(
long chart_id, // ID del gráfico
int sub_window // número de la subventana
const string nombre_del_indicador // nombre corto del indicador
);
Gracias, Alexey, mañana lo intentaré con la cabeza despejada, ya estoy confundido con la información que tengo. Como se dice, ¡mejor por la mañana!
Ahora tengo otra cosa que me desconcierta y me sorprende mucho. ¡Intenté borrar el gráfico con el script desarrollado por Vladimir Karputov, pero este script borró absolutamente todo excepto el indicador personalizado ZigzagColor! Intenté eliminar un simple ZigZag con el mismo script, ¡tampoco se elimina! Es un misterio...
Saludos, Vladimir.
Gracias, Alexey, mañana lo intentaré con la cabeza despejada, que ya estoy hecho un lío de información. Como dice el refrán, ¡más sabio por la mañana!
Ahora hay otra cosa que me desconcertó mucho y me sorprendió. ¡Intenté borrar el gráfico con el script desarrollado por Vladimir Karputov, pero este script borró absolutamente todo excepto el indicador personalizado ZigzagColor! Intenté eliminar un simple ZigZag con el mismo script, ¡tampoco se elimina! Es un misterio...
Saludos, Vladimir.
Pruebe esta secuencia de comandos
nombre corto ZigzagColor - y este es el valor por defecto, si se establece de manera diferente es necesario escribir esos dígitos
y eso es exactamente lo que tienes que poner
nombre corto ZigzagColor - y este es el valor por defecto, si se establece de manera diferente es necesario escribir esos dígitos
y así es como debe escribirse
o puede cambiar el propio indicador - dar un nombre más fácil
por ejemplo
-----------------------------------------------
Ya le mostré el script - si este script se adjunta a un gráfico y usted no da un nombre de indicador, funcionará sin borrar ningún indicador - pero escribirá en la ventana del Asesor Experto qué indicadores están disponibles
https://c.mql5.com/3/332/IndicatorDelete.mq5
Esto es lo que tengo
Pruebe este script
¡Buenos días a todos!
Aleksey, he aplicado tu guión. Tengo el código de error 4115. He encontrado lo que significa en el manual:
ERR_CHART_INDICATOR_CANNOT_DEL
4115
Error al borrar el indicador del gráfico
Saludos, Vladimir.
o también puede cambiar el propio indicador dándole un nombre más sencillo
así
-----------------------------------------------
Ya he descargado el script - si este script se adjunta a un gráfico y no se da un nombre de indicador, funcionará sin borrar ningún indicador - pero escribirá en la ventana del Asesor Experto qué indicadores están presentes
https://c.mql5.com/3/332/IndicatorDelete.mq5
¡Esto es lo que tengo!
Hola! He implementado su script. En la pestaña Expertos aparecen dos indicadores: Volúmenes y ZigZag (80,20,0). Efectivamente es así, sólo que el indicador ZigZag está escrito sin Color por alguna razón.
Saludos, Vladimir.
Pruebe esta secuencia de comandos
¡Buenos días a todos!
Aleksey, aplica tu guión. Tengo el código de error 4115.
Saludos, Vladimir.
Tengo que tener más cuidado.
El nombre del indicador y el nombre corto del indicador a menudo no coinciden.
Hola! He aplicado su script. En la pestaña Expertos aparecen dos indicadores: Volúmenes y ZigZag (80,20,0). Efectivamente es así, sólo que el indicador ZigZag está escrito sin Color por alguna razón.
Sinceramente, Vladimir.
Por lo tanto, tienes que escribirlo así - ZigZag (80,20,0).
En este caso, se borrará definitivamente.
-----------------
pero sinColor
porque así es como está escrito en el indicador
Tienes que escribirlo así - ZigZag (80,20,0)
El ZigZag será definitivamente eliminado.
-----------------
pero sinColor
porque así es como está escrito en el indicador
Si cambia la configuración, deberá añadir los números que haya especificado en el Indicador
por ejemplo