반응형
🔍 개요이 문서에서는 엑셀 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 Exi..
🎯 목표:실시간 수집된 시세 데이터를 기반으로 1분봉, 5분봉, 10분봉 캔들차트용 OHLC 데이터를 만들고, 각 row 마지막 열에 해당 봉 데이터를 자동으로 계산하여 붙이는 것입니다.🧱 구성 요약항목내용입력 데이터Sheet1에 1초 단위로 누적된 실시간 시세 (일자, 시간, 현재가, 거래량 포함)봉 종류1분봉, 5분봉, 10분봉봉 구성시가(Open), 고가(High), 저가(Low), 종가(Close), 거래량처리 방식새로운 row가 추가될 때마다 현재 시간 기준으로 직전 N초 동안의 데이터 집계출력 위치각 row의 오른쪽 열에 "1분봉", "5분봉", "10분봉" 종가 기준 기입🔧 VBA 코드 (2단계: 봉 생성 자동 삽입)기존 기록저장() 함수에 아래 내용을 추가합니다.vba ' ---..
키움증권 DDE 연동은 엑셀을 통해 실시간 주가 데이터를 수집하고, 나만의 자동화된 주식 분석 시스템을 만들 수 있는 핵심 기능입니다. 이 글에서는 DDE란 무엇인지, 그리고 키움증권 데이터를 엑셀로 실시간 연동하는 방법을 단계별로 자세히 알려드릴게요.📌 목차DDE란 무엇인가요?키움증권 DDE 연동 준비물엑셀로 실시간 주가 가져오는 방법DDE 함수 예시 (티커, 현재가, 체결량 등)자주 묻는 질문(FAQ)마무리 및 팁✅ 1. DDE란 무엇인가요?DDE (Dynamic Data Exchange) 는 두 개의 프로그램이 데이터를 실시간으로 주고받을 수 있게 해주는 통신 방식입니다. 키움증권은 영웅문4를 통해 이 DDE 기능을 제공하며, 투자자가 엑셀에서 실시간 주식 가격을 불러올 수 있도록 지원하고 있습니..