글
자동 마우스/키보드 입력을 이용한 자동 주문하기
시스템 트레이딩을 개발하다보면 거래소 API가 없으면 자동매매할 수가 없습니다.
하지만 사용자가 사용하는 패턴을 기록하였다가 자동으로 마우스/키보드 입력을 할 수 있다면 어떤 HTS에서도 자동 주문이 가능합니다.
파이썬을 이용하여 자동으로 마우스/키보드 입력을 할 수 간단한 방법을 알아보겠습니다.
파이썬에서 이런 기능을 제공하는 패키지로는 pyautogui이 있습니다. 관련 문서는 아래 공식 사이트에서 확인이 가능합니다.
https://pyautogui.readthedocs.io/en/latest/
첫 번째로 pyautogui 패키지를 설치합니다.
pip install pyautogui
다음으로는 원하는 버튼과 입력창의 마우스 좌표 값을 읽어야합니다.
사용하고자 하는 HTS가 full screen이면 동작 프로그램을 볼 수 없으므로, 멀티 모니터를 사용하거나, HTS 화면 크기를 조금 줄여서 사용하기를 권합니다.
아래 github주소에서 마우스 위치를 구하는 프로그램을 실행시켜서 원하는 좌표를 기록합니다.
이 상태에서 지정된 가격으로 자동으로 주문하는 방법을 알아보겠습니다.
구해야할 좌표는 아래와 같습니다.
1. 매수 가격 창의 좌표 : 현재가 이미 표시된 경우가 있으므로 숫자가 있는 곳의 좌표 확인
2. 수량 창의 좌표
3. 매수 버튼 좌표
4. 매수 확인 버튼 좌표
5. 매수 완료 버튼 좌표
다음으로는 아래 프로그램을 down받아서 방금 구한 좌표값과 매수가격/수량을 입력합니다.
https://github.com/multizone-quant/steemmonsters/blob/main/upbit-auto-buy.py
소스 파일에서 아래 변수 값을 본인의 화면에서 찾은 좌표값으로 변경합니다.
price = [993, 584] # 가격 입력 창
qty = [1085, 640] # 수량 입력 창
order = [939, 906] # 주문 버튼
confirm = [719, 634] # 주문 확인 버튼
done = [715, 473] # 닫기 버튼
원하는 가격과 수량도 정의하세요.
order_price = 48000000
order_qty = 0.001
이 상태에서 실행을 하면 프로그램이 알아서 자동으로 매수 주문을 해 줍니다.
실제로 실행을 해보니, HTS 프로그램의 위치를 잘 기억하고 있어야 하더군요. full screen 상태에서는 큰 문제가 없지만(멀티 모니터 사용) 그렇지 않은 경우에는 HTS 크기를 조절하는 상태를 잘 기억해야 다음 실행시에도 정상적으로 동작합니다.
현재 상태에서 매수/매도 선택하는 부분만 추가한다면 원하는 가격과 수량에 자동으로 매수/매도할 수 있습니다.
'시스템트레이딩' 카테고리의 다른 글
[시스템트레이딩][전략] 급등하는 암호화폐를 찾아보자 (0) | 2022.06.10 |
---|---|
[시스템트레이딩] 전략 시뮬레이션(10) - 차트에 추세선 그리기와 시뮬레이션 (2) | 2022.04.22 |
[시스템트레이딩] 암호화폐 자동매매 (0) | 2021.04.30 |
[시스템트레이딩] 김프를 먹는 자동매매 (5) | 2021.04.30 |
[시스템트레이딩] API를 이용한 자동매매(4) (13) | 2021.03.28 |