나도봇에 구글 AI를 붙였습니다 — TimesFM으로 갭을 자동 조절하는 봇
지난 글에서 나도봇이 손실이 난 원인을 분석했습니다.
결론은 간단했습니다. 갭이 고정돼 있어서 시장이 한 방향으로 크게 움직일 때 손실을 피하지 못했습니다. BTC든 ETH든 상관없이 항상 같은 간격으로 매수·매도 주문을 거니까, 변동성이 갑자기 커지는 구간에서 계속 물리는 구조였습니다.
그래서 이런 생각이 들었습니다.
"갭을 미리 알아서 조절할 수는 없을까?"
TimesFM이 뭔지부터
구글 리서치에서 2024년에 공개한 시계열 예측 모델입니다. 주가나 수요 같은 숫자 데이터의 흐름을 보고 앞으로 어떻게 될지 예측하는 AI입니다.
중요한 건 "파운데이션 모델"이라는 점입니다. 추가 학습 없이 바로 갖다 쓸 수 있습니다. 비트코인 가격 데이터를 넣으면 그냥 작동합니다. 별도로 훈련할 필요가 없습니다.
pip으로 설치합니다.
pip install timesfm
적용 방법
방식은 단순합니다.
- Bybit에서 BTC, ETH 최근 200개 1시간봉 데이터를 가져옵니다
- TimesFM에 넣어서 향후 8시간 예측을 받습니다
- 예측 구간의 신뢰도(CI 폭)를 보고 변동성이 크면 갭을 넓히고, 작으면 좁힙니다
코드로 보면 이렇습니다.
forecast = tfm.forecast(
inputs=[price_series],
freq=[0],
prediction_length=HORIZON,
)
ci_width = upper[0] - lower[0] # 신뢰구간 폭
gap_multiplier = ci_width / vol_baseline # 변동성 대비 배율
gap_multiplier = max(0.7, min(2.0, gap_multiplier)) # 0.7~2.0 사이로 제한
갭이 최대 2배까지 늘어나고, 최소 0.7배까지 줄어듭니다. 변동성이 평소보다 클 때는 넓게, 잔잔할 때는 좁게 가져갑니다.
실제로 어떻게 보이냐면
맥미니에서 돌아가는 봇 로그에 이런 줄이 찍힙니다.
[ADVISOR] BTC: 변동성 CI $1,699 | 예측 ↑+0.3% | gap $300→$255
[ADVISOR] ETH: 변동성 CI $146 | 예측 ↓-19.4% | gap $30→$60
오늘 기준으로 BTC는 변동성이 낮아서 갭을 $300에서 $255로 줄였고, ETH는 변동성이 높아서 $30에서 $60으로 두 배 늘렸습니다.
방향 예측도 같이 나옵니다. ETH가 -19.4% 하락 방향으로 예측됐다면, 연속으로 같은 방향 체결이 2번 이상 나올 때 원웨이 감지 임계값을 낮춥니다. 한방향으로 쏠리기 전에 미리 멈추는 방어 로직입니다.
백그라운드에서 돌아가는 구조
봇이 시작할 때 TimesFM 스레드를 하나 띄웁니다.
def start():
thread = threading.Thread(target=_run_loop, daemon=True)
thread.start()
메인 봇 루프와 별개로 돌아가면서 30분마다 새로운 예측을 갱신합니다. 모델이 준비되기 전에는 기존 고정 갭을 그대로 씁니다. 모델 로딩 실패해도 봇은 계속 돌아갑니다.
아직 초기라 성과는 더 봐야 합니다
오늘 세팅을 마치고 처음 돌리기 시작했습니다. 2주 정도 돌려보고 기존 고정 갭 방식이랑 비교할 예정입니다.
지금 당장 드라마틱한 결과를 기대하기보다, 변동성이 튈 때 갭이 자동으로 커지는 방어 효과가 있는지를 확인하는 게 목표입니다.
다음 글에서는 봇 성과가 매일 자동으로 옵시디언에 쌓이는 시스템을 만든 이야기를 씁니다.