# BAA 전략 API - 빠른 시작 가이드 ## 📁 제공된 파일 ### 실행 스크립트 1. **`baa_api_examples.sh`** - 전체 기능 테스트 스크립트 2. **`quick_baa_test.sh`** - 빠른 단일 포트폴리오 생성 스크립트 ### 문서 3. **`BAA_CURL_EXAMPLES.md`** - 상세한 curl 명령어 예제 모음 4. **`API_USAGE_GUIDE.md`** - 완전한 API 사용 가이드 5. **`BAA_STRATEGY_README.md`** - BAA 전략 설명 및 이론 --- ## 🚀 5분 안에 시작하기 ### 1단계: 서버 실행 ```bash python manage.py runserver ``` ### 2단계: 포트폴리오 생성 ```bash # 스크립트 실행 권한 부여 (최초 1회) chmod +x quick_baa_test.sh # BAA-G4 전략으로 $50,000 포트폴리오 생성 ./quick_baa_test.sh ``` **출력 예시:** ``` ====== 포트폴리오 요약 ====== 기준일: 2025-10-04 모드: offensive 총 투자액: $49947.08 잔여 현금: $52.92 ====== 포트폴리오 구성 ====== VEA: 818주 @ $61.06 = $49947.08 ``` 완료! 🎉 --- ## 📋 주요 사용 사례 ### 사례 1: 다양한 전략 비교 ```bash ./quick_baa_test.sh BAA-G12 # 균형형 ./quick_baa_test.sh BAA-G4 # 공격형 ./quick_baa_test.sh BAA-SPY # 단순형 ``` ### 사례 2: 예산별 포트폴리오 ```bash ./quick_baa_test.sh BAA-G4 25000 # $25,000 ./quick_baa_test.sh BAA-G4 100000 # $100,000 ./quick_baa_test.sh BAA-G4 250000 # $250,000 ``` ### 사례 3: 과거 날짜 기준 분석 ```bash ./quick_baa_test.sh BAA-G12 100000 2024-01-31 ./quick_baa_test.sh BAA-G12 100000 2024-06-30 ./quick_baa_test.sh BAA-G12 100000 2024-09-30 ``` --- ## 🎯 전략 선택 가이드 | 전략 | 위험도 | 자산 수 | CAGR | Max DD | 추천 대상 | |------|--------|---------|------|--------|-----------| | **BAA-G12** | 중 | 12개, Top6 선택 | 14.6% | 8.7% | 균형 잡힌 포트폴리오 | | **BAA-G4** | 고 | 4개, Top1 선택 | 21.0% | 14.6% | 높은 수익 추구 | | **BAA-G12/T3** | 중상 | 12개, Top3 선택 | 16.4% | 11.4% | 적당한 분산 | | **BAA-G4/T2** | 상 | 4개, Top2 선택 | 17.7% | 12.7% | 적당한 집중 | | **BAA-SPY** | 중하 | 1개 (SPY) | 11.4% | 16.2% | 단순함 선호 | --- ## 🔧 고급 사용법 ### curl 명령어로 직접 호출 ```bash # 1. 전략 실행 EXEC_ID=$(curl -s -X POST http://localhost:8000/api/strategies/execute/ \ -H "Content-Type: application/json" \ -d '{ "strategy_name": "BoldAssetAllocation", "parameters": { "initial_capital": 50000, "variant": "BAA-G4", "use_real_data": true } }' | jq -r '.execution_id') # 2. 결과 조회 sleep 10 curl http://localhost:8000/api/executions/${EXEC_ID}/ | jq '.result' ``` ### 모든 예제 한번에 실행 ```bash chmod +x baa_api_examples.sh ./baa_api_examples.sh ``` --- ## 📚 더 알아보기 ### 전략 이해하기 👉 **`BAA_STRATEGY_README.md`** 읽기 - BAA 전략의 원리와 메커니즘 - 모멘텀 계산 방식 - 카나리아 유니버스의 역할 ### API 완전 가이드 👉 **`API_USAGE_GUIDE.md`** 읽기 - 모든 API 엔드포인트 설명 - 워크플로우 예시 - 트러블슈팅 가이드 ### curl 명령어 레퍼런스 👉 **`BAA_CURL_EXAMPLES.md`** 읽기 - 다양한 curl 명령어 예제 - 응답 샘플 - 에러 처리 예시 --- ## ❓ 자주 묻는 질문 ### Q1: 어떤 전략을 선택해야 하나요? **A:** - 처음 시작: **BAA-G12** (균형형) - 높은 수익 추구: **BAA-G4** (공격형) - 단순함 선호: **BAA-SPY** ### Q2: 얼마나 자주 리밸런싱해야 하나요? **A:** 월말 (마지막 거래일)에 리밸런싱을 권장합니다. ### Q3: 최소 투자 금액은? **A:** 제한 없지만, $10,000 이상을 권장합니다 (적절한 분산을 위해). ### Q4: 실행 시간은 얼마나 걸리나요? **A:** - 시뮬레이션 모드: ~2초 - 실제 데이터 모드: ~5-15초 (데이터 다운로드 포함) ### Q5: 공격/방어 모드는 무엇인가요? **A:** - **공격 모드**: 시장이 좋을 때, 주식 중심 포트폴리오 - **방어 모드**: 시장 위험 감지 시, 채권 중심 포트폴리오 - 카나리아 자산(SPY, VWO, VEA, BND)의 모멘텀으로 자동 전환 --- ## 🛠️ 의존성 ### 필수 - Python 3.13+ - Django 5.2.7 - yfinance - pandas, numpy ### 선택 (추천) - `jq`: JSON 포맷팅을 위해 설치 권장 ```bash # macOS brew install jq # Ubuntu/Debian sudo apt-get install jq ``` --- ## 🎬 실행 예제 영상 ### 1. 기본 실행 ```bash $ ./quick_baa_test.sh ================================== BAA 전략 빠른 실행 ================================== 변형: BAA-G4 초기 자본: $50000 기준일: null 전략 실행 중... 실행 ID: 1 데이터 다운로드 및 계산 중.......... ✓ 실행 완료! ====== 포트폴리오 요약 ====== 기준일: 2025-10-04 모드: offensive 총 투자액: $49947.08 잔여 현금: $52.92 ====== 포트폴리오 구성 ====== VEA: 818주 @ $61.06 = $49947.08 ``` ### 2. 전략 비교 ```bash # 세 가지 전략 비교 for variant in BAA-G12 BAA-G4 BAA-SPY; do echo "=== $variant ===" ./quick_baa_test.sh $variant 100000 sleep 2 done ``` --- ## 📊 포트폴리오 예시 ### 공격 모드 예시 (2025-10-04) ```json { "mode": "offensive", "portfolio": [ { "ticker": "VEA", "weight": 100.0, "shares": 818, "current_price": 61.06, "actual_amount": 49947.08 } ], "canary_status": { "SPY": {"momentum": 0.0854, "is_bad": false}, "VWO": {"momentum": 0.1015, "is_bad": false}, "VEA": {"momentum": 0.0863, "is_bad": false}, "BND": {"momentum": 0.0132, "is_bad": false} } } ``` ### 방어 모드 예시 (2024-01-31) ```json { "mode": "defensive", "portfolio": [ {"ticker": "DBC", "weight": 33.33, "shares": 1555}, {"ticker": "TLT", "weight": 33.33, "shares": 374}, {"ticker": "LQD", "weight": 33.33, "shares": 327} ], "canary_status": { "VWO": {"momentum": -0.0110, "is_bad": true} } } ``` --- ## 🔗 관련 링크 - **전략 논문**: [SSRN 4166845](https://ssrn.com/abstract=4166845) - **Django 공식 문서**: https://docs.djangoproject.com/ - **yfinance 문서**: https://github.com/ranaroussi/yfinance --- ## 📝 라이선스 교육 및 연구 목적으로만 사용하세요. --- ## 🆘 도움말 문제가 발생하면: 1. 서버가 실행 중인지 확인 2. `BAA_CURL_EXAMPLES.md`의 예제 참조 3. Django 서버 로그 확인 **Happy Trading! 📈**