将文件发送到 FTP 服务器
MetaTrader 5 支持向 FTP 服务器发送文件。要使此功能正常工作,你必须在设置对话框的“FTP”选项卡中输入必要的 FTP 详细信息:FTP 服务器地址、登录名、密码,以及用于在服务器上放置文件的路径(可选)。如果你的计算机位于 ISP 网络中,而 ISP 未为你分配公共 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 服务器发送单个文件。MQL5 不提供所有其他 FTP 命令。
NetFtp.mq5 示例脚本会截取当前图表的屏幕截图,并尝试通过 FTP 发送。
void OnStart()
|