Это вам в советнике или в скрипте? И чтоб прям-таки до бесконечности? В советнике кажись никокого цикла не надо, просто в функции OnTick напишите
if(OrdersTotal()==0 && Bid>1.2550) Alert(Bid>1.2550);
Только это глупо - функция Алерт вывешивает табличку посреди экрана, одну запись вы тоже заметите, зачем вам 1000 записей в минуту?
Если чтоб до бесконечности, но с какими-то разумными интервалами, то
input double a1=1.255;
input double a2=1.251;
int OnInit()
{
//--- create timer
EventSetTimer(10);
//---
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
void OnTick()
{
//---
return;
}
void OnTimer()
{
//---
if(OrdersTotal()==0 && Bid>a1) Alert("Bid>",a1);
if(OrdersTotal()==0 && Bid<a1) Alert("Bid<",a2);
}
То есть в функции OnInit() задаете интервал сообщений, с помощью EventSetTimer(сколько секунд), 10 там у меня означает 10 секунд. а1 и а2 вместо цифр там для того чтобы можно было поставить другие значения, а не только 1,2550 и 1,2510
Если добавить кликом функцию OnTimer() при создании эксперта в самом начале, то этот EventSetTimer там уже есть.
и в функции OnTimer() конкретно пишете что вам надо, то есть
if(OrdersTotal()==0 && Bid>a1) Alert("Bid>",a1);
if(OrdersTotal()==0 && Bid<a1) Alert("Bid<",a2);
Только это достаточно глупо, будет немного опазбдывать, уж лучше зделать так чтобы сообщение появлялось только 1 раз
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пожалуйста Сделайте мне это:
If (если нет открытых ордеры )
{
If (БИД > 1,2550)
{
Alert "Бид > 1,2550"
{
If (БИД < 1,2510)
{
Alert "БИД < 1,2510"
}
}
И все это повторялся бесконечно (do … loop)
Спасибо за ответ...