Recipes

Vibe-Trading을 통한 섀도 계정 백테스팅 기능을 갖춘 개인 트레이딩 에이전트

README 링크에서 발견 · 2 days ago

Research & KnowledgeSoftware & DevOps

저장소를 시장을 리서치하고, 백테스트하고, 페이퍼 트레이딩하는 에이전트로 전환하세요.

What they did

Vibe-Trading repo를 가져다가 일회성 스크립트가 아닌 개인 트레이딩 에이전트를 구축했습니다. pip로 설치 가능한 `vibe-trading-ai` 패키지(Python 3.11+, FastAPI 백엔드, React 19 프론트엔드)에서 시작하여, 패키지를 설치하고 모델 및 시장 데이터 자격 증명을 구성한 뒤, 번들로 제공되는 API/MCP 서버를 통해 에이전트의 트레이딩 기능을 노출하여 기존 에이전트 클라이언트가 이를 도구로 호출할 수 있게 했습니다. 그런 다음 Shadow Account 기능을 사용해 자본 위험 없이 과거 데이터에 대해 전략을 실행하고, 에이전트가 일관된 리서치 노트, 후보 트레이드, 페이퍼 포트폴리오를 생성할 때까지 프롬프트와 파라미터를 반복 조정했습니다. 마지막으로 shadow-account 결과를 검토하고, 에이전트의 추론을 기반 데이터와 대조 확인했으며, 전체 루프를 하나의 repo 안에 유지하여 실행이 재현 가능하고 diff 가능하도록 했습니다.

How it went

로컬에서 작동하는 에이전트로, 금융 상품을 조사하고, 거래를 제안하며, 섀도 계좌에 기록할 수 있고, 탐색 가능한 React UI와 다른 에이전트가 호출할 수 있는 MCP 엔드포인트를 갖추고 있습니다. 셀프 호스팅 도구로서 완성도가 좋습니다. 설치는 pip 명령 하나로 끝나고, 문서와 데모 사이트가 있으며, 섀도 계좌 덕분에 실제 자금이 움직이기 전에 결과를 검토할 수 있습니다. 한계는 배관(plumbing)보다는 데이터 품질과 모델 판단에서 드러납니다.

Worth knowing

이것은 투자 조언이 아니며, 해당 저장소는 토큰이나 밈코인에 대해 명시적으로 면책하고 있습니다 — 사칭 계정과 컨트랙트는 무시하세요. 자신의 모델 API 키와 시장 데이터 접근 권한이 필요하며, 백테스트 결과는 데이터 품질과 생존 편향에 크게 좌우됩니다. 섀도 계좌 성과는 실거래 수익을 예측하지 않으며, 브로커리지 연동과 주문 라우팅은 리스크 관리를 대체할 수 없습니다. 프로젝트가 자주 배포되고 일부 기능은 미출시로 표시되어 있으므로 버전을 고정하세요.

Wiring

순서가 중요합니다: `vibe-trading-ai`를 격리된 Python 3.11+ 환경에 설치한 다음, 무엇이든 시작하기 전에 환경 변수(모델 제공자 키, 시장 데이터 키)를 통해 자격 증명을 제공해야 합니다. FastAPI 백엔드가 부팅 시 이를 읽기 때문입니다. 백엔드를 시작하고 헬스 엔드포인트를 확인한 뒤, React 프론트엔드를 백엔드로 연결하거나 UI를 건너뛰고 API를 직접 사용하세요. 에이전트 용도로 사용하려면 MCP 서버를 활성화하고 그 엔드포인트를 클라이언트에 등록하여 트레이딩 기능이 호출 가능한 도구로 나타나게 하세요. 그러면 에이전트가 데이터 조회 → 전략 추론 → 섀도 계정 주문 기록을 연쇄적으로 수행합니다. 섀도 계정을 기본 실행 대상으로 유지하고, 모든 라이브 브로커리지 어댑터는 명시적 설정 플래그와 별도의 자격 증명 파일 뒤에 두어 제한하세요. 실행 구성과 출력을 버전이 지정된 디렉터리에 저장하여 백테스트를 재현 가능하게 하세요.

Try it yourself

# Vibe-Trading 설정 가이드

아래는 요청하신 6단계를 이 저장소에서 수행하기 위한 구체적인 절차입니다. 실제 브로커리지 계좌나 지갑은 연결하지 않습니다.

## 1. Python 3.11 가상환경 및 패키지 설치

```bash
python3.11 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install "vibe-trading-ai==<PINNED_VERSION>"
```

`requirements.txt`에 버전을 고정합니다:

```
vibe-trading-ai==<PINNED_VERSION>
```

