# data_source_policy.md - 문서명: Data Source Policy - 프로젝트 코드명: **ACE-F v1** - 상태: Draft for Phase 0 Sign-off - 버전: 0.1 - 작성일: 2026-03-12 - 목적: 프로젝트에서 허용되는 데이터 소스, 금지 소스, 사용 원칙, 비용 원칙, 보관 및 변경 정책을 고정합니다. > 핵심 원칙: **무료**, **공식 우선**, **재현 가능**, **출처 추적 가능**, **약관 위반 금지** ## 1. 데이터 정책의 최상위 원칙 1. **유료 데이터 금지** - 구독료, API 요금, 별도 라이선스 비용이 드는 데이터는 v1 범위에서 사용하지 않습니다. 2. **공식 소스 우선** - 동일 정보가 여러 곳에 있다면 발행자 또는 공식 기관이 제공한 원문을 우선 사용합니다. 3. **재현 가능성 우선** - live에서 쓰는 데이터 경로와 backtest에서 쓰는 데이터 경로를 최대한 같게 유지합니다. 4. **소셜/미디어는 보조 신호** - 공식 이벤트를 대체할 수 없습니다. 5. **출처 추적 가능성** - 모든 feature는 어느 소스에서 왔는지 provenance를 남겨야 합니다. 6. **약관/쿼터/접속 정책 준수** - 무료라고 해서 무제한 사용을 전제로 하지 않습니다. ## 2. 소스 분류 ### 2.1 Core Approved Sources (핵심 허용) 이 소스가 없으면 전략이 동작하지 않거나 품질이 크게 저하됩니다. 1. **SEC EDGAR / data.sec.gov** - 용도: 8-K, 10-Q, 10-K, 6-K, 20-F, 40-F, XBRL, Exhibit 99.1 수집 - 역할: 원문 이벤트와 공식 숫자 데이터의 기준 원장 - 정책: - 공정접속 정책 준수 - user-agent 명시 - 필요한 문서만 다운로드 - raw 원문과 정규화 결과를 함께 저장 2. **Alpaca Basic** - 용도: 일봉/분봉 시세, paper trading, 주문 상태 - 역할: 기본 가격 확인 및 시뮬레이션/실행 reference - 정책: - 무료 플랜 제약에 맞춘 폴링 설계 - 정교한 intraday 전략의 기준 feed로 사용하지 않음 - IEX 중심 무료 데이터임을 전제로 해석 3. **FRED API** - 용도: 거시/시장 레짐 보조 feature - 역할: risk-on / risk-off 필터 4. **FINRA Daily Short Sale Volume** - 용도: crowding / short activity overlay - 역할: 당일 short sale volume anomaly 탐지 - 주의: - short interest와 동일 개념으로 해석 금지 ### 2.2 Secondary Approved Sources (보조 허용) 핵심 전략이 살아 있는 상태에서 보조 feature로만 사용합니다. 1. **Wikimedia Pageviews** - 용도: retail curiosity / 관심 급증 측정 - 역할: attention overlay 2. **YouTube Data API** - 용도: whitelist 채널 기반 mention/engagement 추적 - 역할: 관심 확산 속도 측정 - 정책: - 전수 검색 금지 - 채널 whitelist 우선 - 제목/설명/댓글/조회수 기반 feature만 사용 - 공개 영상 자막 대량 수집 구조 금지 3. **Yahoo Finance RSS** - 용도: headline burst / publisher breadth 카운팅 - 역할: 미디어 확산 보조 판단 - 정책: - 원문 사실 확인 소스가 아니라 보조 attention 레이어로만 사용 - headline 중복 제거 필수 ### 2.3 Experimental Sources (연구용) 즉시 production 의존성을 두지 않습니다. 1. **Google Trends API Alpha** - 용도: 테마/키워드 관심 급증 - 정책: - 접근권이 있는 경우에만 사용 - 핵심 진입 신호로 사용 금지 - 보유기간/랭킹 보조로만 연구 2. **Reddit** - 용도: 연구용 mention/engagement feature - 정책: - 약관/상업적 사용 가능 여부 확인 전 live 핵심 입력 금지 - research-only flag 필요 ### 2.4 Disallowed / Not-in-scope Sources (금지 또는 범위 밖) - 유료 earnings estimate API - 유료 transcript API - X/Twitter 유료 API 의존 구조 - 현재 신규 접근성이 불안정한 비공식 금융 커뮤니티 API - robots/약관 위반 가능성이 있는 무단 스크레이핑 - captcha/로그인 우회 수집 - 저작권/재배포 정책이 불명확한 자막 다운로드 사이트 - 웹사이트 화면 파싱을 기반으로 한 핵심 전략 ## 3. 소스별 구체 정책 ## 3.1 SEC EDGAR ### 허용 사용 - filing metadata - filing body - exhibit 99.1 - XBRL facts - company submissions history ### 요구사항 - 명시적 user-agent - 합리적 캐시 - 재다운로드 최소화 - 문서 원본 불변 저장 ### 금지사항 - 불필요한 전수 크롤링 - rate limit 무시 - 원문 없이 파싱 결과만 보관하는 구조 ## 3.2 Alpaca Basic ### 허용 사용 - 일봉/분봉 bars - latest bar 확인 - paper trading - 기본 주문 상태 확인 ### 제한사항 - 무료 플랜 제약을 고려한 호출 빈도 설계 - IEX 중심 무료 실시간 데이터 한계를 감안한 해석 - v1에서 초단타 실시간 전략의 진실 원장으로 사용 금지 ## 3.3 FRED ### 허용 사용 - 금리/스프레드/거시 레짐 - regime filter ### 제한사항 - 개별 종목 진입 신호로 직접 사용하지 않음 ## 3.4 FINRA Short Sale Volume ### 허용 사용 - short volume ratio - abnormal short activity - off-exchange crowding 힌트 ### 제한사항 - short interest 대용으로 사용 금지 - 단독 진입 신호 금지 ## 3.5 Wikimedia ### 허용 사용 - 회사/브랜드 pageview spike - retail curiosity shock ### 제한사항 - 문서/가격 확인 없이 단독 진입 금지 ## 3.6 YouTube ### 허용 사용 - whitelist 채널의 업로드 감시 - 제목/설명에서 ticker/키워드 추출 - 조회수 증가 속도 - 댓글 수/간단 감성 ### 제한사항 - search.list 남용 금지 - captions.download 기반 대량 수집 금지 - “유명인이 찍었으니 산다” 식 단독 신호 금지 ## 3.7 Yahoo Finance RSS ### 허용 사용 - 헤드라인 burst - 유니크 publisher 수 - 기사 수 증가율 ### 제한사항 - 동일 보도자료의 다중 복제 기사 중복 제거 - 공식 사실 검증 소스 아님 ## 3.8 Google Trends ### 허용 사용 - 섹터/테마 열기 확인 - 특정 키워드의 관심 확산 ### 제한사항 - 접근성/안정성 불확실 - alpha 의존성 때문에 core pipeline 금지 ## 4. 데이터 우선순위와 진실 원장(Source of Truth) ### 4.1 이벤트 원장 - 1순위: SEC 공시 원문 - 2순위: 회사 IR 자료 - 3순위: 정규화 파서 결과 - 4순위: 미디어/소셜 overlay ### 4.2 가격 원장 - 1순위: 브로커 reference price feed - 2순위: 저장된 historical bars - 3순위: 파생 계산 feature ### 4.3 attention 원장 - 원장 개념보다는 보조 signal - core signal을 override할 수 없음 ## 5. 데이터 비용 정책 ### 5.1 외부 데이터 비용 - 데이터 API 구독료는 **0원/0달러**여야 합니다. - 테스트 편의를 위해 일시적으로 쓰는 유료 trial 데이터도 core feature로 편입하지 않습니다. ### 5.2 LLM 비용 - LLM은 데이터 API가 아니지만 운영비에 포함됩니다. - 모든 문서에 LLM을 호출하지 않고, 규칙 필터 통과 문서만 호출합니다. - accession/file hash 단위 캐시 필수 - 비용 상한 초과 시 low-priority 문서는 규칙 기반 fallback ## 6. 수집 및 저장 정책 ### 6.1 Raw 저장 - 원문은 수정 없이 보관합니다. - 원문 저장 경로에는 source / date / entity / accession 정보를 포함합니다. - raw는 immutable 원칙을 따릅니다. ### 6.2 Structured 저장 - 파싱 결과, feature, label은 별도 테이블로 분리합니다. - raw와 structured를 섞어 저장하지 않습니다. - schema version을 관리합니다. ### 6.3 Provenance 필수 필드 모든 구조화 레코드는 최소한 아래를 포함해야 합니다. - source_name - source_url - fetched_at - document_id or accession - parser_version - llm_prompt_version (해당 시) - feature_build_version ## 7. 검증 정책 ### 7.1 ingestion 검증 - 중복 적재 방지 - 누락 탐지 - 스키마 검증 - 일일 job 성공/실패 로그 ### 7.2 파서 검증 - 샘플 수동 검수 - low confidence 큐 별도 관리 - source별 실패 패턴 기록 ### 7.3 변경 검증 - 소스 포맷이 바뀌면 adapter contract 테스트 업데이트 - source availability 저하 시 fallback 설계 여부 확인 ## 8. 장애 및 fallback 정책 ### 8.1 SEC 장애 - 신규 이벤트 탐지 중단 - 과거 저장분만으로는 신규 주문 생성 금지 ### 8.2 Alpaca 데이터 지연 - 신규 진입 보류 - 보유 포지션 안전관리만 수행 ### 8.3 Secondary source 장애 - attention score를 0 또는 missing 처리 - core 전략은 계속 동작해야 함 ## 9. 소스 변경 및 폐기 정책 - 무료 정책이 유료 정책으로 바뀌면 즉시 production source에서 제외 검토 - 쿼터/약관/라이선스 변경은 문서화 후 승인 - 핵심 소스 변경은 Phase 0~1 수준의 재검토 필요 ## 10. 승인된 소스 목록 요약 | 분류 | 소스 | 역할 | Production 허용 여부 | |---|---|---|---| | Core | SEC EDGAR | 이벤트 원문/XBRL | 허용 | | Core | Alpaca Basic | 가격/주문/paper | 허용 | | Core | FRED | 시장 레짐 | 허용 | | Core | FINRA Short Volume | crowding overlay | 허용 | | Secondary | Wikimedia | attention | 허용 | | Secondary | YouTube Data API | attention | 허용 | | Secondary | Yahoo RSS | headline burst | 허용 | | Experimental | Google Trends Alpha | theme heat | 제한적 | | Experimental | Reddit | research-only | 제한적 | | Disallowed | Paid market/earnings APIs | 유료 데이터 | 금지 | | Disallowed | X/Twitter paid API | 비용/정책 불안정 | 금지 | | Disallowed | Unofficial scraping | 약관 리스크 | 금지 | ## 11. 변경 관리 - 새로운 소스를 추가하려면 다음을 충족해야 합니다. 1. 무료 여부 2. 약관/라이선스 검토 3. provenance 저장 가능 여부 4. 핵심 전략을 오염시키지 않을 것 5. 장애 시 graceful degradation 가능 여부 ## 부록 A. 현재 확인된 주요 운영 전제 - SEC는 data.sec.gov에서 인증 없이 JSON API를 제공하며, 실시간 업데이트와 bulk ZIP을 지원합니다. - SEC는 공정접속을 위해 최대 접근률을 제한하고 과도한 자동 요청을 관리합니다. - Alpaca Basic은 무료 기본 플랜이며, 주식 무료 실시간 커버리지는 IEX 중심입니다. - YouTube Data API는 기본 일일 할당량이 존재하며, 검색 호출은 비용이 큽니다. - 공개 YouTube 자막은 공식 API로 자유롭게 대량 다운로드하는 구조가 아닙니다. - Wikimedia pageviews는 공개 API로 제공됩니다. - Google Trends API는 alpha 접근 구조입니다. ## 부록 B. 참고 링크 - SEC EDGAR APIs: https://www.sec.gov/search-filings/edgar-application-programming-interfaces - SEC Developer Resources: https://www.sec.gov/about/developer-resources - SEC rate limit / fair access notes: https://www.sec.gov/about/webmaster-frequently-asked-questions - Alpaca Market Data API: https://docs.alpaca.markets/docs/about-market-data-api - Alpaca rate limit support note: https://alpaca.markets/support/usage-limit-api-calls - FINRA short sale volume: https://www.finra.org/finra-data/browse-catalog/short-sale-volume-data/daily-short-sale-volume-files - FINRA short volume explanation: https://www.finra.org/filing-reporting/adf/adf-regulation-sho - Wikimedia Analytics API: https://doc.wikimedia.org/generated-data-platform/aqs/analytics-api/reference/page-views.html - YouTube quota cost: https://developers.google.com/youtube/v3/determine_quota_cost - YouTube captions download policy: https://developers.google.com/youtube/v3/docs/captions/download - Yahoo Finance RSS: https://finance.yahoo.com/rss/ - Google Trends API alpha: https://developers.google.com/search/apis/trends