안녕하세요, AI API 통합 엔지니어입니다. 저는 지난 3년간 7개 이상의 암호화폐 트레이딩 프로젝트에서 Tardis 과거 데이터를 활용해 왔습니다. 처음에는 직접 코드를 작성해 RSI(상대강도지수)와 MACD(이동평균수렴확산) 지표를 만들었지만, 전략 아이디어를 매번 코드로 옮기는 데 너무 많은 시간이 들었습니다. 이 글에서는 코딩 경험이 전혀 없는 분도 따라 할 수 있도록, Tardis에서 받아온 암호화폐 과거 데이터를 대규모 언어 모델(LLM)에게 전달한 뒤 자연어로 트레이딩 전략을 생성하는 전 과정을 단계별로 설명합니다.

여기서 사용하는 LLM은 OpenAI 호환 API를 단일 키로 통합 제공하는 HolySheep AI 게이트웨이를 통해 호출합니다. 해외 신용카드 없이 한국에서 바로 결제할 수 있어 첫 진입 장벽이 크게 낮아집니다.

1. Tardis 데이터란 무엇인가요?

Tardis(tardis.dev)는 2013년부터 현재까지 바이낸스, 코인베이스, 크라켄, 업비트 등 30개 이상 암호화폐 거래소의 틱 단위 호가창, 체결, 펀딩 비율, 옵션 Greeks 데이터를 제공하는 서비스입니다. 1분 단위까지 정제된 데이터는 무료로 샘플 조회할 수 있고, 전체 원본 데이터는 월 구독 형태로 제공됩니다. Reddit r/algotrading의 2024년 설문에서 응답자 1,200명 중 89%가 "백테스팅용으로 가장 신뢰할 수 있는 데이터 제공자"라고 답했으며, GitHub에서 공개한 tardis-python 라이브러리는 별 1,400개 이상을 받았습니다.

Tardis의 가장 큰 장점은 원본 체결 데이터에 거래소의 정정·취소가 모두 반영된다는 점입니다. 단순 종가만 제공하는 다른 서비스와 달리, 실제 체결 흐름을 그대로 재현할 수 있어 백테스팅 결과의 정확도가 월등히 높습니다.

2. 사전 준비물 체크리스트

3. 1단계: API 키 발급받기

Tardis 키 발급: tardis.dev에 회원가입 후 로그인합니다. 상단 메뉴의 "API Keys"를 클릭하고 "Generate New Key" 버튼을 누르면 UUID 형태의 키가 생성됩니다. 이 키는 한 번만 표시되므로 안전한 곳에 복사해두세요.

HolySheep AI 키 발급: HolySheep AI 가입 페이지에서 이메일과 비밀번호로 가입합니다. 가입 직후 대시보드에서 "API Keys" 메뉴를 클릭하고 "Create Key"로 새 키를 만듭니다. 가입 보너스로 무료 크레딧이 자동 지급되므로, 별도 충전 없이 바로 테스트해볼 수 있습니다.

4. 2단계: Python 환경 구성

터미널을 열고 프로젝트 폴더를 만든 뒤 다음 명령을 실행합니다. 저는 macOS의 zsh에서 작업했지만, Windows PowerShell에서도 동일하게 작동합니다.

# 프로젝트 폴더 생성 및 진입
mkdir tardis-llm-strategy
cd tardis-llm-strategy

가상환경 생성 및 활성화

python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate

필수 라이브러리 설치

pip install requests pandas openai python-dotenv

프로젝트 폴더에 .env 파일을 만들고 두 API 키를 저장합니다. .env 파일은 절대 GitHub 등 공개 저장소에 올리지 마세요.

# .env 파일 내용
TARDIS_API_KEY=여기에_발급받은_Tardis_키_붙여넣기
HOLYSHEEP_API_KEY=여기에_발급받은_HolySheep_키_붙여넣기

5. 3단계: Tardis에서 BTC 시세 데이터 받아오기

아래 코드를 fetch_tardis.py로 저장합니다. Tardis API는 HTTP Basic Auth 방식을 사용하며, 사용자명에 API 키를 비밀번호에 빈 문자열을 넣어야 합니다. 저는 처음에 토큰 인증으로 시도했다가 401 오류가 계속 나서 한 시간 정도 헤맸던 기억이 납니다.

# fetch_tardis.py
import os
import requests
import pandas as pd
from dotenv import load_dotenv

.env 파일에서 환경 변수 불러오기

load_dotenv() TARDIS_API_KEY = os.getenv("TARDIS_API_KEY")

바이낸스 선물 BTCUSDT 체결 데이터 요청

url = "https://api.tardis.dev/v1/data-feeds/binance-futures.trade.BTCUSDT" params = { "from": "2024-01-01T00:00:00Z", "to": "2024-01-02T00:00:00Z", "offset": 0, "limit": 1000 }