> 참고: `vibe-trading-ai`의 실제 최신 버전과 API 표면은 설치 시점에 `pip index versions vibe-trading-ai`로 확인하고, 해당 버전의 문서를 기준으로 아래 단계를 조정하세요. 패키지명/버전은 제가 임의로 확정하지 않습니다.

## 2. 환경 변수 템플릿과 gitignore

`.env.example`:

```dotenv
# Model provider
MODEL_API_KEY=your_model_api_key_here
MODEL_PROVIDER=your_provider_here

# Market data
MARKET_DATA_API_KEY=your_market_data_key_here
MARKET_DATA_BASE_URL=https://your-market-data-endpoint.example

# Local server
VIBE_TRADING_HOST=127.0.0.1
VIBE_TRADING_PORT=8765
```

`.gitignore`에 추가:

```
.env
.venv/
runs/*/secrets*
```

`.env`는 절대 커밋하지 않습니다.

## 3. 로컬 API/MCP 서버 기동 및 헬스 체크

```bash
cp .env.example .env   # 값 채우기
vibe-trading serve --host 127.0.0.1 --port 8765 &
curl -sS http://127.0.0.1:8765/health
```

정상이라면 `{"status":"ok", ...}` 형태의 응답이 와야 합니다. 응답이 없으면 로그에서 포트/키 오류를 확인하세요.

## 4. MCP 도구 등록 및 목록 확인

에이전트 클라이언트(예: Claude Desktop, Cursor 등)의 MCP 설정에 로컬 서버를 등록합니다. 예시(클라이언트별 스키마는 다를 수 있음):

```json
{
  "mcpServers": {
    "vibe-trading": {
      "command": "vibe-trading",
      "args": ["mcp", "--url", "http://127.0.0.1:8765"]
    }
  }
}
```

등록 후 도구 목록을 확인:

```bash
vibe-trading mcp list-tools --url http://127.0.0.1:8765
```

출력된 트레이딩 도구(예: 시세 조회, 백테스트, Shadow Account 관리 등)를 기록해 두세요. 실제 도구 이름은 설치된 버전에 따라 다릅니다.

## 5. Shadow Account 생성 및 12개월 백테스트

`runs/` 아래에 설정과 결과를 저장합니다.

```bash
mkdir -p runs/shadow-baseline
```

`runs/shadow-baseline/config.yaml` (예시 구조):

```yaml
account:
  type: shadow
  name: personal-shadow
  starting_cash: 10000
  currency: USD

strategy:
  name: simple-momentum
  params:
    lookback_days: 20
    rebalance: weekly

watchlist:
  - AAPL
  - MSFT
  - SPY

backtest:
  start: "2024-01-01"
  end: "2024-12-31"
  data_source: market_data_api
```

실행:

```bash
vibe-trading shadow create --config runs/shadow-baseline/config.yaml
vibe-trading backtest run --config runs/shadow-baseline/config.yaml \
  --out runs/shadow-baseline/results.json
```

결과(`results.json`)와 실행 로그를 `runs/shadow-baseline/`에 함께 보관합니다. 브로커리지/지갑 연결 옵션은 사용하지 않습니다.

## 6. README 섹션 추가

`README.md`에 다음 섹션을 추가하세요:

```markdown
## Vibe-Trading (personal shadow agent)

### Reproduce the baseline run
1. `python3.11 -m venv .venv && source .venv/bin/activate`
2. `pip install -r requirements.txt`
3. `cp .env.example .env` and fill in model + market-data keys
4. `vibe-trading serve --host 127.0.0.1 --port 8765 &`
5. `curl http://127.0.0.1:8765/health`
6. `vibe-trading shadow create --config runs/shadow-baseline/config.yaml`
7. `vibe-trading backtest run --config runs/shadow-baseline/config.yaml --out runs/shadow-baseline/results.json`

### Caveats
- **Data quality**: results depend on the configured market-data provider; gaps, splits, and survivorship bias are not corrected by default. Treat outputs as illustrative.
- **Non-advisory**: this is a personal research tool. Nothing here is financial advice, and no real brokerage account or wallet is connected.
- **Shadow only**: all accounts are simulated; no orders are routed to any venue.
```

## 확인 필요 사항

- `vibe-trading-ai`의 정확한 버전, CLI 서브커맨드(`serve`, `mcp`, `shadow`, `backtest`), MCP 등록 스키마는 설치 후 `vibe-trading --help`와 패키지 문서로 검증해야 합니다. 위 명령은 일반적인 형태이며 버전에 따라 조정이 필요할 수 있습니다.
- 헬스 엔드포인트 경로(`/health`)와 MCP 전송 방식(stdio vs HTTP)도 버전별로 다를 수 있으니 서버 로그로 확인하세요.

Source

English

Tools in this stack