GxSymbolStore 구조
GOM에서 종목정보를 총괄하는 GxSymbolStore와 그 하위 객체의 사용법에 대해 알아봅니다.

클라이언트가 GOM의 종목 정보를 사용하기 위해서는 GxSymbolStore와 그 하위의 객체를 사용해야 합니다. GxSymbolStore 객체는 최상위 GxServer 객체의 자식으로써 IGxServer 의 'SymbolStore' 속성을 호출하여 IGxSymbolStore를 얻을 수 있습니다.

GOM에서 공개하는 종목은 KOSPI200, KOSPI 선물, 스프레드, 옵션, 주식 5종목등 입니다. 언급한 종목 하나 하나가 GxSymbol 객체이고 이 모든 GxSymbol 객체를 GxSymbolStore 가 관리합니다. 한 마디로 GxSymbolStore는 GxSymbol들을 관리하는 Collection 객체 입니다.

GxSymbolStore는 Collection 객체로써 For Each, For 등을 사용할 수 있습니다. Item 속성은 정수형일 경우 N번째 GxSymbol이 반환되고 문자열일 경우 해당 종목 코드의 GxSymbol 이 반환됩니다.

GxSymbolStore는 전체 GxSymbol에 대한 Collection 객체이며 Stocks, Spreads, Futures 속성은 주식, 스프레드, 선물종목을 관리하는 Collection 타입의 속성입니다. 이를 테면 선물종목만 얻기 위해서 Futures 속성값을 취하면 됩니다. 이때 반환값은 IDispatch 타입이지만 원래 타입인 IGxSymbols로 변환하여 사용하면 됩니다. GxSymbols는 특정 종목들에 대한 Collection 객체입니다.

옵션 종목의 경우 좀 더 복잡한 구조를 가지게 됩니다. GxSymbolStore 하위에 OptionMonths 속성으로 GxOptionMonths를 가리킵니다. GxOptionMonths는 GxOptionMonth의 Collection 객체 입니다. GxOptionMonth는 옵션 월물에 대한 정보를 가지고 있습니다. GxOptionMonth는 StrikePrices 속성으로 GxStrikePrices를 가리킵니다. GxStrikePrices는 GxStrikePrice를 가리키는 Collection 객체 입니다. GxStrikePrice는 부모 월물의 행사가 정보를 가지고 있습니다. 그리고 Call, Put 속성으로 GxSymbol 객체를 가리킵니다.

지금까지를 종합하면 GxSymbolStore는 GxSymbol을 접근하는데 두 가지 방법이 있습니다. GxSymbolStore는 모든 GxSymbol을 관리하므로 이를 통해도 되고 GxSymbolStore의 특정 부류의 GxSymbols이나 옵션월물->행사가(옵션의 경우)를 통해 GxSymbol에 접근할 수 도 있습니다.

GxSymbol 객체는 종목의 모든 정보를 가지고 있는 객체 입니다만 체결과 호가 정보는 GxSymbol의 하위 객체에서 얻을 수 있습니다. GxSymbol의 Quote 속성으로 GxQuote 객체를 얻을 수 있으며 종목의 호가 정보를 얻을 수 있습니다. 그리고 GxSymbol의 LastTick 속성으로 GxLastTick 객체를 얻을 수 있으며 종목의 최종 체결 정보를 얻을 수 있습니다.
GxSymbolStore 이벤트
GOM에서 종목 관련 이벤트는 현재가, 호가 , 체결 등 3 가지 입니다. 현재가 이벤트를 수신하려면 GxSymbol에, 호가 이벤트를 수신하려면 GxSymbol 하위의 GxQuote에, 체결 이벤트를 수신하려면 GxSymbol 하위의 GxLastTick에 이벤트를 요청해야 합니다.

종목 관련 이벤트가 짧은 시간에 많은 수가 발생하면 클라이언트나 서버에 무리가 갈 수 있으므로 GxSymbolStore에 호가, 현재가 이벤트의 경우 일정시간 간격으로만 발생시키는 방법이 있습니다. 기본적으로는 모두 사용안함으로 설정되어 있습니다만 필요 시 Quote(Price)EventFiltered, Quote(Price)EventInterval등을 사용하여 일정시간 간격으로 이벤트 발생을 조정하십시요.