0

有没有办法在没有 MT 终端的情况下从 C# 中的任何 MT 服务器获取交易账户的历史记录?

我们有什么:

  • 服务器的IP地址
  • 登录(帐号)
  • 密码
4

2 回答 2

1

实际上是的,您可以直接获取它,就像您提到的那样,无需任何 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);
于 2017-03-03T10:24:41.677 回答
1

如果您有经理账户,您应该使用经理 API 来获取它,您可以创建自己的包装器或使用现有的包装器之一,例如MetaTrader4.Manager.Wrapper。对于 MT5,您可以从 metaquotes 获得官方版本。

如果您有客户账户,没有官方途径可以获取,您必须打开 MT4 终端,但是,也有一些项目可能对您有所帮助,例如。nj4x

于 2016-08-18T11:48:59.367 回答