Disegnare un quadrato o un rettangolo. Davvero bisogno di aiuto...

 

Come posso fare in modo che un quadrato o un rettangolo sia disegnato sul grafico quando il prezzo di una coppia di valute cambia, tenerlo per 15 secondi, cancellarlo e farlo apparire di nuovo la prossima volta che il prezzo cambia?

Per favore aiutatemi, sto lottando con questo da molto tempo. Solo disegnare è facile, ma quando il prezzo cambia - non c'è modo =(.

 

Mi dispiace, non ho tempo di scrivere il codice da solo e fare il debug, ma penso che tu possa gestire il mio TOR. Ho bisogno di fare questo indicatore:

1) Dichiarare la variabile statica static double PrevPrice=0.0;

2) All'inizio scriviamo il seguente costrutto

se(PrevPrice!=Bid)

{

DeleteBox(...); /* cancella il rettangolo (nel caso sia ancora lì) */

DrawBox(...); /* disegna un rettangolo */

Sleep(15000); /* aspetta 15 secondi */

DeleteBox(...); /* cancella il rettangolo */

PrevPrice=Bid; /* ricorda il nuovo prezzo per il nuovo controllo */

}

 

DeleteBox(...);

DrawBox(...);



Non ho nemmeno trovato queste funzioni nell'aiuto, ma grazie per la risposta.

 

Lafunzione Sleep non funziona negli indicatori.

Hai bisogno di un Expert Advisor o di uno script che lavori in un ciclo infinito.

 

Ho bisogno di fare questo in un EA, la seconda funzione. C'è un EA come questo:


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

Ho bisogno di fare questo in un EA, la seconda funzione. C'è un EA come questo:

Per aggiungere codice MQL4, si prega di utilizzare il comando add source code nell'editor:

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

DeleteBox(...);

DrawBox(...);

Non ho nemmeno trovato queste funzioni nell'aiuto, ma grazie per la risposta.

E non lo farai. Dovrete fare queste funzioni da soli.

 
È così che l'ho capito. Purtroppo non ho molta familiarità con esso, sto imparando. Ho bisogno di esempi, quindi ho chiesto aiuto....
 
#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;
}
Questo è un consigliere per voi come esempio. Esperimento.
 
Grazie mille.
Motivazione: