주식투자 프로그래밍(시스템 트레이딩) 3.12 #. 체결/미체결 잔고조회

By | 2018-01-14

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

매수/매도 후에 체결된 보유 잔고를 확인하려면 CpTd6033 함수를 이용하고, 미체결 잔고를 확인하려면 CpTd5339 함수를 이용하는데 전달 변수는 도움말에 자세하게 나와 있으므로 자세한 설명은 생략하겠다. 미체결 잔고를 조회하는 CpTd5339 함수에서 종목 이름을 전달받을 때는 영문자에 대한 검사를 수행해야 한다. 주식시장에 상장된 회사 이름 중에서는 일부 회사가 영문자를 사용하는데 그 중에서 어떤 상황에서는 1바이트 영문자가 아니라 2바이트 전자 영문자를 넘겨주고 있어서 영문자 회사를 검색하면 찾지 못하는 경우가 있다. 특히 화면상에서는 똑 같은 영문자로 보이지만 프로그래밍 내부 관점에서는 전혀 다른 코드값이므로 주문처리 과정에서 확인된 종목 이름이 뉴스 전달 과정에서는 다르게 전달되기 때문에 영문자로 된 종목 이름이 발견되면 전부 1바이트 영문자로 통일시켜줘야 한다. 한편 하나의 회사 이름이 상황에 따라서 다르게 전달되는 이유는 명확하지 않다. 사이보스플러스에서 일관성이 부족해서 발생하는 것인지 아니면 증권거래 시스템 전체가 그렇게 동작하기 때문에 어쩔 수 없이 사이보스플러스가 그냥 전달만 하는 것인지를 확인할 수가 없는 상태이다.

<소스코드> 보유 잔고조회
pTrade6033.CreateInstance(__uuidof(CpTd6033));
pTrade6033->SetInputValue(0, p_accnumber); // 계정
pTrade6033->SetInputValue(1, p_acctype); // 상품관리구분
pTrade6033->SetInputValue(2, stocknum); // 최대 50개(디폴트 14개)
do {
pTrade6033->BlockRequest();
p_runhead->count = pTrade6033->GetHeaderValue(1); // 1. (long)잔고수량
p_runhead->eval_res = pTrade6033->GetHeaderValue(4); // 4. (long)평가손익
p_runhead->earn_rate = pTrade6033->GetHeaderValue(8); // 8. (long)수익률
datanum = pTrade6033->GetHeaderValue(7); // 7. (long)수신개수
for(int datacnt = 0; datacnt < datanum; datacnt++) {
strCodeName = (LPCTSTR)(_bstr_t)pTrade6033->GetDataValue(0, datacnt);
strCodeVal = (LPCTSTR)(_bstr_t)pTrade6033->GetDataValue(12, datacnt);
count = pTrade6033->GetDataValue(3, datacnt); // 3. (long)결제 잔고수량
eval_res = pTrade6033->GetDataValue(10, datacnt); // 10. (long)평가손익(원)
earn_rate = pTrade6033->GetDataValue(11, datacnt); // 11. (double)수익률
res_price = pTrade6033->GetDataValue(18, datacnt); // 14. (double)손익단가
}
}
while(pTrade6033->Continue);
pTrade6033.Release();

<소스코드> 미체결 잔고조회
ICpTdDibPtr pT5339;
pT5339.CreateInstance(__uuidof(CpTd5339));
pT5339->SetInputValue(0, p_accnumber); // 계정
pT5339->SetInputValue(1, p_acctype); // 상품관리구분(10-위탁자[주식]
//-3. 종목코드 (입력값 생략가능, 생략시 전체종목이 조회됨)
pT5339->SetInputValue(4, p_ordcode); // 0-전체[디폴트],1-거래소,2-장내채권,3-코스닥,4-장외,5-프리보드
pT5339->SetInputValue(7, request_num); // 요청개수
do {
pT5339->BlockRequest();
datanum = pT5339->GetHeaderValue(5); // 수신개수
for(int datacnt = 0; datacnt < datanum; datacnt++) {
p_yet->value.ordernum = pT5339->GetDataValue(1, datapos); // 1. (long)주문번호
strCodeVal = (LPCTSTR)(_bstr_t)pT5339->GetDataValue(3, datapos);
strCodeName = (LPCTSTR)(_bstr_t)pT5339->GetDataValue(4, datapos);
// 매매 관련 이벤트에서 넘어오는 종목명에 영어로 되어 있으면 2바이트 영문자로 온다.
// 매매 이벤트에서 오는 2바이트 영문자 종목은 1바이트 영문자로 바꾼다.
p_onebyte = trans_onebyte_english(strCodeName.GetBuffer(strCodeName.GetLength() + 1));
p_yet->value.order_count = pT5339->GetDataValue(6, datapos); // 6. (long)주문수량
p_yet->value.order_price = pT5339->GetDataValue(7, datapos); // 7. (long)주문단가
p_yet->value.con_count = pT5339->GetDataValue(8, datapos); // 8. (long)체결수량
p_yet->value.spare_count = pT5339->GetDataValue(11, datapos); // 11. (long) 정정취소잔량
strMsg = (LPCTSTR)(_bstr_t)pT5339->GetDataValue(13, datapos); // 13. 거래구분 (1:매도,2:매수)
}
}
while(pT5339->Continue);
pT5339.Release();

 

 


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

이 글은 필자가 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.