Dessiner un carré ou un rectangle. J'ai vraiment besoin d'aide...

 

Comment faire en sorte qu'un carré ou un rectangle soit dessiné sur le graphique lorsque le prix d'une paire de devises change, qu'il soit conservé pendant 15 secondes, qu'il soit supprimé et qu'il apparaisse à nouveau lors du prochain changement de prix ?

S'il vous plaît, aidez-moi, je me débats avec cela depuis longtemps. Dessiner, c'est facile, mais quand le prix change, c'est impossible =(.

 

Désolé, je n'ai pas le temps d'écrire le code moi-même et de le déboguer, mais je pense que vous pouvez gérer mon TOR. J'ai besoin de faire cet indicateur :

1) Déclarer une variable statique double PrevPrice=0.0 ;

2) Au départ, nous écrivons la construction suivante

si(PrevPrice!=Bid)

{

DeleteBox(...) ; /* supprimer le rectangle (au cas où il serait encore présent) */

DrawBox(...) ; /* dessiner un rectangle */

Sleep(15000) ; /* attendre 15 secondes */

DeleteBox(...) ; /* supprimer le rectangle */

PrevPrice=Bid ; /* se souvenir du nouveau prix pour le nouveau contrôle */

}

 

DeleteBox(...) ;

DrawBox(...) ;



Je n'ai même pas pu trouver ces fonctions dans l'aide, mais merci pour la réponse.

 

Lafonction de veille ne fonctionne pas dans les indicateurs.

Vous avez besoin d'un conseiller expert ou d'un script qui fonctionne en boucle infinie.

 

J'ai besoin de faire cela dans un EA, la deuxième fonction. Il y a un EA comme ça :


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

J'ai besoin de faire cela dans un EA, la deuxième fonction. Il y a un EA comme ça :

Pour ajouter du code MQL4, veuillez utiliser la commande d'ajout de code source dans l'éditeur :

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

DeleteBox(...) ;

DrawBox(...) ;

Je n'ai même pas pu trouver ces fonctions dans l'aide, mais merci pour la réponse.

Et vous ne le ferez pas. Vous devrez vous charger vous-même de ces fonctions.

 
C'est comme ça que je l'ai compris. Malheureusement, je n'y connais pas grand-chose, je ne fais qu'apprendre. J'ai besoin d'exemples, alors j'ai demandé de l'aide.....
 
#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;
}
Il s'agit d'un conseiller pour vous, à titre d'exemple. Expérimentation.
 
Merci beaucoup.