시스템 트레이딩을 개발하다보면 거래소 API가 없으면 자동매매할 수가 없습니다.

 

하지만 사용자가 사용하는 패턴을 기록하였다가 자동으로 마우스/키보드 입력을 할 수 있다면 어떤 HTS에서도 자동 주문이 가능합니다. 

 

파이썬을 이용하여 자동으로 마우스/키보드 입력을 할 수 간단한 방법을 알아보겠습니다.

 

파이썬에서 이런 기능을 제공하는 패키지로는 pyautogui이 있습니다. 관련 문서는 아래 공식 사이트에서 확인이 가능합니다.

 

https://pyautogui.readthedocs.io/en/latest/

 

Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation

Welcome to PyAutoGUI’s documentation! PyAutoGUI lets your Python scripts control the mouse and keyboard to automate interactions with other applications. The API is designed to be simple. PyAutoGUI works on Windows, macOS, and Linux, and runs on Python 2

pyautogui.readthedocs.io

 

첫 번째로 pyautogui 패키지를 설치합니다.

 

pip install pyautogui

 

다음으로는 원하는 버튼과 입력창의 마우스 좌표 값을 읽어야합니다.

사용하고자 하는 HTS가 full screen이면 동작 프로그램을 볼 수 없으므로, 멀티 모니터를 사용하거나, HTS 화면 크기를 조금 줄여서 사용하기를 권합니다. 

 

아래 github주소에서 마우스 위치를 구하는 프로그램을 실행시켜서 원하는 좌표를 기록합니다.

 

https://github.com/multizone-quant/steemmonsters/blob/main/AutoGUI%20-%20GET%20-%20MOUSE%20-%20POSITION.py

이 상태에서 지정된 가격으로 자동으로 주문하는 방법을 알아보겠습니다.

 

구해야할 좌표는 아래와 같습니다.

 

1. 매수 가격 창의 좌표 : 현재가 이미 표시된 경우가 있으므로 숫자가 있는 곳의 좌표 확인

2. 수량 창의 좌표

3. 매수 버튼 좌표

4. 매수 확인 버튼 좌표

5. 매수 완료 버튼 좌표

 

다음으로는 아래 프로그램을 down받아서 방금 구한 좌표값과 매수가격/수량을 입력합니다.

 

https://github.com/multizone-quant/steemmonsters/blob/main/upbit-auto-buy.py

 

GitHub - multizone-quant/steemmonsters

Contribute to multizone-quant/steemmonsters development by creating an account on GitHub.

github.com

 

소스 파일에서 아래 변수 값을 본인의 화면에서 찾은 좌표값으로 변경합니다.

 

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 크기를 조절하는 상태를 잘 기억해야 다음 실행시에도 정상적으로 동작합니다.

 

현재 상태에서 매수/매도 선택하는 부분만 추가한다면 원하는 가격과 수량에 자동으로 매수/매도할 수 있습니다.

 

 

 

 

반응형

설정

트랙백

댓글