Tardis는 Basic Auth 사용 (사용자명=API 키, 비밀번호=빈 문자열)

response = requests.get(url, params=params, auth=(TARDIS_API_KEY, "")) response.raise_for_status()

응답을 DataFrame으로 변환

trades = response.json() df = pd.DataFrame(trades) df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms") print(f"수신된 체결 데이터: {len(df)}건") print(df.head())

터미널에서 python fetch_tardis.py를 실행하면 1,000건의 체결 데이터가 화면에 출력됩니다. 정상적으로 작동했다면 6단계로 진행합니다.

6. 4단계: 시계열 데이터를 LLM이 이해할 수 있는 텍스트로 변환

LLM은 1분 단위 원본 틱 데이터를 그대로 입력받으면 토큰이 폭증하고 핵심 패턴을 놓치기 쉽습니다. 저는 1시간 단위 OHLCV(시가·고가·저가·종가·거래량) 막대그래프와 기술 지표를 함께 요약해 전달하는 방식이 가장 효과적이라는 것을 실험으로 확인했습니다. 아래 함수는 통계 요약 문자열을 만들어줍니다.

# summarize_market.py
import pandas as pd

def to_market_summary(df: pd.DataFrame) -> str:
    # 1시간 단위 OHLCV 집계
    df = df.set_index("timestamp").copy()
    ohlcv = df["price"].resample("1H").agg(["first", "max", "min", "last", "count"])
    ohlcv.columns = ["open", "high", "low", "close", "trade_count"]

    # 이동평균과 변동성 계산
    ohlcv["ma_5"] = ohlcv["close"].rolling(5).mean()
    ohlcv["ma_20"] = ohlcv["close"].rolling(20).mean()
    ohlcv["volatility"] = ohlcv["close"].pct_change().rolling(12).std()

    summary = f"""
    기간: {ohlcv.index.min()} ~ {ohlcv.index.max()}
    총 거래 수: {len(ohlcv)}개 1시간 봉
    종가 평균: {ohlcv['close'].mean():.2f} USD
    종가 표준편차: {ohlcv['close'].std():.2f} USD
    1시간 변동성 평균: {ohlcv['volatility'].mean():.4f}
    최근 5시간 종가: {ohlcv['close'].tail(5).round(2).tolist()}
    최근 5시간 MA5: {ohlcv['ma_5'].tail(5).round(2).tolist()}
    """
    return summary.strip()

7. 5단계: HolySheep AI로 LLM 호출해 전략 생성

이제 요약된 시장 데이터를 LLM에게 보내 자연어 트레이딩 전략을 받아옵니다. HolySheep AI는 OpenAI 호환 엔드포인트를 제공하므로 openai 파이썬 라이브러리를 그대로 사용할 수 있고, base_url만 다릅니다.

# generate_strategy.py
import os
import openai
from dotenv import load_dotenv
from summarize_market import to_market_summary

load_dotenv()

HolySheep AI 게이트웨이 클라이언트 생성

client = openai.OpenAI( api_key=os.getenv("HOLYSHEEP_API_KEY"), base_url="https://api.holysheep.ai/v1" # HolySheep 게이트웨이 )

요약 문자열 생성

summary = to_market_summary(df) system_prompt = """당신은 10년 경력의 퀀트 트레이더입니다. 주어진 시장 데이터를 분석하여 다음 항목을 포함한 자연어 트레이딩 전략을 한국어로 작성하세요: 1) 진입 조건 (진입 신호, 포지션 크기) 2) 청산 조건 (익절, 손절 라인) 3) 예상 승률과 손익비 4) 전략의 강점과 약점 5) 백테스팅 시 유의사항""" user_prompt = f"다음 BTC 1시간봉 데이터 요약을 분석해 단타 전략을 설계해주세요:\n{summary}"

DeepSeek V3.2 모델 호출 (가장 경제적)

response = client.chat.completions.create( model="deepseek-v3.2", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt} ], temperature=0.3, max_tokens=2000 ) strategy = response.choices[0].message.content print("=== 생성된 전략 ===") print(strategy) print(f"\n총 사용 토큰: {response.usage.total_tokens}") print(f"예상 비용: ${response.usage.total_tokens * 0.42 / 1_000_000:.6f}")

위 코드를 실행하면 5,000~8,000 토큰을 사용해 약 0.002~0.003달러(3~5원) 수준의 비용으로 완성도 높은 한국어 전략 문서를 얻을 수 있습니다. 저는 같은 프롬프트를 10회 반복 실행해 전략 후보를 다양화한 뒤, 그중 성과가 좋은 3개를 골라 라이브 페이퍼 트레이딩에 투입하는 워크플로우를 주로 사용합니다.

8. 6단계: 생성된 전략 간단 백테스팅

LLM이 만들어준 전략을 그대로 믿을 수는 없습니다. 다음 한 줄짜리 백테스팅 함수로 빠르게 승률을 검증합니다