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; }
#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.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
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 =(.