주식 기본 정보 가져오기

----------------------------------------------------------------------------------------------------------------------------------------------------------

 주식 기본 정보 가져오는건 지난주에 다 해뒀는데 이번 주에 개인적으로 생각할 일들이 있어서 포스팅을 못했네요 ㅜㅜ

 그래두 앞으로는 짬을 내서 계속 올려야겠어요!! 우리 함께 화이팅 해용 ㅎㅎㅎ


 오늘은 주식 기본 정보를 가져오는걸 해볼꺼에요. HTS를 할때 해당 주식의 시가총액이라든가, 현재가, 시가, 종가 등등 기본적인 데이터를 가져오는걸 할 수 있다면 이제 어느정도 감을 잡았다는 거겠죠?? 주식 기본 정보를 가져오는 것도 생각보다 어렵지 않아요. 다만, 이벤트 처리 개념을 이해하셔야 합니다! 시작해봅시다~

 주식 기본 정보를 가져오기 위해서는 위와 같이 서버로부터 정보를 받아야 합니다. 그 흐름은 위와 같은데요, 이를 순서에 따라 정리해보면, 

     1. 원하는 걸 상자에 담습니다.

     2. 서버에 해달라고 보냅니다.

     3. 서버는 확인하고 처리해드렸다고 합니다.

     4. 상자를 받아서 풀어봅니다.

 이와 같이 되는데요, 이를 함수로 나타내면, 

     1. SetInputValue : 내가 얻고 싶은 아이템을 넣습니다. ex) 종목코드, 계좌번호 등등...

     2. CommRqData : 아이템의 어떤 정보를 얻고 싶은지를 설정해서 보냅니다.

     3. OnReceiveTrData : 서버가 처리했다는 이벤트를 감지합니다.

     4. GetCommData : 이벤트를 감지한 다음, 원하는 정보를 꺼냅니다.

여기서 3번 이벤트 부분은 기존 함수와는 다른 방법으로 설정하게 되는데요 밑의 과정을 따라해볼까요?

-----------------------------------------------------------<참고 함수>-----------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


 우선, 프로그래밍을 하기 이전에, 전에 보았던 KOA Studio를 켜서 확인해볼께 있어요. <TRcode>, <함수>, <화면목록>, <동작방식>, 인데요. 서버한테 요청할 때 필요한 것들이에요. CommRqData(sRQName, sTrCode, nPrevNext, sScreenNo) 함수 인자에 각각

  sRQName = TrCode 옆에 있는 말

  sTrCode = 어떤 TrCode 인지?

  nPrevNext = 보통 0 으로 설정 (0:조회, 2: 연속)

  sScreenNo = 화면번호 (==> 영웅문의 화면 번호를 이야기함, 위의 그림에서 탭을 변경하여 확인가능.)

이런 식으로 들어갑니다. 각각의 인자들을 어디서 얻을 수 있는지 알아두세요!!


 아, 그리고 인터페이스를 조금 바꿧는데요, 이젠 다 하실수 있죠? 그런데 제가 지난번에 까먹고 말씀 못드렸는데, List_box에서 속성 - Sort 부분을 False로 바꿔주세요. True면 자동으로 오름차순으로 정리해준답니다. 그러면 안되잖아요 ㅎㅎ


 이제 이벤트 처리를 해줄꺼에요. 맨 처음 도형에서 보았을 떄 처럼, 우리가 서버에게 요청을 했을 떄 서버가 요청을 했는지 알 수 있으려면 위와 같이 이벤트처리를 해줘야 합니다. openAPI 부분에서 마우스 우클릭을 하면, 이벤트 처리기 추가... 가 나오는데요, 이걸 누르고 위와 같이 OnReceiveTrData를 선택해주고  추가 및 편집 버튼을 눌러주세요. 그러면, 자동적으로 이벤트 처리에 필요한 코드들을 추가해줍니다. 이는 stock_ver_0.1Dlg.cpp와 헤더 파일에서 볼 수 있어요.


 위의 버튼을 누를 때 서버에게 요청을 하려고 하는데요, 일단 우리는 알려고하는 단계니, 미리 정보를 넣어 놓고 보내는 연습을 해볼꼐요. 인자는 위의 코드와 처음 부분의 함수 설명을 보세용, 저는 삼성전자의 정보를 요청했습니다.


  이 부분은 주식 기본 정보를 요청한 후 이에 대한 이벤트가 발생했을 때 들어가지는 함수 부분입니다. 우리는 이 부분에서 정보를 확인할 거에요. 정보 확인은 우선, 내가 원했던 이벤트가 맞는지? 확인을 한 후, 얻고 싶은 정보에 대한 인덱스를 입력해줍니다. 그러면, 자동으로 파싱되어서 정보가 return 되어 집니다. 그런데, 여기서 받아 지는 정보 앞 뒤로 쓸데없는 공백이 함께 파싱이 되요. 그래서 CString 함수에 넣어서 Trim()을 해서 앞 뒤의 공백을 제거해주는 겁니다. 그 뒤 위처럼 출력하거나, 다른 곳에서 사용하시면 됩니당.


짠! 결과 화면입니다. 깔꼬롬하게 나오는 걸 확인할 수 있어요. 저거 1주만이라두 가지고 싶네요 ㅎㅎ...

여러분 앞으로도 계속 올릴 예정이니 서로 으쌰으쌰해요~ 화이팅!

+ Recent posts