有没有办法在没有 MT 终端的情况下从 C# 中的任何 MT 服务器获取交易账户的历史记录?
我们有什么:
- 服务器的IP地址
- 登录(帐号)
- 密码
有没有办法在没有 MT 终端的情况下从 C# 中的任何 MT 服务器获取交易账户的历史记录?
我们有什么:
实际上是的,您可以直接获取它,就像您提到的那样,无需任何 API。
您只需向 MT4 服务器发送一个套接字即可。
这是来自官方支持网站的功能。
USERHISTORY
- 接收用户帐户的历史记录。
格式:USERHISTORY-login=_login_|password=_password_|from=_from_|to=_to_
说明:
该命令用于接收在给定时间范围内进行的操作的历史记录。
参数:
login——账号;
密码- 用户的密码;
from - 以 Unix 时间戳格式请求的时间帧的开始;
to - 以 Unix 时间戳格式请求的时间范围的结束。
例子:
// 1. Start Session.
$ptr=fsockopen('192.168.0.1',443);
// error check
if (!$ptr){
echo "Connection error";
exit;
}
// 2. Send request to MT4
fputs($ptr,"WUSERHISTORY-login=55555|password=55555|from=1117551473|to=1120143473\nQUIT\n");
// 3. Reading and processing server responses
while(!feof($ptr))
{
// read line of symbols
$line=fgets($ptr,128);
// the symbol of the end of result transfer
if($line=="end\r\n") break;
// process
print $line;
$buf .= $line;
}
// 4. Session completion
fclose($ptr);
如果您有经理账户,您应该使用经理 API 来获取它,您可以创建自己的包装器或使用现有的包装器之一,例如MetaTrader4.Manager.Wrapper。对于 MT5,您可以从 metaquotes 获得官方版本。
如果您有客户账户,没有官方途径可以获取,您必须打开 MT4 终端,但是,也有一些项目可能对您有所帮助,例如。nj4x