주식투자 프로그래밍(시스템 트레이딩) 3.4 #. 사이보스플러스 이벤트 처리기

By | 2018-01-14

#. 사이보스플러스 이벤트 처리기

증권거래 과정에서 투자자가 주문을 넣으면 호가창에 잔량이 변동되고 거래가 발생하면 동시에 체결 내용이 나타난다. 또한 뉴스가 발생하면 곧 바로 관련 창에 표시되는데 이와 같이 투자 과정에서 실시간으로 변동되는 데이터가 발생하면 증권서버는 사용자 HTS로 이벤트를 전송하고 이벤트를 수신한 HTS는 사용자에게 알려준다. 사이보스플러스는 이벤트를 처리하기 위해서 CpDibEvent 클래스를 제공하는데 응용프로그램에서는 이벤트 관리자인 CpDibEvent 파일을 프로젝트에 포함시켜야 하고 동시에 헤더파일과 소스파일에 이벤트 관리용 코드를 삽입시켜야 한다.

범주

구분

내용

파일

CpDibEvent.cpp, CpDibEvent.h

사이보스플러스에서 제공하는 파일

소스코드

헤더파일

Include

CpDibEvent.h

변수선언

IdibPtr m_ XXXX, CCpDibEvent* m_pEvent_YYYY;

함수선언

LONG OnReceived(WPARAM wParam, LPARAM lParam);

소스파일

메시지맵

ON_MESSAGE(WM_CPDIB_RECEIVED, OnReceived)

이벤트생성

m_ XXXX.CreateInstance(__uuidof(XXXX));

이벤트요청

m_ XXXX->SetInputValue(0, p_jongmok_code);

m_ XXXX->Subscribe();

이벤트중단

m_ XXXX->SetInputValue(0, p_jongmok_code);

m_XXXX->Unsubscribe();

이벤트수신

OnReceived(WPARAM wParam, LPARAM lParam)

이벤트해제

m_pEvent_YYYY ->Destroy()

3 사이보스플러스 이벤트 처리기 추가

사이보스플러스 사이트에 가면 도움말 파일과 예제 소스파일을 제공하는데 반드시 이것을 다운로드해야만 이벤트 관련 소스파일을 얻을 수 있다. 도움말과 소스코드를 참고하면 각종 이벤트를 수신하는 방법이 나와 있지만 보충 설명이 충분하지 않아서 꼼꼼하게 확인하면서 이식시켜보는 것이 좋다. 필자는 각종 이벤트마다 독립된 MFC 윈도 클래스에 이식시킨 후에 윈도 클래스를 멀티로 호출하는 방법을 사용하기 때문에 boolhts는 하나의 프레임에서 호가, 체결, 뉴스, 주문 이벤트를 동시에 다중으로 처리하기 위해서 이벤트 코드를 분리적으로 접수하는 방식을 사용한다.

<소스코드> 이벤트 처리 코드 선언과 삽입
// — 헤더파일에서 이벤트 처리 선언 —
#include “CpDibEvent.h”
class ~~::~~ {
// cybos 이벤트 처리기 변수 선언
IDibPtr p_JpBid;
CCpDibEvent* m_pEvent_StockJpBid;
DECLARE_MESSAGE_MAP()
protected: // cybos 이벤트 처리기 수신 함수 선언
afx_msg LONG OnReceived(WPARAM wParam, LPARAM lParam);
}
// — cybos 이벤트 처리기 생성 (create 영역에 삽입) —
DWORD dwCookie;
CRuntimeClass* prcCpDibEvent = NULL;
IConnectionPointContainerPtr pCPC;
IConnectionPointPtr pCP;
p_JpBid.CreateInstance(__uuidof(StockJpbid));
prcCpDibEvent = RUNTIME_CLASS(CCpDibEvent);
m_pEvent_StockJpBid = (CCpDibEvent *)prcCpDibEvent->CreateObject();
m_pEvent_StockJpBid->SetOwner(this->GetSafeHwnd());
pCPC = p_JpBid;
pCPC->FindConnectionPoint(__uuidof(_IDibEvents), &pCP);
IUnknownPtr pUnk = m_pEvent_StockJpBid->GetIDispatch(TRUE);
pCP->Advise(pUnk, &dwCookie);
m_pEvent_StockJpBid->SetCookie(dwCookie);
// — 새로운 종목 이벤트 요청 —
m_JpBid->SetInputValue(0, p_jongmok_code);
m_JpBid->Subscribe();
// — 기존 종목 이벤트 해제 —
m_JpBid->SetInputValue(0, p_jongmok_code);//종목코드를 생략하면 전체 종목을 해제
m_JpBid->Unsubscribe();
// cybos 이벤트 수신 처리 함수
LONG ~~::OnReceived(WPARAM wParam, LPARAM lParam) {
strJongMokCode = (LPCTSTR)(_bstr_t)p_JpBid->GetHeaderValue(0);
time = (long)p_JpBid->GetHeaderValue(1); // 시각(시:분)
……
}
// — cybos 이벤트 처리기 종료 —
IConnectionPointContainerPtr pCPC;
IConnectionPointPtr pCP;
pCPC = p_JpBid;
pCPC->FindConnectionPoint(__uuidof(_IDibEvents), &pCP);
pCP->Unadvise(m_pEvent_StockJpBid->GetCookie());
m_pEvent_StockJpBid->Destroy();

 

 


