Creo que he encontrado una respuesta a la primera pregunta. Para la persona que me envió un mensaje, intente algo como esto: Código insertado/ --------------------------------- --------------------------------- /| PRUEBA IND.mq4 |/ -------------------------------------------------------- ------------------- #propiedad indicador_chart_window double var; cadena de comunicación;/ -------------------------------------------------------- ------------------ int init() {/ ------------------------------------- -------------------------------------------- var=0; if (GlobalVariableCheck(G1)) var = GlobalVariableGet(G1); comunicación = init DoubleToStr(var,5); comentario(comm); retorno(0); }/ ---------------------------------------------- -------------------- int definición() {/ --------------------- ------------------------------------------------------------- ConjuntoVariableGlobal(G1, var); if (UninitializeReason() != REASON_CHARTCHANGE) GlobalVariableDel(G1); comunicación = comunicación \ndeinit DoubleToStr(var,5); comentario(comm); retorno(0); }/ ---------------------------------------------- -------------------- int inicio() {/ --------------------- ------------------------------------------------------------- var=Oferta; comunicación = comunicación \nstart DoubleToStr(var,5); comentario(comm); retorno(0); }/ ---------------------------------------------- -------------------- Cuando cambia de gráfico, un indy ejecuta deinit() (para el gráfico anterior), luego init() y start() para el nuevo cuadro. En el módulo principal start(), que se ejecuta cada vez que se produce un nuevo tick, var se establece en el precio de oferta Cada vez que se ejecuta deinit(), guarda el valor de var en Global G1 excepto si el motivo de deinit() ser ejecutado es algo más que cambiar el gráfico, elimina G1 (para que el indy se ordene después de sí mismo) Luego simplemente recupera el valor de G1 (si existe) cada vez que se ejecuta init(). Puede seguir el progreso de lo que sucede al ver los comentarios que se muestran.