¿Alguien puede repasar este código y decirme cómo hacer que el texto del objeto MA (desplácese hasta la parte inferior del código) se elimine cuando se elimine el indicador? Hice mucho comprobando y probando códigos de los foros de mql pero no soy un programador, así que me falta algo.

// ----------------------------------------------- -------------------
//| EMA-alert-Symbol-Period.mq4 |
//| Copyright © 2007, MetaQuotes Software Corp. |
//|
http://www.metaquotes.net|
// ----------------------------------------------- -------------------
#property copyright © 2007, MetaQuotes Software Corp.
#property link http://www.metaquotes.net
#property indior_chart_window
#property indior_buffers 1
//MODE_SMA 0 Promedio móvil simple,
//MODE_EMA 1 Media móvil exponencial,
//MODE_SMMA 2 Promedio móvil suavizado,
//MODE_LWMA 3 Promedio móvil ponderado lineal.
//PRICE_CLOSE 0 Cerrar precio.
//PRICE_OPEN 1 Precio abierto.
//PRICE_HIGH 2 Precio alto.
//PRICE_LOW 3 Precio bajo.
//PRICE_MEDIAN 4 Precio medio, (alto bajo)2.
//PRICE_TYPICAL 5 Precio típico, (alto bajo cerrar)3.
//PRICE_WEIGHTED 6 Precio de cierre ponderado, (alto bajo cerrar cerrar)4.

//---- parámetros de entrada
extern int ma_period = 12;
extern int ma_mode = 1;
extern int ma_price = 0;
extern int ma_shift = 0;
//---- buffers
doble ExtMapBuffer1 [];
extern bool Box_Alert = false;
extern bool Sound_Alert = true;
cadena externa Sound_File = alert3;
extern bool Email_Alert = falso;
extern int pip_distance = 1;
datime lastimealert;
//----
doble ema_value;

// ----------------------------------------------- -------------------
//| Función de inicialización interior personalizado |
// ----------------------------------------------- -------------------
int init ()
{
//---- adentro

SetIndexBuffer (0, ExtMapBuffer1);
//---- nombre de DataWindow y la etiqueta de la ventana secundaria interior

//----

retorno (0);
}
// ----------------------------------------------- -------------------
//| Función de desinicialización interior personalizada |
// ----------------------------------------------- -------------------
int deinit ()
{
//----
retorno (0);
}
// ----------------------------------------------- -------------------
//| Función de iteración interior personalizada |
// ----------------------------------------------- -------------------
int start ()
{
límite de int
int counted_bars = IndiorCounted ();
//---- comprueba posibles errores
if (counted_bars lt; 0)
return (-1);
//---- se contará la última barra contada
if (counted_bars gt; 0)
counted_bars--;
limit = Bars - counted_bars;
//----

cadena MA;


para (int i = 0; i lt; límite; i )
{
ema_value = iMA (NULL, 0, ma_period, ma_shift, ma_mode, ma_price, i);

if (ma_mode == 0) {MA = SMA;}
if (ma_mode == 1) {MA = EMA;}
if (ma_mode == 2) {MA = SMMA;}
if (ma_mode == 3) {MA = LWMA;}
//----
ExtMapBuffer1 [i] = ema_value-Ask;
if (MathAbs (ema_value-Bid) lt; = pip_distance * Point lastimealert! = Time [0])
{

alerta de si (Alerta de cuadro) (Símbolo (), M, Período (), El precio está dentro, distancia de pip, pips de, período de ma, Período MA );
if (Sound_Alert) PlaySound (Sound_File);
if (Email_Alert) SendMail (Alerta de precio en Símbolo () M Period (), Símbolo () M Period () El precio está dentro de pip_distance pips de ma_period Period MA );
lastimealert = Tiempo [0];
}
ObjectCreate (ObjName, OBJ_LABEL, 0, 0, 0);
ObjectSetText (ObjName, MA, 14, Tahoma, Amarillo);
ObjectSet (ObjName, OBJPROP_CORNER, 0);
ObjectSet (ObjName, OBJPROP_XDISTANCE, 20);
ObjectSet (ObjName, OBJPROP_YDISTANCE, 30);

}
//----
retorno (0);
}
// ----------------------------------------------- -------------------