반응형
🔍 개요이 문서에서는 엑셀 VBA + 키움증권 영웅문4 DDE 연동을 활용하여 **1분/5분/10분봉 데이터를 기반으로 조건 매매 시그널(돌파, 이탈, 거래량 급등 등)**을 자동 감지하는 시스템을 만드는 방법을 설명합니다. 이 시스템은 실시간 시장 데이터를 기반으로 동작하며, 기계적인 매수/매도 판단 기준을 자동화하는 데 활용됩니다.✅ 사용 기술 및 환경항목내용개발 도구Excel VBA연동 시스템키움증권 영웅문4 DDE대상 종목선물옵션, 주식 등 DDE 제공 종목시그널 방식봉 차트 기반 조건식 감지 (OHLC 분석)분석 주기1분봉, 5분봉, 10분봉주요 조건종가 돌파, 고가 이탈, 저가 이탈, 급등락, 거래량 급증 등📈 대표 조건 매매 시그널 정의시그널 종류설명📌 고가 돌파현재가 > 이전봉 고가?..
🔍 문제가 된 VBA 코드vbaIf TimeValue(ws.Cells(rr, 1).Value) ❗ 주요 에러 발생 원인 3가지 ① ws.Cells(rr, 1).Value 값이 빈 셀이거나 잘못된 시간 형식일 경우TimeValue() 함수는 유효한 시간 문자열이 들어와야 동작합니다.예: "08:34:05"는 OK, "" 또는 "종가"는 에러 발생🔧 해결 방법: IsDate()로 값 검사 추가vbaIf IsDate(ws.Cells(rr, 1).Value) Then If TimeValue(ws.Cells(rr, 1).Value) ② Minute(Now) - functionType 결과가 음수가 되는 경우예: Now = 09:02, functionType = 5 → Minute(Now) - 5 = -3..
✅ 1. 조건: 장 종료 여부 판단 로직장 운영 시간 기준으로 일반적으로 아래와 같이 설정합니다:구분시간장 시작오전 9:00장 종료오후 3:45 (15:45)💡 장 종료 판단은 Now > TimeValue("15:45:00") 형태로 처리✅ 2. 수정 코드 – 기록반복 함수기존 기록반복 함수에 아래와 같은 조건을 맨 앞에 추가합니다:vbaIf TimeValue(Now) > TimeValue("15:45:00") Then isRunning = False MsgBox "장이 종료되었습니다. 수집을 자동 중지합니다.", vbExclamation Exit SubEnd If✅ 🔧 최종 기록반복 함수 구조 예시:vbaSub 기록반복() If Not isRunning Then Exit Sub..
🎯 목표:실시간 수집된 시세 데이터를 기반으로 1분봉, 5분봉, 10분봉 캔들차트용 OHLC 데이터를 만들고, 각 row 마지막 열에 해당 봉 데이터를 자동으로 계산하여 붙이는 것입니다.🧱 구성 요약항목내용입력 데이터Sheet1에 1초 단위로 누적된 실시간 시세 (일자, 시간, 현재가, 거래량 포함)봉 종류1분봉, 5분봉, 10분봉봉 구성시가(Open), 고가(High), 저가(Low), 종가(Close), 거래량처리 방식새로운 row가 추가될 때마다 현재 시간 기준으로 직전 N초 동안의 데이터 집계출력 위치각 row의 오른쪽 열에 "1분봉", "5분봉", "10분봉" 종가 기준 기입🔧 VBA 코드 (2단계: 봉 생성 자동 삽입)기존 기록저장() 함수에 아래 내용을 추가합니다.vba ' ---..