Обсуждение статьи "Создание бота для Telegram на языке MQL5" - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ты про приватный канал?
Да
можно посылать , посылай по id канала
Иногда, при попытке отправить скриншот графика, пишет: "Error: Unknown error 5020" - файла не существует. Хотя в папке Files он присутствует. Такое повторяется иногда. Иногда все подряд публикует (более 3 секунд задержки между отправкой сообщений делаю). Сам алгоритм выглядит следующим образом: бот открывает график, переводит график у крайнюю правую позицию, создает стрелки (уровни ценовые), делает скриншот, отправляет его (после отправки задержка в 3 секунды как раз... без нее не хочет почему-то отправлять), удаляет стрелки и после проверки на наличие файла удаляет его. Или не удаляет. Если бот при отправке выдает ошибку 5020, то и функция FileIsExist возвращает брехню. Пробовал ставить задержки после создания файла не очень помогало. Отправляю в открытый канал. Расширение .gif.
Насколько это решение плохое (вот так отправлять скриншоты)? Код наверное далекий от идеала, но почему не хочет слать скрины? Вернее иногда нормально шлет , а иногда совсем не хочет. Интернет вроде нормальный...
Иногда, при попытке отправить скриншот графика, пишет: "Error: Unknown error 5020" - файла не существует. Хотя в папке Files он присутствует. Такое повторяется иногда. Иногда все подряд публикует (более 3 секунд задержки между отправкой сообщений делаю). Сам алгоритм выглядит следующим образом: бот открывает график, переводит график у крайнюю правую позицию, создает стрелки (уровни ценовые), делает скриншот, отправляет его (после отправки задержка в 3 секунды как раз... без нее не хочет почему-то отправлять), удаляет стрелки и после проверки на наличие файла удаляет его. Или не удаляет. Если бот при отправке выдает ошибку 5020, то и функция FileIsExist возвращает брехню. Пробовал ставить задержки после создания файла не очень помогало. Отправляю в открытый канал. Расширение .gif.
Насколько это решение плохое (вот так отправлять скриншоты)? Код наверное далекий от идеала, но почему не хочет слать скрины? Вернее иногда нормально шлет , а иногда совсем не хочет. Интернет вроде нормальный...
Поищите, было обсуждение.
Файл не успевает записаться, нужно ждать.
Пытаемся использовать скрипт Telegram_Bot_EA для отправки по запросу скрина графика. Чуть модифицировали его в плане выбора шаблонов и других инструментов. Но думаю, это не существенно. Допустим нас двое пользователей.
- Первый стартует бота, выбирает инструмент (допустим RI), выбирает ТФ - 5мин, делает паузу...
- второй стартует бота, выбирает инструмент (BR), выбирает ТФ - 30мин, выбирает шаблон "№1" - получает правильный скрин.
- первый продолжает и выбирает шаблон "№2" и получает.... картину, которую получил второй.
Т.е. в тот момент, когда первый сделал паузу, бот как-то перестроился на полученные данные от второго, а потом использовал их, когда первый закончил отправку запроса. Получается, переменные, где хранятся инструмент, ТФ, шаблон - они в некотором смысле глобальные, и поэтому они заменились.
Как можно решить эту проблему?
Пример на скрине ниже. Был заказан инструмент РТС, 5м. Перед выбором шаблона задержались, в это время второй пользователь запрашивал свою картинку. Потом я продолжил выбор шаблона и получил BR, H1 вместо РТСа
Проблема следующая.
Как можно решить эту проблему?
Т.е. в тот момент, когда первый сделал паузу, бот как-то перестроился на полученные данные от второго, а потом использовал их, когда первый закончил отправку запроса. Получается, переменные, где хранятся инструмент, ТФ, шаблон - они в некотором смысле глобальные, и поэтому они заменились.
Как можно решить эту проблему?
Анализируйте ай-ди пользователя, который запрашивает данные, и храните все с привязкой к этому ай-ди.
Иногда, при попытке отправить скриншот графика, пишет: "Error: Unknown error 5020" - файла не существует. Хотя в папке Files он присутствует. Такое повторяется иногда. Иногда все подряд публикует (более 3 секунд задержки между отправкой сообщений делаю). Сам алгоритм выглядит следующим образом: бот открывает график, переводит график у крайнюю правую позицию, создает стрелки (уровни ценовые), делает скриншот, отправляет его (после отправки задержка в 3 секунды как раз... без нее не хочет почему-то отправлять), удаляет стрелки и после проверки на наличие файла удаляет его. Или не удаляет. Если бот при отправке выдает ошибку 5020, то и функция FileIsExist возвращает брехню. Пробовал ставить задержки после создания файла не очень помогало. Отправляю в открытый канал. Расширение .gif.
Насколько это решение плохое (вот так отправлять скриншоты)? Код наверное далекий от идеала, но почему не хочет слать скрины? Вернее иногда нормально шлет , а иногда совсем не хочет. Интернет вроде нормальный...
Вместо задержки красивей использовать функцию проверки на наличие файла , но не просто наличие файла в каталоге, а наличие у него длинны. Есть ситуации когда файл появляется с нулевой длиной, при этом процесс записи в него не завершен, и только после завершения записи длина фиксируется.
Можно в OnTime отслеживать.
Вместо задержки красивей использовать функцию проверки на наличие файла , но не просто наличие файла в каталоге, а наличие у него длинны. Есть ситуации когда файл появляется с нулевой длиной, при этом процесс записи в него не завершен, и только после завершения записи длина фиксируется.
Можно в OnTime отслеживать.
Да, это более полноценное решение. Спасибо за совет!