может быть не хватает пикселей по вертикали
попробуйте
ChartScreenShot(chart_id,filename,800,600,ALIGN_RIGHT)
в справке:
Примечание
Если необходимо снять скриншот графика с определенной позиции, то необходимо сначала позиционировать график при помощи функции ChartNavigate(). Если горизонтальный размер скриншота меньше, чем окно графика, то выводится либо правая часть окна графика, либо левая часть, в зависимости от значения параметра align_mode.
![Документация по MQL5: Операции с графиками / ChartNavigate Документация по MQL5: Операции с графиками / ChartNavigate](https://c.mql5.com/36/52/dokumentaciya-po-mql5-operacii.png)
- www.mql5.com
может быть не хватает пикселей по вертикали
попробуйте
в справке:
Примечание
Если необходимо снять скриншот графика с определенной позиции, то необходимо сначала позиционировать график при помощи функции ChartNavigate(). Если горизонтальный размер скриншота меньше, чем окно графика, то выводится либо правая часть окна графика, либо левая часть, в зависимости от значения параметра align_mode.
Спасибо за участие и помощь в решении вопроса.
К сожалению от этих параметров не сильно зависит эта ошибка вывода.
Я использовал размер 800х600 и даже 640х480, все равно при нагрузке на терминал или еще что
выдаются иногда не полные скрины.
Выдавая сигнал я ориентируюсь на смартфон, а туда желательно выдавать скрины равного размера,
поэтому принял решение выдавать с разрешением 960х960, что позволяет на смартфоне их хорошо рассматривать.
после FileIsExists поставьте задержку.
когда файл существует, не факт что он полностью записан на диск.
А каким образом, если без задержки, можно еще проверить записан файл полностью или нет?
не уверен, но попробуйте открывать на чтение без флагов SHARE_READ, SHARE_WRITE - запрещая(не разрешая) совместную запись и чтение.
Чтобы точно знать что к файлу никто и ничто уже больше не обращается и скриншотер полностью записал данные и со своей стороны файл закрыл
PS/ я когда-то делал несколько иначе - скриншоты валятся в один каталог, отдельный рассыльщик периодически каталог смотрит и перекладывает их в OUTBOX,
при успешной отправке перекладывает в SENT, а оттуда всё что старше 15 дней удаляется.
То есть не пытался в сию секунду отправить полученный скриншот, все одно он большой и долго шлётся, к чему торопится :-)
И всё обходилось без Sleep(). Отчасти возможно от того что треды получались разные, скриншотер и рассыльщик
или на запись его открыть, без SHARE_WRITE конечно. Только тут надо аккуратно, чтобы не затереть :-)
После сохранение скриншота можно попробовать открыть файл изображения без всяких _SHARE_, если откроется, тогда закрыть и слать его.
Если не откроется, подождать и повторить попытку.
Если это сработает, то лучше в методе убрать _SHARE_, чтобы пользоваться без лишних манипуляций.
А вообще код открытый, можно все в деталях разобрать, почему так случается.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите, пожалуйста, в чем может быть проблема при не полной отправке скрина из советника в месенджер Телеграмм?
Такое происходит не часто, но не приятно.
Для работы с Телеграмм использую модуль Telegram.mqh, который очень хорошо был описан на данном форуме.
Может надо что-то изменить или добавить в код, буду очень признателен за совет.
Код отправки скринов