如何在不使用[MetaTrader终端]的情况下从任何[MetaTrader服务器]获取交易账户的历史记录?

时间:2016-07-26 15:17:18

标签: c# metatrader4 metatrader5

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

我们拥有什么:

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

2 个答案:

答案 0 :(得分:1)

如果您有经理帐户,则应使用管理员API来获取它,您可以创建自己的包装器或使用现有的包装器,例如MetaTrader4.Manager.Wrapper。对于MT5,你可以从metaquotes获得正式的。

如果你有客户账号,没有官方的方式来获取它,你必须打开MT4终端,但是,也有一些项目可能对你有所帮助,例如。 nj4x

答案 1 :(得分:1)

实际上是的,你可以直接按照你的提法直接得到它而没有任何API 您只需将套接字发送到MT4服务器即可 以下是官方支持网站的功能。

  

USERHISTORY - 收到用户帐号的历史记录。

  的格式:
USERHISTORY-login=_login_|password=_password_|from=_from_|to=_to_   

  说明:
该命令用于接收在给定时间范围内进行的操作的历史记录。   

  的参数:   
      登录 - 帐号;
      密码 - 用户密码;
       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);