다음 sgcWebSockets 릴리스인 버전 2026.5.0에서 Forex.com / StoneX / CityIndex Trading API를 네이티브로 지원해요. REST 주문 관리와 실시간 Lightstreamer 스트리밍을 폼에 드래그 앤 드롭할 수 있는 단일 Delphi 컴포넌트로 제공해요.
세 가지 새 컴포넌트가 전체 기능을 담당해요: REST 트레이딩용 TsgcHTTP_API_Forex, 네이티브 Lightstreamer TLCP 2.5 스트리밍 채널용 TsgcWSPClient_Lightstreamer, 그리고 두 컴포넌트를 연결하고 가격·주문·포지션·호가·계정 마진에 대한 타입 지정된 OnForex* 이벤트를 게시하는 통합 파사드 TsgcWSAPI_Forex예요.
포함된 기능
현재 Forex.com 라이브 서버에서 제공하는 모든 엔드포인트와 스트리밍 어댑터를 기본으로 지원해요.
|
REST 트레이딩 LogOn / LogOff / Ping / GetServiceStatus와 5가지 주문 엔드포인트: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder, CancelOrder를 제공해요. 각 항목은 원시 JSON, 스칼라 파라미터, 완전한 IfDone 브래킷과 부분 청산 지원이 포함된 타입 지정 주문 객체 등 세 가지 오버로드를 제공해요. |
계정 & 시장 데이터 GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars and GetPriceTicks. |
|
실시간 스트리밍 STREAMINGALL 어댑터 세트 아래의 다섯 가지 Lightstreamer 데이터 어댑터 — PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN, TRADEMARGIN을 제공해요. 각각은 파싱된 레코드를 타입 지정 이벤트로 디스패치해요: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
통합 파사드 컴포넌트 TsgcWSAPI_Forex는 REST 클라이언트와 내부 Lightstreamer 클라이언트를 하나의 비주얼 컴포넌트로 통합해요. Connect를 호출하면 REST LogOn이 먼저 실행되고 Session 토큰이 LS_password로 Lightstreamer 핸드셰이크에 전달된 후 스트리밍이 시작돼요. 컴포넌트 하나, 호출 하나예요. |
|
자동 재연결 내부 WebSocket 클라이언트 WatchDog이 처리해요. 재연결 시도 전마다 파사드가 REST 세션 토큰을 갱신하고, 네트워크 끊김 후 TLCP LOOP 프레임이 모든 활성 구독을 다시 바인딩하고 재생해요. 세션 만료 시 LogOn이 투명하게 다시 실행돼요. |
플랫폼 지원 범위 Delphi 7부터 Delphi 13까지, Professional 에디션 이상이에요. 컴파일러가 지원하는 경우 Windows, macOS, Linux, iOS, Android도 지원해요. 네이티브 sgcWebSockets DLL을 기반으로 한 .NET 미러(.net40+, .NET Standard 2.0, .NET 5-9)도 제공해요. |
내부 동작 방식
이 통합의 스트리밍 부분이 가장 흥미로운 부분이에요. Forex.com은 여러 브로커와 금융 데이터 벤더가 사용하는 독점 스트리밍 프로토콜인 Lightstreamer를 통해 실시간 데이터를 제공해요. 지금까지 Delphi용 네이티브 TLCP 클라이언트는 없었어요. Lightstreamer 기반 서비스와의 기존 통합은 모두 브라우저 임베드나 외부 프로세스를 통해 Lightstreamer JavaScript 또는 Java SDK를 래핑했어요.
TsgcWSPClient_Lightstreamer는 Lightstreamer TLCP 2.5 프로토콜의 완전한 네이티브 구현이에요: create_session, bind_session, control (subscribe / unsubscribe), the LOOP auto-rebind handler and subscription replay after reconnect — advertised on the wire through the Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com subprotocol header. 이로써 sgcWebSockets는 네이티브 TLCP를 지원하는 최초의 Delphi 컴포넌트 라이브러리가 됐어요. 클라이언트는 의도적으로 범용으로 설계됐어요: Forex.com에 종속되지 않고 독립적인 재사용 가능 컴포넌트로 제공되므로, 동일한 코드가 Lightstreamer 기반 브로커(예: IG Markets)나 데이터 벤더에서도 작동해요.
아이템 주소 지정. 모든 Forex.com 어댑터는 ID.{numericId} 형식을 사용해요. 숫자 ID는 MarketId, ClientAccountId, TradingAccountId이며, SUB 프레임의 DataAdapter 선택자(PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN)가 해당 ID에 대해 스트리밍할 데이터 세트를 결정해요. 레거시 PRICE.{id} 접두사는 없어요.
주문 객체 패턴. 트레이드 요청은 라이브러리의 다른 곳에서 사용하는 Kucoin 스타일 디자인을 따라요: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder and TsgcHTTPForexCancelOrder. 주문을 한 번 만들고, 몇 개의 필드를 수정한 후 다시 보내요. 타입 지정된 IfDone 브래킷(첨부 스탑 / 리밋 / 보장 스탑 / 트레일링 스탑), 부분 청산 의미의 Close 배열, PositionMethodId(네팅 대 헤징), 클라이언트 Reference 필드가 모두 1급 지원돼요.
코드 샘플
폼에 파사드를 드래그 앤 드롭하고, 자격 증명을 설정하고, 가격 틱 이벤트를 연결한 후 Connect와 WatchMarket을 호출해요. 아래 코드는 완전히 작동하는 예시예요.
var
Forex: TsgcWSAPI_Forex;
begin
Forex := TsgcWSAPI_Forex.Create(nil);
Try
Forex.Credentials.UserName := 'YOUR_USER';
Forex.Credentials.Password := 'YOUR_PASSWORD';
Forex.Credentials.AppKey := 'YOUR_APPKEY';
Forex.OnForexPriceTick := OnPriceTick;
Forex.Connect; // REST LogOn + Lightstreamer
Forex.WatchMarket(401484830); // EUR/USD
Forex.WatchAccount; // ORDERS + margin
// ... run app, receive ticks and order updates ...
Finally
Forex.Free;
End;
end;
procedure TForm1.OnPriceTick(Sender: TObject;
const aTick: TsgcForexPriceTick);
begin
Memo1.Lines.Add(Format('%d bid=%.5f offer=%.5f audit=%s',
[aTick.MarketId, aTick.Bid, aTick.Offer, aTick.AuditId]));
end;
데모
완전한 VCL 데모가 Demos\05.Crypto\22.Forex에 있어요. 세 탭으로 구성돼요:
- 로그인 — UserName / Password / AppKey 필드, Connect / Disconnect / Ping, AutoReconnect 토글, 라이브 세션 / 계정 ID, 실행 중인 이벤트 로그예요. 자격 증명은
sgcForexDemo.ini에 저장되므로 한 번만 입력하면 돼요. - REST 트레이딩 — 시장 검색(FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory, ListStopLimitOrderHistory예요.
- 스트리밍 — WatchMarket / UnwatchMarket, 실시간 가격 그리드, STREAMINGALL 어댑터 세트에서 실시간 업데이트되는 포지션 및 주문 리스트 뷰, 라이브 계정 마진 패널(Cash / Margin / NetEquity / TradeableFunds / Currency)이에요.
출시 일정
다음 sgcWebSockets 릴리스인 버전 2026.5.0에서 사용할 수 있어요. 기존 Enterprise 및 All-Access 라이선스 보유자는 구독의 일부로 받아요. Professional 라이선스는 갱신 시 받을 수 있어요.
www.forex.com에서 무료 Forex.com 데모 계정(UserName / Password / AppKey 포함)에 가입하고, 전체 API 레퍼런스는 docs.labs.gaincapital.com에서 확인하세요.
링크
- 컴포넌트 문서: esegece.com/help/sgcwebsockets/
- 데모 폴더:
Demos\05.Crypto\22.Forex - Forex.com 가입: www.forex.com
- API 레퍼런스: docs.labs.gaincapital.com
- Lightstreamer TLCP 2.5 사양: TLCP 2.5 PDF
- sgcWebSockets 제품 페이지: esegece.com