주식투자 프로그래밍(시스템 트레이딩)

이 글은 필자가 2005 ~ 2007년 개발했던 내용을 2009.10 ~ 2010.1 (월간) [마이크로소프트웨어]에 투고했던 내용을 정리해서 올린 것입니다.

  • 당시 가격제한폭(상한가/하한가)는 15% 적용(새로 고쳐야 함)

  • 소스코드 모두 제공

  • 실제 매매 가능

차례


1. 주식투자 프로그래밍(시스템 트레이딩)

1.1주식투자 프로그래밍(시스템 트레이딩) 

1.2 #. HTS와 시스템트레이딩

1.3 #. HTS 종속 시스템트레이딩

1.4 #. 범용 프로그램 언어 시스템트레이딩

1.5 #. 대신증권 [CYBOS PLUS]

1.6 #. 종목 리스트 다운로드

1.7 #. 현재 가격 시세 구하기


2. 주식투자 프로그래밍(시스템 트레이딩)

2.1 주식투자 프로그래밍(시스템 트레이딩)

2.2 #. 주식투자기법

2.3 #. 급등주와 테마주

2.4 #. 눌림목 투자 기법

2.5 #. 기술을 넘어서 심리분석

2.6 #. 캔들 프로그래밍

2.7 #. 세력주 검색 프로그래밍

2.8 다음에는 …


3. 주식투자 프로그래밍(시스템 트레이딩)

3.1 #. 초소형 미니 HTS와 모의투자

3.2 #. 모의투자 시스템

3.3 #. Boolhts 구조와 설계

3.4 #. 사이보스플러스 이벤트 처리기

3.5 #. 종목 선택창 만들기

3.6 #. 호가창 만들기

3.7 #. 체결창 만들기

3.8 #. 계정 로그인

3.9 #. 예수금 조회

3.10 #. 주문과 조회 처리

3.11 #. 매수와 매도 주문

3.12 #. 체결/미체결 잔고조회

3.13 #. 정정과 취소 주문

3.14 #. 주문 이벤트 핸들러

3.15 #. 통합 주문처리기


4. 주식투자 프로그래밍(시스템 트레이딩)

4.1 #. 금융공학과 상한가 따라잡기

4.2 #. 수학적 금융공학

4.3 #. 전산 금융공학 – 알람펀드

4.4 #. 전산 금융공학 – 스피드 트레이딩

4.5 #. 차익 시스템트레이딩

4.6 #. 확률 시스템트레이딩

4.7 #. 개별 종목 확률 시스템트레이딩

4.8 #. 상한가 따라잡기

4.9 #. 상한가 전화기

4.10 #. 특수 상한가 전화기

4.11 #. 멀티 상한가 전화기

4.12 다음에는 …


5. 주식투자 프로그래밍(시스템 트레이딩)

5.1 #. 주식 투자 트위터

5.2 #. 트위티언(Twittian) or 원시인

5.3 #. Open API 혁명, 트위터 (Twitter)

5.4 #. 한글트위터 twtkr.com

5.5 #. 주식 뉴스 발송 트위터

5.6 #. 주가 정보 발송 트위터

5.7 #. 주가 차트 등록 트위터

5.8 #. 트위터 이미지를 본문에 포함시기키

5.9 #. 대한민국 증권사에 바란다.

5.10 #. 모바일 혁명의 배후, KT에 바란다.

5.11 #. 연재를 마감하면서……


boolhts 소스코드(source code) 1 부 다운로드

boolhts 소스코드(source code) 2 부 다운로드

boolhts 소스코드(source code) 3 부 다운로드

boolhts 소스코드(source code) 4 부 다운로드

[boolhts 소스코드(source code) 5 부] 따로 없음

boolhts 통합 소스코드(source code) 다운로드(준비 중)


 

 

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Time limit is exhausted. Please reload CAPTCHA.