← 이용 안내로 돌아가기
외부 데이터 예제

테스트용 공개 데이터로 시작하기

내 DB 를 연동했는데 넣을 데이터가 없다면, 아래 셋 중 하나로 시작하세요. 전부 무료·API 키 없이 받을 수 있고, 적재 스크립트와 화면에서 고를 값(표·열)까지 그대로 따라 하면 됩니다. 스크립트는 파서를 추가하는 구조라, 원하는 소스가 있으면 항목 하나만 더 쓰면 됩니다.

시작 전 — DB 연결과 읽기 전용 계정이 먼저입니다 — Supabase 연동 가이드

수집기 받기

페처 리포를 VPS(에이전트가 있는 서버)에 클론합니다. 의존성은 pg 하나뿐입니다. ★ .env 의 DATABASE_URL 은 쓰기 계정으로. 읽기 전용 계정은 INSERT 가 거부되는 게 정상이고, 그 계정은 소리트레이딩 연동 전용입니다.

git clone https://github.com/Value-Connect-Global-Inc/soritrading-fetchers ~/soritrading-fetchers
cd ~/soritrading-fetchers && npm install
cp .env.example .env    # DATABASE_URL

https://github.com/Value-Connect-Global-Inc/soritrading-fetchers · 오픈소스 · 폴더 하나 = 페처 하나 · cron 자동 등록

아래 셋은 **시작용 예시**입니다. 리포에는 VIX·크립토 내재변동성(DVOL)·장단기 금리차·달러지수·스테이블코인 시총·DeFi TVL 등이 더 있고, 전부 무료·키 불필요입니다 — `node run.mjs list` 로 전체 목록을 봅니다. 시장 데이터는 미국 휴장일에 값이 없고(0이 아니라 없음), DVOL 은 2021년 3월부터입니다.

데이터 설정 화면 읽는 법

에이전트 관리 → 에이전트 선택 → 데이터 설정 탭. 등록·삭제는 이 화면에서 본인만 합니다 — AI 는 데이터셋을 읽기만 하고, 연결 문자열은 채팅에 절대 붙여넣지 않습니다. 화면은 위에서부터 이 순서입니다.

  1. 외부 DB 연동 — 연결 이름(예: main)과 연결 문자열을 넣습니다. 에이전트 기기에만 암호화 저장되고 서버로 가지 않습니다. 화면을 열면 에이전트가 표 목록을 자동으로 읽어옵니다([연결 확인]은 다시 읽고 싶을 때).
  2. 표와 데이터셋 — DB 의 표마다 한 줄입니다. 표 이름 · 대략의 행 수 · 표 주석, 그리고 그 표를 읽는 데이터셋들이 그 아래에 붙습니다.
  3. AI 공개 단계 (표 줄 오른쪽) — 비공개(기본 — AI 는 표가 있는지도 모름) · 이름만 · 컬럼까지 · 샘플까지 · 조회 허용. 고른 뒤 [공개 설정 저장]. 컬럼·샘플·조회 단계는 실제 데이터가 AI 에 나가므로 개인정보가 있는 표는 열지 마세요. public 스키마의 표만 열 수 있습니다.
  4. 데이터셋 이름 (표 줄 아래) — 전략이 ctx.data(이름) 으로 부르는 값입니다. [+ 이 표로 데이터셋 추가] → 이름·시각 열·값 열을 고르면 설명은 표 주석으로 채워지고, [테스트] 를 통과해야 [저장] 이 열립니다. 한 표에 이름을 여러 개 붙일 수 있습니다(필터로 거래소·종목별 시리즈를 나눌 때, 또는 옛 전략이 다른 이름을 쓸 때). 상태 배지: 사용 가능 · 확인 전 · 연결 안 됨. 배지 옆 실시간 배지를 누르면 깨우기 설정(poll·notify·redis)이 펼쳐집니다 — 대부분은 기본값이면 됩니다.
  5. 계산 데이터셋 (SQL) — 이동평균·지연값·여러 표 조합처럼 계산이 필요한 값. SQL 은 여러 표를 읽을 수 있어서 특정 표 밑에 두지 않고 따로 모읍니다. 대부분의 계산은 전략 코드에서 ctx.data 두 개로도 할 수 있으니, SQL 은 과거 구간 전체가 필요한 계산(이동평균·순위)일 때만 쓰세요. 이전 방식으로 등록된 SQL 은 여기서 [SQL 확인함] · [삭제] 하거나, 단순한 모양이면 표 선택 방식으로 일괄 변환합니다.
  6. 표를 찾지 못한 데이터셋 — 선언한 표가 지금 목록에 없을 때 사라지지 않고 이유와 함께 여기 남습니다 — 표 목록을 아직 못 받음(없다는 뜻이 아님) · 그 DB 에 표가 없음(이름 변경·삭제) · 이 기기에 그 연결 이름이 없음.
  7. 범위가 둘입니다 — AI 공개 단계는 지금 열린 그 기기에만 저장됩니다. 데이터셋은 같은 연결 이름을 가진 모든 기기에 적용됩니다. 기기가 여럿이면 공개 단계는 기기마다 따로 고릅니다.

