Робот для уведомлений об остановки цен

 

Всем привет! Возможно ли настроить ЕА так чтобы тот отправлял алерты каждый раз когда цена выбранного инструманта (открытого чарта) останавливалась больше чем скажем 20 секунд?

Если у кого-то есть мысли, поделитесь кодом пожалуйста

 
artem92:

Всем привет! Возможно ли настроить ЕА так чтобы тот отправлял алерты каждый раз когда цена выбранного инструманта (открытого чарта) останавливалась больше чем скажем 20 секунд?

Если у кого-то есть мысли, поделитесь кодом пожалуйста

засекается время в OnTimer

засекается время в OnTick

считаем разницу в OnTick

если превысили 20 секунд, дальше выполняем необходимые днйствия

 
Renat Akhtyamov #:

засекается время в OnTimer

засекается время в OnTick

считаем разницу в OnTick

если превысили 20 секунд, дальше выполняем необходимые днйствия

Заряжаю код через chatGpt, но че-то алерты не приходят, если не сложно глянь плиз что тут изменить. Тут на 30 сек

//+------------------------------------------------------------------+

//|                                           PriceAlert.mq4         |

//|                        Copyright 2024, YourCompanyName          |

//|                                       https://www.yourwebsite.com|

//+------------------------------------------------------------------+

#property strict


// Define the maximum allowed delay in seconds

input int maxDelaySeconds = 30;


// Define the alert message

string alertMessage = "Prices have stopped moving for more than " + IntegerToString(maxDelaySeconds) + " seconds.";


// Variable to store the time of the last tick

datetime lastTickTime;


//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

{

    // Set the initial time of the last tick

    lastTickTime = TimeCurrent();

    

    // Set timer for checking ticks every second

    EventSetTimer(1000);

    

    return(INIT_SUCCEEDED);

}


//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

{

    // Deinitialization code here

}


//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

{

    // Update the time of the last tick

    lastTickTime = TimeCurrent();

}


//+------------------------------------------------------------------+

//| Expert timer function to check for price movement                |

//+------------------------------------------------------------------+

void OnTimer()

{

    // Get the current time

    datetime currentTime = TimeCurrent();


    // Calculate the time elapsed since the last tick

    int elapsedSeconds = currentTime - lastTickTime;


    // If no tick has arrived within the specified time frame, trigger an alert

    if (elapsedSeconds >= maxDelaySeconds)

    {

        // Send alert/notification

        Alert(alertMessage);

    }

}

//+------------------------------------------------------------------+
 
Попробуйте поставить
 
Yuriy Bykov #:
Попробуйте поставить
Никак не срабатывают алерты всё равно(
Причина обращения: