- Отправка Push-уведомлений
- Отправка уведомлений по электронной почте
- Отправка файлов на сервер FTP
- Обмен данными с веб-сервером по протоколу HTTP/HTTPS
- Установление и разрыв соединения сетевого сокета
- Проверка состояния сокета
- Настройка таймаутов передачи и приема данных сокетами
- Чтение, запись данных по незащищенному сокет-соединению
- Подготовка защищенного сокет-соединения
- Чтение и запись данных по защищенному сокет-соединению
Отправка файлов на сервер FTP
MetaTrader 5 поддерживает отправку файлов на FTP-сервер. Для работы этой возможности следует ввести необходимые реквизиты FTP в диалоге настроек на закладке FTP: адрес FTP-сервера, логин, пароль и опционально путь размещения файлов на сервере. Если ваш компьютер находится в сети провайдера, который не выделил для вас публичный IP-адрес, то, вероятно, потребуется включить пассивный режим.
Непосредственно отправку файлов из MQL-программы обеспечивает функция SendFTP.
bool SendFTP(const string filename, const string path = NULL)
Функция посылает файл с указанным именем на FTP-сервер из настроек терминала. При необходимости можно указать другой путь, отличный от настроенного заранее. Если параметр path не указан, используется каталог, описанный в настройках.
Отсылаемый файл должен находиться в папке MQL5/Files или ее подпапках.
Функция возвращает признак успеха (true) или ошибки (false). Потенциальные ошибки в _LastError:
- 4514 — ERR_FTP_SEND_FAILED — не удалось отправить файл по FTP;
- 4519 — ERR_FTP_NOSERVER — не указан FTP-сервер;
- 4520 — ERR_FTP_NOLOGIN — не указан FTP-логин;
- 4521 — ERR_FTP_FILE_ERROR — не найден заданный файл в директории MQL5/Files;
- 4522 — ERR_FTP_CONNECT_FAILED — ошибка при подключении к FTP-серверу;
- 4523 — ERR_FTP_CHANGEDIR — на FTP-сервере не найдена директория для выгрузки файла;
- 4524 — ERR_FTP_CLOSED — подключение к FTP-серверу было закрыто.
Функция блокирует выполнение MQL-программы до тех пор, пока операция не завершится. В связи с этим функцию запрещено использовать в индикаторах.
Также функция SendFTP не выполняется в тестере стратегий.
Терминал поддерживает только отправку отдельно взятого файла на FTP-сервер — все другие FTP-команды недоступны из MQL5.
Пример скрипта NetFtp.mq5 делает скриншот текущего графика и пытается отправить его по FTP.
void OnStart()
|