1. 공포탐욕 지수

alternative.me

0(극단적 공포)~100(극단적 탐욕), 일 1회. 2018-02 부터 전 기간. 가격만으로는 안 보이는 심리 축이라 첫 테스트로 가장 좋습니다.

node run.mjs fear-greed
데이터 설정 화면에서 고를 값 (표 줄의 [+ 이 표로 데이터셋 추가])
연결: main   ·   표: fear_greed
이름: fg   ·   시각 열: ts   ·   값 열: v
등록한 뒤 AI 에게 이렇게 말하면 됩니다
"내 데이터셋 fg 로, 공포탐욕 20 미만에서 매수·60 초과에서 매도하는 전략을 binance BTC 1d 로 백테스트해줘"

2. 비트코인 해시레이트

blockchain.com

체인 자체의 지표(TH/s). 가격과 다른 축이라 국면 필터로 쓸 만합니다. 값이 크고 추세가 완만해서, 원값보다 이동평균 대비 비율로 쓰는 편이 낫습니다.

node run.mjs btc-hashrate
데이터 설정 화면에서 고를 값 (표 줄의 [+ 이 표로 데이터셋 추가])
연결: main   ·   표: btc_hashrate
이름: hashrate   ·   시각 열: ts   ·   값 열: v
등록한 뒤 AI 에게 이렇게 말하면 됩니다
"데이터셋 hashrate 가 90일 평균 위일 때만 매수하는 필터를 기존 전략에 붙여줘"

3. 미국 기준금리 (연습용)

FRED (DFF)

일별 실효 연방기금금리. 거시 국면 필터의 대표값입니다. ★ 주의: 같은 값이 기본 지표 base_fedfunds 로 이미 들어옵니다(ctx.data('base_fedfunds') — 에이전트가 FRED 에서 모음). 같은 값을 두 경로로 넣으면 결과에서 어느 쪽을 썼는지 갈리지 않으니, 이건 연동 연습용으로만 쓰세요.

node run.mjs fed-funds
데이터 설정 화면에서 고를 값 (표 줄의 [+ 이 표로 데이터셋 추가])
연결: main   ·   표: macro_fed_funds
이름: dff   ·   시각 열: ts   ·   값 열: v
등록한 뒤 AI 에게 이렇게 말하면 됩니다
"데이터셋 목록 보여주고 dff 가 사용 가능 상태인지 확인해줘 (연동 확인용)"

주기 수집 (cron)

페처마다 선언된 주기로 crontab 에 등록합니다. 다시 실행해도 줄이 쌓이지 않고, 직접 넣은 cron 은 건드리지 않습니다. 로그는 logs 폴더의 페처별 로그 파일 에 남습니다.

node run.mjs --install-cron
알아둘 것
  • 시각 컬럼은 초 단위 epoch 를 권장합니다(밀리초·ISO 도 자동 인식되고, 어느 쪽으로 읽었는지는 검증 보고의 tsUnit 에 남습니다).
  • 스크립트를 다시 실행해도 안전합니다 — 중복 없이 최신 값만 갱신됩니다(upsert). 새 데이터는 주기적으로 다시 돌리면 됩니다.
  • 백테스트 결과에는 데이터 지문(행수·해시)이 남습니다 — DB 내용이 바뀌면 지문이 달라지고, 지문이 다른 두 결과는 같은 조건이 아닙니다.
  • 외부 데이터를 쓰는 백테스트도 에이전트에서 돕니다 — 모든 백테스트가 에이전트(내 저장소)에서만 돕니다.
  • 공개 단계를 준 테이블은 AI 에 노출됩니다(컬럼·샘플·조회 단계는 실제 데이터가 나갑니다) — 개인정보가 있는 테이블은 공개하지 마세요.