WebSocket 프로토콜은 2가지 유형의 요청을 허용합니다: Streaming commands(실시간 업데이트 수신) 및 Retrieve Trading Data(일부 정보를 검색하기 위해 서버에 요청 전송).
XTB 속성에서 다음 속성을 구성할 수 있습니다.
클라이언트가 XTB 서버에 성공적으로 연결되면 OnXTBConnect 이벤트가 발생합니다. 연결을 시도하는 동안 오류가 발생하면 OnXTBError 이벤트가 오류 세부 정보와 함께 발생합니다.
OnXTBConnect 이벤트가 발생한 후에는 XTB 서버에서 메시지를 송신하고 수신하기 시작할 수 있습니다.
oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
DoLog('#error: ' + aDescription);
end;
| 메서드 | 설명 |
| Login | 작업을 수행하려면 클라이언트 애플리케이션이 로그인 프로세스를 수행해야 합니다. 적절한 로그인 프로세스 전에는 어떤 기능도 사용할 수 없습니다. login 메서드는 클라이언트가 websocket 서버에 연결되고 User/Password 값이 설정된 후 자동으로 호출됩니다. |
| Logout |
다음 채널을 구독할 수 있습니다:
| 메서드 | 설명 |
| SubscribeBalance | 시스템에서 사용 가능해지는 즉시 실시간으로 실제 계정 지표 값을 가져올 수 있게 합니다. |
| SubscribeCandles | API 차트 캔들을 구독하고 구독 취소합니다. 모든 캔들의 간격은 1분입니다. 새 캔들이 매분 도착합니다. |
| SubscribeKeepAlive | 'keep alive' 메시지를 구독하고 구독 취소합니다. 새 'keep alive' 메시지는 API에서 3초마다 전송됩니다. |
| SubscribeNews | 뉴스를 구독하고 구독을 취소합니다. |
| SubscribeProfits | profits를 구독하고 구독 취소합니다. |
| SubscribeTickPrices |
시세에 대한 구독을 설정하고 시스템에서 사용 가능해지는 즉시 관련 정보를 실시간으로 얻을 수 있도록 합니다. getTickPrices 명령은 동일한 심볼에 대해 여러 번 호출할 수 있지만, 주어진 심볼에 대해서는 하나의 구독만 생성됩니다. 여러 레코드가 사용 가능한 경우 수신되는 순서는 보장되지 않으니 주의하십시오. |
| SubscribeTrades | 사용자 거래 상태 데이터에 대한 구독을 설정하고, 시스템에서 사용 가능해지는 즉시 관련 정보를 실시간으로 얻을 수 있게 합니다. 여러 레코드가 사용 가능한 경우, 수신되는 순서는 보장되지 않습니다. |
| SubscribeTradeStatus | 전송된 거래 요청에 대한 상태를 시스템에서 사용 가능해지는 즉시 실시간으로 가져올 수 있습니다. 여러 레코드가 사용 가능할 때 수신되는 순서는 보장되지 않음에 유의하십시오 |
| SubscribePing | 이 함수를 정기적으로 호출하는 것만으로 시스템의 모든 구성 요소의 내부 상태를 새로 고치기에 충분합니다. 스트리밍 연결은 세션에서 클라이언트가 명령을 보내지 않으면 단방향 네트워크 트래픽만 생성합니다. 다른 명령을 실행하지 않는 모든 애플리케이션은 최소 10분마다 한 번씩 이 명령을 호출하는 것이 권장됩니다. |
다음 요청을 전송할 수 있습니다:
| 메서드 | 설명 |
| GetAllSymbols | 사용자가 사용할 수 있는 모든 심볼의 배열을 반환합니다. |
| GetCalendar | 시장 이벤트가 있는 캘린더를 반환합니다. |
| GetChartLastRequest | 이 함수는 일반적으로 현재 candle 데이터를 검색하는 데 선호되는 방법인 스트리밍 등가물 getCandles로 대체될 수 있습니다. start date부터 현재 시간까지의 차트 정보를 반환합니다. 선택한 CHART_LAST_INFO_RECORD의 기간이 1분보다 큰 경우, API가 반환하는 마지막 candle은 기간이 끝날 때까지 변경될 수 있습니다(candle은 매분 자동으로 업데이트됩니다). |
| GetChartRangeRequest | 이 함수는 일반적으로 현재 캔들 데이터를 검색하는 권장 방법인 스트리밍 대응 함수 getCandles로 대체될 수 있음에 유의하십시오. 지정된 시작 및 종료 날짜 사이의 데이터가 포함된 차트 정보를 반환합니다. |
| GetCommissionDef | 수수료와 환율 계산을 반환합니다. 값은 예상 값으로 계산되므로 완벽하게 정확하지 않을 수 있습니다. |
| GetCurrentUserData |
계정 통화 및 계정 레버리지에 대한 정보를 반환합니다. |
GetIbsHistory |
지정된 시간 범위의 IBs 데이터를 반환합니다. |
| GetMarginLevel | 이 함수는 일반적으로 스트리밍 등가물인 getBalance로 대체될 수 있으며, 이것이 계정 지표를 검색하는 선호되는 방법입니다. 다양한 계정 지표를 반환합니다 |
| GetMarginTrade | 주어진 악기와 거래량에 대한 예상 증거금을 반환합니다. 값은 예상 증거금 값으로 계산되므로 완벽하게 정확하지 않을 수 있습니다. |
| GetNews | 이 함수는 일반적으로 뉴스 데이터를 검색하는 선호되는 방법인 스트리밍 등가물 getNews로 대체할 수 있다는 점을 유의하십시오. 지정된 기간 내에 전송된 거래 서버의 뉴스를 반환합니다. |
| GetProfitCalculation | 주어진 거래 데이터에 대한 예상 수익을 계산합니다. calculator와 같은 앱에만 사용해야 합니다. 열린 거래의 수익은 서버 계산의 더 높은 정밀도로 인해 서버에서 가져와야 합니다 |
| GetServerTime | 거래 서버의 현재 시간을 반환합니다. |
| GetStepRules | DMA에 대한 step rule 목록을 반환합니다. |
| GetSymbol | 사용자가 사용 가능한 심볼에 대한 정보를 반환합니다 |
| GetTickPrices | 이 함수는 일반적으로 tick 데이터를 검색하는 데 선호되는 방법인 스트리밍 등가물 getTickPrices로 대체될 수 있습니다. 주어진 symbol에 대한 현재 시세 배열을 반환하며, 주어진 타임스탬프에서 변경된 시세만 반환됩니다. 출력에서 얻은 새 타임스탬프는 이 명령의 다음 호출의 인수로 사용됩니다. |
| GetTradeRecords | orders 인수에 나열된 거래 배열을 반환합니다 |
| GetTrades | 이 함수는 일반적으로 거래 데이터를 검색하는 선호되는 방법인 스트리밍 등가물 getTrades로 대체될 수 있다는 점에 유의하십시오. 사용자의 거래 배열을 반환합니다. |
| GetTradesHistory | 이 함수는 일반적으로 거래 데이터를 검색하는 데 선호되는 방식인 스트리밍 등가 함수 getTrades로 대체될 수 있다는 점에 유의하십시오. 지정된 기간 내에 청산된 사용자 거래 배열을 반환합니다. |
| GetTradingHours | 호가와 거래 시간을 반환합니다. |
| GetVersion | 현재 API 버전을 반환합니다. |
| Ping | 이 함수를 정기적으로 호출하는 것만으로도 시스템의 모든 구성 요소의 내부 상태를 새로 고치기에 충분합니다. 다른 명령을 실행하지 않는 모든 애플리케이션은 이 명령을 최소 10분마다 한 번씩 호출하는 것이 권장됩니다. 이 함수의 스트리밍 대응물은 ping과 getKeepAlive의 조합입니다 |
| TradeTransaction | 거래 트랜잭션을 시작합니다. tradeTransaction은 주요 트랜잭션 정보를 서버에 보냅니다. |
| TradeTransactionStatus | 이 함수는 일반적으로 트랜잭션 상태 데이터를 검색하는 데 선호되는 방법인 스트리밍 등가물 getTradeStatus로 대체될 수 있습니다. 현재 트랜잭션 상태를 반환합니다. 트랜잭션 처리 중 언제든지 클라이언트는 서버 측에서 트랜잭션 상태를 확인할 수 있습니다. 이를 위해 클라이언트는 tradeTransaction 호출에서 가져온 고유 주문을 제공해야 합니다. |