반응형
✅ 시스템 구성 요소별 상세 설명① 실시간 체결가 수신 → 1분봉 저장영웅문4 OpenAPI의 실시간 이벤트 OnReceiveRealData를 통해 실시간 체결가를 수신합니다.이를 기반으로 1분 간격으로 캔들 데이터를 누적하여 분봉(1분봉) 데이터를 생성합니다.vb.netPrivate Sub axKH_OnReceiveRealData(...) Handles axKH.OnReceiveRealData Dim price = axKH.GetCommRealData(e.sRealKey, 10) currentPrices.Add(price)End Sub' 타이머(1분 간격)에서 저장Sub OnOneMinuteTick() Dim avg = currentPrices.Average() SaveMinute..
✅ 백데이터(BackData)란?백데이터란 과거의 시장 데이터, 즉 주가/체결/호가/잔량/미결제약정 등의 정보를 저장한 데이터로서,선물옵션 자동매매 시스템에서 전략을 개발하거나 검증할 때 반드시 필요한 데이터입니다.📌 백데이터 예시 (일별 저장)날짜종목코드시가고가저가종가거래량2025-04-05101Q3000297.50300.20295.80298.90152,300 계약 🧠 왜 백데이터가 중요한가?1. 전략 검증 (백테스트)의 핵심 재료자동매매 프로그램은 단순히 코드를 짜는 것만으로는 수익을 낼 수 없습니다.“이 전략이 과거에 잘 작동했는가?”를 검증하는 것이 가장 중요합니다.🔎 VB.NET으로 만든 트레이딩 시스템이영웅문4 OpenAPI를 통해 수집한 백데이터를 기반으로 과거 조건 충족 시 수익률을 ..
✅ STEP 5-1: 구글 시트에 거래 내역 저장하기📌 ① Google API 키 준비 (Google Cloud 콘솔)https://console.cloud.google.com 접속"Sheets API" 활성화OAuth 또는 서비스 계정 발급 → credentials.json 다운로드📌 ② VB.NET에서 Google Sheets 연동 (C# 변환 가능)VB.NET 직접 연동이 어렵다면 Python이나 Google Apps Script로 백엔드 서버를 둬도 됩니다.예시 구조 (Python 서버 → VB.NET WebRequest 전송):vb.netDim req = WebRequest.Create("http://localhost:5000/save_trade")req.Method = "POST"Dim p..
✅ STEP 4-1: 조건식 기반 실시간 자동매매📌 조건식 목록 불러오기 vb.netaxKH.GetConditionLoad()vb.netPrivate Sub axKH_OnReceiveConditionVer(...) Handles axKH.OnReceiveConditionVer Dim count = axKH.GetConditionCount() For i = 0 To count - 1 Dim name = axKH.GetConditionName(i).Split("^"c)(0) Dim index = axKH.GetConditionName(i).Split("^"c)(1) lstConditions.Items.Add($"{name} [{index}]") Next..
✅ STEP 3-1: 실시간 체결 데이터 수신하기📌 실시간 종목 등록vb.netaxKH.SetRealReg("1001", "005930", "10;20;21", "0")"10" = 현재가, "20" = 체결량, "21" = 체결강도📌 실시간 이벤트 수신 처리vb.netPrivate Sub axKH_OnReceiveRealData(sender As Object, e As _DKHOpenAPIEvents_OnReceiveRealDataEvent) Handles axKH.OnReceiveRealData If e.sRealType = "주식체결" Then Dim price = axKH.GetCommRealData(e.sRealKey, 10) ' 현재가 Dim volume = a..
✅ STEP 2-1: 로그인 상태 확인vb.netPrivate Sub axKH_OnEventConnect(ByVal nErrCode As Integer) Handles axKH.OnEventConnect If nErrCode = 0 Then MessageBox.Show("로그인 성공!") Else MessageBox.Show("로그인 실패...") End IfEnd Sub✅ STEP 2-2: 주식 현재가 조회하기vb.netaxKH.SetInputValue("종목코드", "005930") ' 삼성전자axKH.CommRqData("현재가요청", "opt10001", 0, "1000") 콜백 함수로 결과 받기:vb.netPrivate Sub axKH_OnReceiveT..