랭귀지/python
미체결 날짜형식을 현재시간과 비교해서 1분 경과시 주문취소
유키공
2024. 8. 25. 12:28
import time
from datetime import datetime, timedelta
from PyQt5.QtCore import QThread
class KiwoomAPI(QThread):
def __init__(self):
super().__init__()
self.orders = [] # 미체결 주문을 저장할 리스트
# 현재 날짜를 가져오고 시간만 추가
current_date = datetime.now().strftime("%Y%m%d")
self.orders.append({'id': '0082240', 'date': f'{current_date} 090844', 'type': '+매수'}) # 예제 주문 추가
def run(self):
self.get_unexecuted_orders() # 미체결 주문 조회
self.check_and_cancel_buy_orders() # 매수 주문 취소 체크
def get_unexecuted_orders(self):
# 여기에 미체결 주문을 조회하는 코드 추가
# self.orders에 미체결 주문을 추가 (현재는 예제 주문이 추가되어 있음)
pass
def check_and_cancel_buy_orders(self):
current_time = datetime.now()
for order in self.orders:
order_time = datetime.strptime(order['date'], "%Y%m%d %H%M%S")
# 매수 주문인지 확인
if order['type'] == '+매수' and current_time - order_time > timedelta(minutes=1):
self.cancel_order(order['id'])
def cancel_order(self, order_id):
# 주문 취소를 위한 API 호출
print(f"매수 주문 {order_id}를 취소합니다.")
# 여기에 주문 취소 API 호출 코드 추가
# 예제 실행
kiwoom_api = KiwoomAPI()
kiwoom_api.start()