Category Archives: source code

주식투자 프로그래밍(시스템 트레이딩) 3.14 #. 주문 이벤트 핸들러

By | 2018-01-14

#. 주문 이벤트 핸들러 증권거래 시스템에서 내부적으로 주문 명령 처리 과정은 컴퓨터의 서버-클라이언트 모델과 똑같은 원리로 동작한다. 그래서 사용자가 HTS를 통하여 주문을 클릭해서 서버에 주문을 넣으면 서버에서는 주문을 접수했다는 응답을 보내고 이어서 주문이 체결되면 증권서버는 체결 신호를 사용자 HTS에 보내준다. 실제로 일반 HTS에서 주문처리 과정을 음성 파일로 알려주는 옵션을 켜두면 2단계 처리 과정을 들을 수… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.13 #. 정정과 취소 주문

By | 2018-01-14

#. 정정과 취소 주문 매수나 매도 주문 이후에 체결되지 않은 물량은 미체결 잔고조회로 확인할 수 있는데 이러한 미체결 물량의 주문을 변경시키려면 CpTd0313 함수로 정정 주문을 사용하고 CpTd0313 함수로 취소시킨다. 정정 함수와 취소 함수가 사용하는 변수가 거의 같아서 boolhts에서는 하나의 함수로 통합시켰으며 미체결 전체 물량을 정정(취소)할 경우에는 전체 수량을 입력하거나 ‘0’을 입력하면 된다. 또한 미체결 전체… Read More »

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

By | 2018-01-14

#. 체결/미체결 잔고조회 매수/매도 후에 체결된 보유 잔고를 확인하려면 CpTd6033 함수를 이용하고, 미체결 잔고를 확인하려면 CpTd5339 함수를 이용하는데 전달 변수는 도움말에 자세하게 나와 있으므로 자세한 설명은 생략하겠다. 미체결 잔고를 조회하는 CpTd5339 함수에서 종목 이름을 전달받을 때는 영문자에 대한 검사를 수행해야 한다. 주식시장에 상장된 회사 이름 중에서는 일부 회사가 영문자를 사용하는데 그 중에서 어떤 상황에서는 1바이트… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.11 #. 매수와 매도 주문

By | 2018-01-14

#. 매수와 매도 주문 매수와 매도는 CpTd0311 함수 하나로 처리하는데 매수와 매도 상태를 정확히 구분하고, 주문 기호가 지정가(보통)가 아니라 시장가일 경우에는 가격을 지정할 필요가 없다. 한편 수량과 금액을 지정하는 사이에 사용자 클릭 지연 시간을 단축시키고자 미리 주문 수량과 금액을 지정해두었다가 디폴트(지정값) 상태로 무조건 주문하면 빠르게 주문을 넣을 수 있는는 boolhts에 매수 최적화를 위하여 매수와 매도… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.10 #. 주문과 조회 처리

By | 2018-01-14

#. 주문과 조회 처리 주문 명령은 크게 매수, 매도, 정정, 취소 4단계로 구분하고 주문 결과를 확인하기 위해서 체결된 잔고와 미체결된 잔고를 조회하는데 독자의 이해를 돕기 위해서 매매 과정을 순차적으로 적용하면서 설명할 것이다. 먼저 매수 주문 방법을 설명한 뒤에 이어서 매수된 종목을 확인하기 위해서 잔고를 조회한다. 또한 매수와 매도 후에 아직 아직 체결되지 않은 상태인 미체결… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.9 #. 예수금 조회

By | 2018-01-14

#. 예수금 조회 지금은 HTS상에서 실시간으로 거래 내용을 파악할 수 있지만 과거에는 증권 지점에 가서 직접 전표를 작성한 후에 주문 신청을 하였는데 은행 거래를 거쳐야 하기 때문에 실제 주문에 따른 결제 처리는 보통 3일정도 시차를 두고 이루어졌다. 이와 같은 증권거래의 3일 결제 시스템은 지금도 그대로 적용되며 거래 활성화를 통하여 이익을 창출하려는 증권사의 노력으로 매수할 현금이… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.8 #. 계정 로그인

By | 2018-01-14

#. 계정 로그인 HTS에 의존하지 않고 개발자가 직접 주문 프로그램을 만들려면 항상 증권거래용 계정을 알고 있어야 하는데 여기서 말하는 계정은 사이보스플러스에 로그인하는 ID값이 아니라 증권거래용 통장 번호를 가리킨다. 시스템트레이딩 프로그램은 항상 계정을 기억하고 있어야 하는데 소스코드에 통장 번호를 변수로 선언해서 기억해두는 방법도 있지만 비효율적이라서 권장할 만한 방법이 아니다. 예를 들어 통장이 2개 이상인 경우에는 각각의… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.7 #. 체결창 만들기

By | 2018-01-14

#. 체결창 만들기 투자자들이 매매 주문을 넣었을 때 체결되면 그 결과를 체결창에 보여주는데 체결창은 데이트레이딩과 같은 초단기매매에서는 매우 중요한 데이터이다. 체결되는 데이터의 양은 세력의 크기를 의미하고 체결 속도는 세력의 흐름을 나타내는 것으로 해석하는데 특정 종목에서 체결 흐름이 빨라지고 체결되는 거래량이 평균 이상으로 증가한다면 세력적 움직임으로 볼 수 있기 때문이다. 특히 주식투자 프로그램인 시스템트레이딩은 사람이 처리하고… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.6 #. 호가창 만들기

By | 2018-01-14

#. 호가창 만들기 투자자들이 주문을 넣었을 때 가격이 맞으면 체결되고 그렇지 않은 나머지 물량은 호가창에 보여주는데 호가창은 호가 변동 때마다 상태를 이벤트 형식으로 받아서 보여주는 창이다. 호가창을 구현하려면 이벤트를 받아야 하기 때문에 boolhts의 stocgate 클래스에서 중간 게이트 함수를 만들지 않고 사이보스플러스 함수를 직접 호출한다. 사이보스플러스에서는 이벤트를 처리하기 위해서 CpDibEvent 클래스를 제공하므로 응용프로그램에서는 반드시 이벤트 관리자인… Read More »

주식투자 프로그래밍(시스템 트레이딩) 3.5 #. 종목 선택창 만들기

By | 2018-01-14

#. 종목 선택창 만들기 종목선책창을 만들려면 1회 연재에서 소개한 종목 리스트 다운로드를 구현하기 위해서 사용했던 사이보스플러스 CpStockCode 함수를 이용해서 증권사로부터 데이터를 수신한 후에 종목 선택창에 출력시키는 것이다. 이것은 구현 과정이 단순하므로 자세한 설명은 생략하고 빠른 검색을 위해서 글자키 기능을 추가시켰는데 빠른 검색을 위한 글자키는 종목 선택창이 로딩될 때 전체 종목을 스캐닝하면서 검색을 위한 첫글자가 같은지를… Read More »