MT 터미널이없는 C#의 MT 서버에서 거래 계정의 기록을 가져 오는 방법이 있습니까?[MetaTrader Terminal]을 사용하지 않고 [MetaTrader Server]에서 거래 계정의 기록을 가져 오는 방법은 무엇입니까?
우리가 무엇을 가지고 :
- 서버 IP 주소
- 로그인 (계좌 번호)
- 비밀번호
MT 터미널이없는 C#의 MT 서버에서 거래 계정의 기록을 가져 오는 방법이 있습니까?[MetaTrader Terminal]을 사용하지 않고 [MetaTrader Server]에서 거래 계정의 기록을 가져 오는 방법은 무엇입니까?
우리가 무엇을 가지고 :
당신이 관리자 계정이있는 경우, 당신이 그것을 얻기 위해 관리자 API를 사용합니다, 자신의 래퍼를 만들거나 기존 래퍼 중 하나를 사용할 수 있습니다 (예 : MetaTrader4.Manager.Wrapper). MT5의 경우 metaquotes에서 공식적인 것을 얻을 수 있습니다.
고객 계정이 있다면 공식적인 방법이 없으므로 MT4 터미널을 열어야합니다. 그러나 예를 들어 도움이 될만한 프로젝트도 있습니다. nj4x
사실 예라면 API없이 언급 한대로 직접 가져올 수 있습니다.
단순히 소켓을 MT4 서버에 보낼 수 있습니다.
다음은 공식 지원 웹 사이트의 기능입니다.
USERHISTORY
- 사용자 계정의 역사를 수신.
형식 :USERHISTORY-login=_login_|password=_password_|from=_from_|to=_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);