반응형
✅ 5단계 개요: 백테스트가 왜 중요한가요?실시간 매매 전에 반드시 백테스트를 해야 하는 이유:과거 시장에서 전략이 수익이 났는지 확인전략이 폭락장에서 살아남는지 검증실제 자동매매 시 수익률, 손절, 최대 낙폭(MDD) 등 예측 가능🔁 STEP 1. 과거 데이터 요청하기 (차트데이터 TR: opt10081)pythonkiwoom.SetInputValue("종목코드", "005930")kiwoom.SetInputValue("기준일자", "20240401") # yyyyMMddkiwoom.SetInputValue("수정주가구분", "1")kiwoom.CommRqData("일봉차트", "opt10081", 0, "1001")항목설명opt10081일봉차트 요청기준일자오늘 이전 날짜 기준으로 조회수정주가구분1..
✅ 4단계 개요: 실시간 시세 수신 & 자동매매 연결이전 단계까지는 종목을 필터링했다면,이제는 "실시간 주가 흐름"에 따라 자동으로 매수/매도를 실행합니다.🔁 STEP 1. 실시간 시세 등록 (SetRealReg)🔹 기본 구조pythonkiwoom.SetRealReg("1000", "005930", "10;11;12", "0")인자설명"1000"화면번호 (임의 문자열)"005930"종목코드"10;11;12"실시간 필드 코드 (10:현재가, 11:전일대비, 12:등락률)"0"기존 실시간 등록 해제 여부 (0:추가, 1:갱신)📡 STEP 2. 실시간 시세 수신 이벤트 구현 (OnReceiveRealData)pythondef OnReceiveRealData(self, code, real_type, rea..
✅ 3단계 개요: 조건 검색이란?조건 검색 = 키움증권에서 직접 만든 자동 종목 필터링 기능예) 아래와 같은 조건을 만들어 둘 수 있습니다:일목균형표(9,26,52) 1붕이내 기준선 선행스팬 1 상향주가벙위:0일전 종가가 10000 이상 1000000이하[일]거래량:200000이상 999999999이하 🛠️ STEP 1. 조건식 리스트 불러오기🔹 전체 조건식 불러오기 (OnReceiveConditionVer)pythonclass KiwoomEventHandler: def OnReceiveConditionVer(self, ret, msg): print("✅ 조건식 목록 불러오기 완료") condition_list = kiwoom.GetConditionNameList() ..
✅ 2단계 개요: 왜 이벤트 처리가 중요한가요?키움 OpenAPI는 이벤트 기반 구조를 가지고 있어데이터 요청 후, 결과를 비동기로 전달합니다.즉, 아래 구조로 동작합니다:Python → OpenAPI에 데이터 요청 (CommRqData)OpenAPI → 이벤트 핸들러를 통해 응답 전달 (OnReceiveTrData, OnReceiveRealData)🛠️ STEP 1. 이벤트 핸들러 클래스 만들기🔹 QAxWidget 객체와 이벤트 연결Python에서는 win32com.client.WithEvents를 사용하여OpenAPI의 이벤트를 처리할 수 있습니다.pythonimport pythoncomimport win32com.clientclass KiwoomEventHandler: def OnRecei..
✅ 1단계 개요: 왜 영웅문4 OpenAPI + Python 인가요?키움증권 영웅문4 OpenAPI는대한민국 개인 투자자들이 가장 많이 사용하는 자동매매 플랫폼입니다.이를 Python과 연동하면 아래와 같은 자동화가 가능합니다:실시간 주가 조회조건 검색 자동매매시세 수집 & 백테스트주식 자동매수/매도디스코드/노션/카카오 알림✅ 지금부터 단계별로 따라하면 누구나 Python으로 자동매매 시스템을 만들 수 있어요!🛠️ STEP 1. 키움증권 계좌와 API 설치 준비🔹 준비물준비 항목설명✅ 키움증권 계좌키움증권 바로가기✅ 영웅문4 설치키움 홈페이지 → 다운로드 바로가기✅ OpenAPI 설치Kiwoom OpenAPI+를 설치해야 함 (HTS 연동용 DLL 포함) 다운로드 바로가기✅ Windows 운영체제W..
✅ 전제 조건📁 CSV 경로: /BackData/101Q3000_20250401_1min.csv📈 전략: 볼린저밴드 하단 이탈 → 매수 / 상단 터치 → 매도💰 수익률 계산: (매도가격 - 매수가격) / 매수가격 * 100 (%)🎯 목표: 수익률 로그 기록 + 최종 통계 출력✅ 1. CSV 분봉 데이터 불러오기vb.netFunction LoadPriceData(filePath As String) As List(Of Double) Dim prices As New List(Of Double) For Each line In File.ReadLines(filePath).Skip(1) ' skip header Dim parts = line.Split(","c) If pa..