SendFTP()関数|FTPを使用してファイルを送信
執筆者
佐川直弘(株式会社トリロジー取締役)
MetaTrader4(MT4)を利用して自動売買EAを開発する際、取引結果やログファイルなどをFTPを使ってサーバに送信することがあります。この記事では、FTPを使用してファイルをサーバに送信する方法と、その使用例について解説します。初心者でも理解しやすいように、各ステップを詳しく説明します。
SendFTP()関数|FTPを使用してファイルを送信する方法
MT4でFTPを使用してファイルをサーバに送信するには、SendFTP()関数を使用します。なお、FTPの利用には事前にMetaTrader4でFTP先のサーバを登録しておく必要があります。
- SendFTP()関数の仕様
- bool SendFTP(string filename, string ftp_path=NULL)
– filename:送信ファイル名
– ftp_path:FTPサーバ上に格納するパス(未指定の場合、Publisherタブで設定した「FTP path:」の値が利用される)
この関数は、送信に成功した場合はtrueを、失敗した場合はfalseを返します。詳細なエラー情報を得るには、GetLastError()関数を使用します。 - 注意点
- 送信したいファイルは、次のフォルダに格納しておく必要があります。
– [MetaTrader4]\experts\files
※[MetaTrader4]は、MetaTraderのインストールフォルダ
テストモードでは実行されません。
カスタムインディケータから呼び出すことはできません。
以下に、具体的なサンプルコードを示します。
- サンプルコード
- int start() {
// ファイルをFTPサーバに送信する
if(!SendFTP(“report.txt")) {
// 送信に失敗した場合、エラーコードを取得して表示する
int ftp_error_code = GetLastError();
Print(“FTP送信エラー: “, ftp_error_code);
} else {
Print(“FTP送信成功");
}
}
実際の利用例
取引が終了した後、トレードレポートをFTPサーバに送信することで、リモートで結果を確認することができます。
- トレードレポートの送信
- void OnTrade() {
// トレードが終了したときに、トレードレポートを生成して送信する
GenerateTradeReport();
if(!SendFTP(“trade_report.txt")) {
int ftp_error_code = GetLastError();
Print(“トレードレポートのFTP送信エラー: “, ftp_error_code);
} else {
Print(“トレードレポートのFTP送信成功");
}
}
void GenerateTradeReport() {
// ここでトレードレポートを生成する処理を実装
// 例えば、ファイルに書き込むなど
}
まとめ
MT4でのFTPを使用してファイルを送信する方法について解説しました。FTPを活用することで、取引結果やログファイルをリモートで管理することが可能です。サンプルコードを参考に、自動売買EAの機能をさらに拡張してください。
ディスカッション
コメント一覧
まだ、コメントがありません