1. 국내주식/1-2. 키움 OpenAPI (사용)

(주식 자동 매매) 키움증권 OpenAPI - 미체결 주문을 SendOrder 함수로 취소하기 (1) 취소 방법

봄이오네 2022. 10. 6. 08:25
반응형

1. 들어가며

지난 글에서는 SendOrder 함수를 이용하여 매수/매도 주문을 설명하였다.
키움증권 OpenAPI에서 매수/매도/매수취소/매도취소는
SendOrder 함수로 모두 해결이 된다.

이번 글에서는 지난 글에서 설명하지 못했던
미체결 매도주문에 대해 취소하는 방법에 대해 알아보겠다.


2. 사전준비

  • KOA StudioSA에 대한 내용은 아래 링크한 곳을 참고하면 되겠다
  • 이미 매수한 주식에 대한 장 시간이 짧은 관계로 매도주문은 직접 입력하였다.

https://springcoming.tistory.com/31?category=1048804

 

(주식 자동 매매) 키움증권 OpenAPI - SendOrder함수를 이용하여 매수/매도하기

1. 들어가며 이번 시간에는 키움증권 OpenAPI를 활용하여, 주식의 매수/매도하는 방법을 알아보고자 한다. "매수는 기술이지만, 매도는 예술이다" 라는 주식 명언이 있듯이 주식 자동매매로 수익을

springcoming.tistory.com


3. SendOrder 함수 설명

키움 OpenAPI 개발가이드에서 확인하였듯이
SendOrder 함수는 9개의 변수를 받고 있다.

  • rqname : 문자형이며, 사용자 구분명이다. (사용자가 임의로 정해도 됨)
  • screenno : 문자형이며, 화면번호 (사용자가 임의로 정해도 됨)
  • accno  : 문자형이며, 계좌번호 (모의계좌 10자리 입력)
  • ordertype: 인수형이며, 주문유형에 해당 (1매수, 2매도, 3매수취소, 4매도취소 등)
  • scode : 문자형이며, 종목코드
  • qty : 인수형이며, 주문수량
  • price  : 인수형이며, 주문단가
  • hogagb : 문자형이며, 거래구분 (00 지정가, 03 시장가)
  • orgorderno: 문자형이며, 원주문 번호

→ 매수취소/매도취소를 하려면 위의 3가지 중
3가지만 제대로 입력하면 된다.
* 3가지 : ordertype(주문유형), scode(종목코드), orgorderno(원주문 번호)

< 그림1. SendOrder 함수는 9개 인수를 받는다 >


4. 코드 설명

앞에서 이야기하였지만, 매수/매도/매수취소/매도취소는별도 함수 실행되는 것이 아니라, SendOrder 함수 1개의4번째 변수인 ordertype(주문유형)에 따라, 달라진다.<그림2> 27줄에서 별도 함수 제작은, 용이한 설명을 위해 만든 것입니다)

< 그림2. "이미 제출한 매도주문"에 대해 36줄에서 "매도취소주문"을 실행 >


17줄~18줄 : 모의계좌 번호 10자리를 입력한다.
(전역변수 선언 사유 : 36줄에서 활용하기 위함)
27줄~30줄 : SendOrder 함수는 매수/매도 구분은 없다.
여기서는 SendOrder_sell 함수를 임의로 만들어서
매도취소하는 내용을 설명하고자 한다.
36줄 : 입력한 9개 변수를 27줄의 함수에 넣어서, 취소하라는 명령어이다.

① 실시간계좌관리의 "미체결" 탭
삼성전자 2주 매도(주문번호 112773)이 접수되어 있다.

< 그림3-1. 삼성전자 2주 매도주문이 접수된 내용 >


주문체결내역에도, 미체결 내역이 접수(주문완료)되어 있다.
* 원주문번호 : 112773

< 그림3-2. 삼성전자 매도주문이 접수된 내용 >


③ 매도주문 취소에 따라, 삼성전자 2주 매도 주문(원주문번호 112773)이 취소되었다.

< 그림3-3. 원주문(112773)이 취소된 화면 >


※ 로그인 함수 관련하여서는 설명 생략한다.
참고 : https://springcoming.tistory.com/17?category=1048804

 

(주식 자동 매매) 키움증권 OpenAPI 로그인

1. 들어가며 키움증권에서 제공하는 OpenAPI를 통해 키움서버에 접근하기 위해서는, 파이썬을 통해 OpenAPI에 접속하여 로그인할 수 있어야 한다. 당초 로그인 후 예수금 받기까지 진행하려고 했으

springcoming.tistory.com


5. 마치며

이번 시간에는 매도주문의 취소에 대해 알아보았다.
2~3시간은 막혀서, 이렇게 저렇게 계속 바꾸어 본거 같다.
9개 변수를 어떤 방법으로 넣어야 되는지 잘 몰라서,
상당한 시간을 소모한 느낌이 들었다.

변수를 잘 설정하고, 실시간 계좌관리(화면번호 0341)에서
원주문이 사라졌을 때, 정말 기분이 좋았다.
다행히 장 거래시간에 취소되어서 다행이다.

2~3시간 시행착오를 겪은 부분이 있다.
위에서도 이야기했지만,
SendOrder 함수의 9개 변수를 어떻게 넣어야 하는지,
그 테스트 결과는 다음 글에서 설명하겠다.

반응형