Dibujar un cuadrado o un rectángulo. Realmente necesito ayuda...

 

¿Cómo puedo hacer que se dibuje un cuadrado o rectángulo en el gráfico cuando cambia el precio de un par de divisas, mantenerlo durante 15 segundos, borrarlo y que vuelva a aparecer la próxima vez que cambie el precio?

Por favor, ayuda, he estado luchando con esto durante mucho tiempo. Dibujar es fácil, pero cuando el precio cambia - no hay manera =(.

 

Lo siento, no tengo tiempo para escribir el código yo mismo y depurarlo, pero creo que puede manejar mi TOR. Necesito hacer este indicador:

1) Declarar la variable estática double PrevPrice=0.0;

2) Al principio escribimos la siguiente construcción

if(¡Precio anterior!=Oferta)

{

DeleteBox(...); /* eliminar el rectángulo (en caso de que aún esté ahí) */

DrawBox(...); /* dibujar rectángulo */

Sleep(15000); /* esperar 15 segundos */

DeleteBox(...); /* borrar rectángulo */

PrevPrice=Bid; /* recuerda el nuevo precio para la nueva comprobación */

}

 

DeleteBox(...);

DrawBox(...);



No he podido encontrar estas funciones en la ayuda, pero gracias por la respuesta.

 

La función Sleep no funciona en los indicadores.

Necesitas un Asesor Experto o un script que funcione en un bucle infinito.

 

Necesito hacer esto en un EA, la segunda función. Hay un EA así:


static double mSaveAsk;
 
int init()
{
   mSaveAsk = Ask;
}
 
int start()
{
   if ( Ask != mSaveAsk )
   {
      PlaySound("alert.wav");
   }
   mSaveAsk = Ask;
}
 
Chaos666 писал (а) >>

Necesito hacer esto en un EA, la segunda función. Hay un EA así:

Para añadir el código MQL4, utilice el comando de añadir código fuente en el editor:

 
Bien.
 
Chaos666 писал (а) >>

DeleteBox(...);

DrawBox(...);

No he podido encontrar estas funciones en la ayuda, pero gracias por la respuesta.

Y no lo harás. Tendrá que hacer estas funciones usted mismo.

 
Así lo entendí yo. Desgraciadamente no estoy muy familiarizado con él, sólo estoy aprendiendo. Necesito ejemplos, así que pedí ayuda....
 
#property copyright "Copyright © 2008, D500"
#property link      "http://www.metaquotes.net"
extern int Timer=15;
extern color Coler=OrangeRed;
 
double PrevPrice;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(PrevPrice!=Bid)
 
{
 
if (ObjectFind("QUADRO")==0)  DeleteBox(); /* удаляем прямоугольник (на случай если он все еще есть) */
 
DrawBox(); /* рисуем прямоугольник */
 
Sleep(Timer*1000); /* ждем 15 секунд */
 
PrevPrice=Bid; /* запоминаем новую цену для новой проверки */
 
}
//----
   return(0);
  }
//+------------------------------------------------------------------+
void DrawBox()
{
     ObjectCreate("QUADRO",OBJ_RECTANGLE,0,Time[5],Close[0]-10*Point,Time[0],Close[0]+10*Point);
     ObjectSet("QUADRO",6,Coler);
     return;
}
//-------------------------------------------------------------------+
void DeleteBox()
{
      ObjectDelete("QUADRO");
      return;
}
Este es un asesor para usted como ejemplo. Experimento.
 
Muchas gracias.
Razón de la queja: