-
자동 매매 프로그램 만들기1Tool/ClaudeCode&Cursor&VSCode 2026. 1. 3. 13:14

진행방향
STEP 0. 프로젝트 초기화 (Project Bootstrap) STEP 0.5. 프로젝트 킥오프 STEP 1. 개념·구조 설계 단계 (Concept & Architecture Design) STEP 2. 구조 고정 & 스캐폴딩 STEP 3. 전략을 의사코드로 만들기 STEP 4. 첫 전략 구현 (최소 기능) STEP 5. 백테스트 실행 STEP 6. 리스크 제어 추가 STEP 7. 결과 정리 & 리포트 STEP 8. 페이퍼 트레이딩 STEP 9. 파이프라인 통합 단계 (Pipeline Integration) STEP 10. 실행 단계(Execution) STEP 11. 프로젝트 정리 & 문서화 (Project Hygiene & Documentation) STEP 99. (선택) 실거래- STEP 0. 프로젝트 초기화 (Project Bootstrap)
개발을 시작할 수 있도록 프로젝트를 생성하고 기본 환경을 준비하는 단계- STEP 0.5. 프로젝트 킥오프
목표·범위·규칙을 팀(또는 나 자신)에게 명확히 공유하고 개발을 시작하는 단계- STEP 1. 개념·구조 설계 단계 (Concept & Architecture Design)
코드를 쓰기 전에 프로젝트의 목적, 구성 요소, 흐름을 결정하는 단계- STEP 2. 구조 고정 & 스캐폴딩
“앞으로 코드가 절대 헤매지 않도록, 결정된 구조를 실제 폴더와 파일로 만들고, 이후 개발 범위를 고정하는 단계”- STEP 3. 전략을 의사코드로 만들기
전략의 매수·매도 판단을 코드 없이 논리 흐름으로 정리하는 단계- STEP 4. 첫 전략 구현 (최소 기능)
의사코드를 그대로 옮겨 최소한의 전략 코드로 구현하는 단계- STEP 5. 백테스트 실행
과거 데이터를 사용해 전략이 의도대로 동작하는지 실행해보는 단계- STEP 6. 리스크 제어 추가
과도한 매매나 손실을 막기 위한 제한 규칙을 시스템에 추가하는 단계- STEP 7. 결과 정리 & 리포트
실행 결과를 요약해 전략의 행동과 문제점을 확인하는 단계- STEP 8. 페이퍼 트레이딩
실제처럼 시간 흐름에 따라 자동매매를 운영해보는 최종 연습 단계- STEP 9. 파이프라인 통합 단계 (Pipeline Integration)
전략·리스크·백테스트(또는 페이퍼 트레이딩) 모듈을 연결해 하나의 실행 흐름으로 만드는 단계- STEP 10. 실행 단계(Execution)
통합된 파이프라인을 진입점(main.py)에서 실제로 구동하는 단계- STEP 11. 프로젝트 정리 & 문서화 (Project Hygiene & Documentation)
버전 관리 규칙과 기본 문서를 만들어 프로젝트를 관리 가능한 상태로 만드는 단계- STEP 99. (선택) 실거래
검증된 자동매매 시스템을 실제 자금과 증권사 API로 운영하는 단계
개발하기
STEP 0. 프로젝트 초기화 (Project Bootstrap)
$ mkdir trade-labSTEP 0.5. 프로젝트 킥오프
# Claude 전용 인터랙티브 입력 모드 $ claudeSTEP 1. 개념·구조 설계 단계 (Concept & Architecture Design)
- 프롬프트
너는 자동매매 프로젝트의 설계자야. 목표는 "자동매매 구조 이해"야. 실거래는 하지 않는다. 초보자가 이해할 수 있게 1. 전체 구조 2. 각 폴더 역할 3. 첫 번째 전략 예시 (설명만) 를 작성해줘. 코드는 쓰지 마.STEP 2. 구조 고정 & 스캐폴딩
- 프롬프트
STEP 1에서 개념·구조 설계를 끝냈어. 이제 STEP 2로 갈 거야. 목표는 프로젝트 구조를 고정하는 거야. 조건: - 자동매매 학습용 프로젝트 - 실거래 없음 - Python 기준 - 아직 로직 구현은 하지 않는다 아래를 만들어줘: 1. 프로젝트 전체 폴더 구조 2. 각 폴더에 들어갈 파일 이름 3. 각 파일의 책임(한 줄 설명) 규칙: - 코드 작성 ❌ - 함수 구현 ❌ - 파일명/폴더명/역할 설명만 ⭕- 결과
# 지금 단계에서 추천하는 “축소 버전 구조” (⭐️중요) trade-lab/ ├─ src/ │ ├─ data/ # 과거 데이터 로딩 │ ├─ strategy/ # 매매 전략 │ ├─ backtest/ # 시뮬레이션 실행 │ ├─ risk/ # 간단한 제약 조건 │ └─ report/ # 결과 요약 ├─ tests/ ├─ docs/ └─ README.md- 실행
# “구조 결정권”은 사람에게 있어야 함, 사람이 직접 폴더를 만드는 순간 “이 구조에 동의했다”는 명확한 신호가 됨 # 폴더 생성 $ mkdir -p src/data src/strategy src/backtest src/risk src/report tests docs # 생성 확인 $ tree OR $ ls -R- 구조 문서 저장
# 구조 문서 저장 $ vi docs/structure.md # Project Structure (STEP 2) 이 프로젝트는 자동매매 학습을 목적으로 하며, 실거래 없이 구조 이해와 백테스트에 집중한다. ## Directory Structure trade-lab/ ├─ src/ │ ├─ data/ # 과거 가격 데이터 로딩 │ ├─ strategy/ # 매매 규칙 정의 │ ├─ backtest/ # 전략 시뮬레이션 실행 │ ├─ risk/ # 간단한 매매 제약 조건 │ └─ report/ # 결과 요약 출력 ├─ tests/ └─ docs/STEP 3. 전략을 의사코드로 만들기
- 프롬프트
이제 STEP 3로 갈 거야. 목표는 첫 번째 자동매매 전략을 의사코드(pseudocode)로 만드는 거야. 조건: - 자동매매 학습용 - 단일 종목 - 하루 1회 매매 - 종가 기준 - 실거래 없음 아래를 만들어줘: 1. 전략 개념 설명 (왜 이런 규칙인지) 2. 매수 조건 (말로 설명) 3. 매도 조건 (말로 설명) 4. 전체 흐름을 단계별 의사코드로 작성 규칙: - Python 코드 ❌ - 함수/클래스 ❌ - 설명 + 의사코드만 ⭕- 핵심 요약 (제일 중요)
“생각을 코드로 번역하기 전 마지막 인간의 단계”다.- 지금 단계까지 절대 하면 안 되는 것
• ❌ “이 전략 수익 나?” • ❌ “백테스트 돌려줘” • ❌ “이걸 코드로 짜줘”STEP 4. 첫 전략 구현 (최소 기능)
이제 STEP 4로 갈 거야. 아래 의사코드를 기준으로 첫 번째 자동매매 전략을 코드로 구현해줘. 목표: - 전략이 실제로 실행되는 흐름을 확인 - 수익/성능은 중요하지 않음 조건: - Python 사용 - 단일 종목 - 과거 데이터 기반 (CSV 또는 리스트) - 하루 1회 매매 - 실거래 없음 - 백테스트용 코드 구현 범위: - 전략 로직 구현 - 매수/매도 시점 로그 출력 제외 사항: - 실시간 데이터 ❌ - 증권사 API ❌ - 복잡한 지표 ❌ - 성능 최적화 ❌ ⚠️ 중요 규칙: - 기존 파일은 수정하거나 삭제하지 마 - 새 파일 하나에만 코드 작성 📄 대상 파일: - src/strategy/simple_strategy.py 규칙: - STEP 2에서 고정한 폴더 구조를 따른다 - STEP 3 의사코드와 다른 로직을 만들지 않는다 - 클래스/함수는 최소한으로 사용한다 입력: (여기에 STEP 3에서 만든 의사코드를 그대로 붙여넣기)- 이 프롬프트가 중요한 이유
이 프롬프트에는 STEP 4에서 반드시 있어야 할 것이 전부 들어 있음: • ✔ 입력: STEP 3 의사코드 • ✔ 출력: “돌아가는 코드” • ✔ 제한: 실거래/실시간/성능 전부 차단 • ✔ 범위: 한 파일, 최소 기능- 절대 하면 안 되는 질문
• ❌ “이거 수익 나?” • ❌ “지표 더 추가해줘” • ❌ “실시간으로 바꿔줘” • ❌ “리팩토링해줘”- simple_strategy.py 생성 (빈파일)
vi src/strategy/simple_strategy.py OR # Claude 전용 인터랙티브 입력 모드 아래 의사코드를 기준으로 새 파일에 들어갈 코드만 작성해줘. - 대상 파일: src/strategy/simple_strategy.py - 기존 파일 수정/삭제 ❌STEP 5. 백테스트 실행
- 프롬프트
이제 STEP 5로 갈 거야. STEP 4에서 구현한 전략 코드를 기준으로 과거 데이터로 백테스트를 실행하는 코드를 작성해줘. 목표: - 전략 로직이 의도대로 동작하는지 확인 - 수익률보다 흐름 검증이 목적 조건: - Python 사용 - 실거래 없음 - 실시간 데이터 없음 - CSV 기반 과거 데이터 사용 - 단일 종목 - 하루 1회 매매 중요 규칙: - ⚠️ 기존 파일은 수정하거나 삭제하지 마 - ⚠️ 새 파일만 생성한다고 가정하고 작성 - 대상 파일: src/backtest/simple_backtest.py 구현 범위: - CSV 데이터 로딩 - 전략 함수 호출 - 매수/매도 시점 로그 출력 - 거래 횟수 요약 출력 제외 사항: - 성능 최적화 ❌ - 복잡한 지표 ❌ - 수익률 그래프 ❌ - 리포트 자동 생성 ❌ 입력: - STEP 4에서 만든 전략 파일을 사용한다고 가정- src/backtest/simple_backtest.py 생성 (빈파일)
vi src/backtest/simple_backtest.py- 절대 하면 안 되는 것
• ❌ “수익률 계산해줘” • ❌ “그래프 그려줘” • ❌ “리팩토링해줘” • ❌ “전략 개선해줘”STEP 6. 리스크 제어 추가
- 프롬프트
이제 STEP 6로 갈 거야. STEP 5에서 만든 백테스트 코드에 최소한의 리스크 제어 규칙을 추가해줘. 목표: - 전략이 과도하게 거래하지 않도록 제한 - 손실이 커지기 전에 멈추는 흐름 확인 조건: - Python 사용 - 실거래 없음 - 실시간 데이터 없음 - 기존 전략 로직은 변경하지 않는다 추가할 리스크 규칙 (최소): 1. 하루 최대 거래 횟수 제한 (예: 1회) 2. 최대 연속 손실 횟수 제한 3. 단일 포지션만 허용 (중복 진입 금지) 중요 규칙: - ⚠️ 기존 파일은 수정하거나 삭제하지 마 - ⚠️ 새 파일만 생성한다고 가정하고 작성 - 대상 파일: src/risk/simple_risk.py 구현 방식: - 리스크 체크용 함수 또는 로직만 포함 - 백테스트 코드에서 호출된다고 가정 제외 사항: - 수익률 최적화 ❌ - 복잡한 리스크 모델 ❌ - 실제 주문/자금 관리 ❌- src/risk/simple_risk.py
$ vi src/risk/simple_risk.py- 절대 하면 안 되는 것
• ❌ 전략 로직 자체 변경 • ❌ 리팩토링 • ❌ 자금 배분 알고리즘 • ❌ 실거래 가정STEP 7. 결과 정리 & 리포트
- 프롬프트
이제 STEP 7로 갈 거야. STEP 5(백테스트 실행)와 STEP 6(리스크 제어 추가)까지 완료된 상태에서, 실행 결과를 정리하는 리포트 코드를 작성해줘. 목표: - 자동매매 전략이 어떤 행동을 했는지 요약 - 결과를 사람이 빠르게 이해할 수 있게 정리 조건: - Python 사용 - 실거래 없음 - 실시간 데이터 없음 - 콘솔 출력 기반 리포트 중요 규칙: - ⚠️ 기존 파일은 수정하거나 삭제하지 마 - ⚠️ 새 파일만 생성한다고 가정하고 작성 - 대상 파일: src/report/simple_report.py 리포트에 포함할 항목: 1. 전체 거래 일수 2. 총 매수 횟수 / 총 매도 횟수 3. 실제 체결된 거래 횟수 4. 리스크 규칙으로 차단된 거래 횟수 5. 백테스트 기간 요약 (시작일 ~ 종료일) 6. 전략 동작에 대한 간단한 텍스트 요약 출력 형식: - 보기 쉬운 텍스트 출력 - 표 또는 구분선 활용 가능 제외 사항: - 수익률 그래프 ❌ - 복잡한 통계 지표 ❌ - 파일 저장 ❌- 절대 하면 안 되는 것
• ❌ 전략 성능 평가 (좋다/나쁘다) • ❌ 개선 제안 • ❌ 그래프 자동 생성 • ❌ 리팩토링
STEP 8. 페이퍼 트레이딩**STEP 8은 “실제 돈 없이 실전 흐름을 체험하는 단계”다.
여기까지 오면 자동매매 입문은 끝
- 프롬프트
이제 STEP 8로 갈 거야. 지금까지 만든 전략, 백테스트, 리스크 제어, 리포트 흐름을 기반으로 '페이퍼 트레이딩(paper trading)' 구조를 만들어줘. 목표: - 실시간처럼 동작하는 자동매매 흐름 이해 - 실제 주문 없이 매매 판단만 수행 조건: - Python 사용 - 실거래 없음 (페이퍼 트레이딩) - 실시간 API 연결 ❌ - 과거 데이터를 시간 순서대로 하나씩 처리 - 단일 종목 - 하루 1회 매매 규칙 유지 중요 규칙: - ⚠️ 기존 파일은 수정하거나 삭제하지 마 - ⚠️ 새 파일만 생성한다고 가정하고 작성 - 대상 파일: src/paper/simple_paper_trading.py 구현 범위: 1. 과거 데이터를 한 줄씩 읽어 '현재 시점'처럼 처리 2. 각 시점마다 전략 판단 수행 3. 리스크 규칙 적용 4. 매수/매도/관망 결과를 로그로 출력 5. 하루가 끝날 때 요약 로그 출력 출력 예시(형태만): - [2023-01-05] BUY signal - [2023-01-06] HOLD (risk limit) - [2023-01-07] SELL signal - --- Daily Summary --- 제외 사항: - 실제 주문 ❌ - 자금 관리 ❌ - 수익률 계산 ❌ - 멀티 종목 ❌- src/paper/simple_paper_trading.py 생성 (빈파일)
vi src/paper/simple_paper_trading.py- src/paper
$ mkdir -p src/paper- 절대 하면 안 되는 것
• ❌ 증권사 API 연동 • ❌ 실시간 웹소켓 • ❌ 자동 주문 • ❌ 성능/수익률 집착STEP 9. 파이프라인 통합 단계 (Pipeline Integration)
- 현재까지 생성된 파일
trade-lab/ ├── data/ │ └── raw/ │ └── sample_stock.csv └── src/ ├── strategy/ │ └── simple_strategy.py ← STEP 4 ├── backtest/ │ └── simple_backtest.py ← STEP 5 ├── risk/ │ └── simple_risk.py ← STEP 6 ├── report/ │ └── simple_report.py ← STEP 7 └── paper/ └── simple_paper_trading.py ← STEP 8- 프롬프트
모든 모듈을 통합한 main.py를 만들어 전체 파이프라인을 하나의 명령으로 실행해줘STEP 10. 실행 단계(Execution)
- main.py
════════════════════════════════════════════════════════════ 자동매매 학습 프로젝트 ════════════════════════════════════════════════════════════ 실행 모드: backtest 데이터: data/raw/sample_stock.csv ╔══════════════════════════════════════════════════════════╗ ║ 백테스트 모드 ║ ╚══════════════════════════════════════════════════════════╝ [설정] 전략: 이동평균 크로스오버 (5일/20일) 초기 자금: 10,000,000원 리스크: 일일 1회, 연속 손실 3회 제한 [데이터] 66일치 로드 (2024-01-02 ~ 2024-04-05) ──────────────────────────────────────────────────────────── 거래 실행 중... ──────────────────────────────────────────────────────────── [2024-02-26] 🟢 매수 | 54,500원 × 183주 [2024-03-19] 🔴 매도 | 54,000원 × 183주 | 손익: -91,500원 [2024-04-02] 🟢 매수 | 56,800원 × 174주 ╔══════════════════════════════════════════════════════════╗ ║ 실행 결과 리포트 ║ ╚══════════════════════════════════════════════════════════╝ ┌──────────────────────────────────────────────────────────┐ │ 1. 실행 기간 │ ├──────────────────────────────────────────────────────────┤ │ 시작일: 2024-01-02 │ │ 종료일: 2024-04-05 │ │ 총 일수: 66 │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ 2. 거래 현황 │ ├──────────────────────────────────────────────────────────┤ │ 총 매수: 2회 │ │ 총 매도: 1회 │ │ 리스크 차단: 1건 │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ 3. 수익 현황 │ ├──────────────────────────────────────────────────────────┤ │ 초기 자금: 10,000,000원 │ │ 최종 자산: 10,152,100원 │ │ 총 손익: +152,100원 │ │ 수익률: +1.52% │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ 4. 거래 내역 │ ├──────────────────────────────────────────────────────────┤ │ 2024-02-26 | 매수 | 54,500원 │ │ 2024-03-19 | 매도 | 54,000원 | 손익: -91,500원 │ │ 2024-04-02 | 매수 | 56,800원 │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ 5. 차단된 거래 │ ├──────────────────────────────────────────────────────────┤ │ 2024-02-05 | 매도 | 보유 포지션 없음 │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │ 6. 최종 상태 │ ├──────────────────────────────────────────────────────────┤ │ 포지션: 보유 중 │ │ 연속 손실: 1회 │ │ 거래 중단: 아니오 │ └──────────────────────────────────────────────────────────┘ ════════════════════════════════════════════════════════════ 리포트 완료 ════════════════════════════════════════════════════════════STEP 11. 프로젝트 정리 & 문서화 (Project Hygiene & Documentation)
- gitignore 추가
.gitignore 파일 만들어줘- README.md 추가
README.md 파일 만들어줘STEP 99. (선택) 실거래
- 프롬프트
'Tool > ClaudeCode&Cursor&VSCode' 카테고리의 다른 글
AI로 영상 생성 플랫폼 개발2 (Google Cloud 설정) (0) 2026.01.15 AI로 영상 생성 플랫폼 개발1 (0) 2026.01.08 Claude Code 주요 옵션 정리 (0) 2025.12.19 Claude commands 및 hooks 활용 - 사양서 읽고 게시판 생성 (0) 2025.12.11 Claude Skill 활용 - 이력서 자동입력 (0) 2025.12.09