1. 오리엔테이션 및 전체 개요
- 강의 소개 및 목표
- 왜 자동매매 프로그램을 만드는가?
- 이번 강의에서 다루는 내용과 최종 목표
- 키움증권 OpenAPI 개요
- 키움증권 API(OpenAPI) 소개
- C#과 OpenAPI 연동 사례 및 특징
- API를 통한 주식 매매 프로세스 개념 정리
2. 준비 사항 및 환경 설정
- 개발환경 준비 (C# 기준)
- Visual Studio(또는 Visual Studio Code) 설치
- .NET Framework 또는 .NET 5/6 환경(WinForms/WPF) 등 선택
- OpenAPI+ 설치 및 설정
- OpenAPI+ 사용신청
- OpenAPI+ 다운로드 및 설치
- KOA Studio 다운로드
- 상시 모의투자 신청
- KOA Studio를 이용하여 최종 확인
3. C# WinForms로 키움증권 OpenAPI 연결하기
- 프로젝트 생성
- WinForms 프로젝트 생성
- COM 추가
- 참조 설정(도구 -> 도구상자 -> COM 추가 -> KHOpenAPI Control)
- Form(Control)과 이벤트 바인딩
- AxKHOpenAPI 컨트롤 배치
- 주요 이벤트(OnEventConnect, OnReceiveTrData, OnReceiveRealData 등) 연결
- 로그인 및 연결 테스트
- 키움증권 OpenAPI 로그인 시퀀스
- CommConnect, GetConnectState 등의 함수 호출
- 로그인 성공 시 콜백 이벤트 확인
- 예제 프로그램 코드
- 예제 소스코드 제공
4. OpenAPI 함수·이벤트 기초
- 주요 메서드 이해
- CommConnect, CommRqData, SendOrder 등 주요 함수 파라미터
- TR 요청/응답 패턴 분석
- 주요 이벤트 이해
- OnEventConnect: 로그인 완료 이벤트
- OnReceiveTrData: TR 데이터 수신
- OnReceiveRealData: 실시간 데이터 수신
- OnReceiveChejanData: 주문·체결 내역 수신
- 데이터 수신과 파싱
- GetCommData, GetCommRealData 등 데이터 파싱 방법
- 문자열 파싱, 형 변환, 오류 처리 기법
5. 기초 데이터 조회 실습 (C# WinForms 예시)
- TR 코드 이해
- 키움증권의 TR(Transaction Request) 코드 구조와 역할
- 예: OPT10001(주식 기본정보), OPT10081(주식 일봉 차트)
- 종목 정보 조회
- 종목 리스트 불러오기(코스피, 코스닥 등)
- 특정 종목 기본 정보(현재가, 시가총액 등) 조회 실습
- 과거 데이터(시세) 조회
- OPT10081(일봉 데이터) 요청
- 응답 데이터 파싱, List나 DataTable 등에 저장
- 간단한 차트 표시(WinForms Chart Control, ZedGraph 등) 가능
6. 자동매매 로직 기초 설계
- 자동매매 기본 개념 정리
- 매매 전략의 필요성
- 지표 기반 매매 vs. 예측 모델 기반 매매
- 단타, 스윙, 추세 추종 등 전략 유형
- 자동매매 구현 시 고려사항
- 주문 처리(시장가/지정가/조건부 등)
- 타이밍(장 시작/종료, 체결 모니터링)
- 리스크 관리(손절, 익절, 분산투자 등)
7. 주문 및 체결 로직 실습
- 주문 처리 메서드 (SendOrder)
- SendOrder 파라미터(주문유형, 종목코드, 수량, 가격 등)
- 시장가/지정가 주문 샘플 코드 작성 (C# WinForms 버튼 이벤트)
- 주문 후 체결 데이터 수신
- OnReceiveChejanData 이벤트 이해
- 체결 정보 파싱(GetChejanData) 및 실시간 모니터링
- 매수/매도 체결 결과 확인
- 에러 및 예외 처리
- 에러 코드 종류(함수 반환값, 이벤트 메시지 등)
- 주문 제한, API 제한(초당 요청 횟수) 처리 방법
- 재시도 로직 및 예외 상황 대응
8. 실시간 데이터(시세·호가 등) 연동
- 실시간 데이터 수신 구조
- OnReceiveRealData 이벤트 활용
- 실시간 호가/체결/체결강도 등 데이터 파싱
- 실시간 모니터링 로직
- 특정 종목 실시간 감시 등록(SetRealReg) 방법
- 실시간 데이터 수신 시 매매 로직 트리거 예시
- 실시간 데이터 활용 자동매매 예시
- 간단한 조건식(예: 5일 이동평균 상향 돌파 시 매수) 적용
- 실시간 조건 매매 시 구현 포인트
9. 매매 전략 고도화 및 실습
- 주요 기술적 지표 활용
- 이동평균선, RSI, MACD 등의 계산 예시
- 데이터 조회 후 지표 계산 로직 구현(C#에서 List, Dictionary 활용)
- 알고리즘 트레이딩 기초
- 매수/매도 시그널 계산 로직
- 포트폴리오 구성(여러 종목 동시 관리)
- 상태 머신 / 이벤트 드리븐 구조 설계
- 주문/체결/오류/완료 상태를 통한 매매 제어
- 상태 전환 시점 및 이벤트 관리 (예: State Pattern, Event Handling)
10. 백테스팅 및 분석
- 백테스팅 환경 구성
- 과거 데이터 확보(키움 API, 별도 DB 구축 등)
- C#으로 간단한 백테스트 모듈 작성 (콘솔 프로젝트 등)
- 전략 성능 지표
- 승률, MDD(Maximum Drawdown), 샤프지수 등
- 백테스트 결과 분석 및 개선 방향 도출
- 전략 고도화
- 변수 튜닝(파라미터 최적화)
- 조건부 매매 로직 추가
11. 실전 적용 및 모의투자 운영
- 모의투자 환경에서 테스트
- 모의투자 연동 및 자동매매 프로세스 전체 흐름 점검
- 매매 주문 및 체결 이상 유무 확인
- 로그/모니터링 시스템 구축
- 매매 결과와 오류 로그 저장 (DB 혹은 파일)
- 24시간 구동 환경 (장전 준비, 장 마감 후 정리 등)
- 위험 관리 및 예외 상황 대응
- 장 종료 시 자동 종료, 재로그인 처리, API 장애 등 예외 처리
- 네트워크 장애 복구 로직
12. 실전 계좌 운영 시 주의사항
- 실전 계좌 등록 절차
- 실제 계좌 연동 전 유의사항(계정 권한, 타인 명의 계좌 사용 불가 등)
- API 이용료, API 사용시간 제한 여부 확인
- 실제 매매 시 유의사항
- 슬리피지, 체결 지연 등 실거래 리스크
- 주문 오류로 인한 손실 사례 공유
- 장기 운영을 위한 관리 방안
- 정기적 전략 점검 및 리밸런싱
- 소프트웨어 업데이트 및 확장
13. 최종 프로젝트 및 질의응답
- 최종 프로젝트 수행
- 각자 전략 설계 후 자동매매 구현
- 백테스트 및 모의투자 검증 결과 발표
- 문제 해결 및 질의응답
- 학습 과정에서 발생한 이슈, 버그, 개선점 토론
- 향후 공부 방향 및 자료 추천
'자동매매 강의' 카테고리의 다른 글
3강 C# WinForms로 키움증권 OpenAPI 연결하기 (0) | 2025.03.10 |
---|---|
2강. 키움증권 OpenAPI 주식 자동매매 프로그램 개발을 위한 준비 사항 및 환경 설정 (0) | 2025.03.10 |
1강. 오리엔테이션 및 전체 개요 (1) | 2025.03.10 |
시스템 트레이딩에서 C#을 사용하는 이유: 속도와 안정성 (0) | 2025.03.09 |