코인 9

[자동매매로봇 만들기] [8편] 전략 고도화 – 백테스트 구조화 & 볼린저 밴드 전략 모듈화

백테스트를 통해 가벼운 전략의 결과를 보았으니이제 전략을 다듬어가며 나에게 맞는, 더 좋은 결과를 내는 전략을 찾아가는 과정이 필요하겠다.그러기 위해서 먼저 코드를 구조화 하는 것도 필요하다. 1. 전체 코드 개요backtest/├── backtest.py ← 실행 진입점├── strategy.py ← 전략 정의 (볼린저 밴드, RSI 등)├── analyzer.py ← 수익률, 승률, 낙폭 계산├── plotter.py ← 수익곡선 시각화2. strategy.py – 전략 모듈화# strategy.pydef calculate_indicators(df): import pandas as pd import numpy as np df[..

코인 2025.06.12

[자동매매로봇 만들기][7편] 백테스트 결과 시각화 – 수익 흐름을 눈으로 확인하기

앞선 글에서 간단한 전략(볼린저 밴드 하단 + RSI 과거 데이터를 기반으로 수익률과 승률 등을 확인해봤다.이번 글에서는 그 결과를 그래프로 시각화해보자.숫자로 보는 수익률도 중요하지만, 시각화된 수익곡선은 전략의 성향을 훨씬 직관적으로 보여준다.1. 백테스트 전략 코드 (요약 포함)먼저 [6편]에서 만들었던 전략 백테스트 코드를 그대로 쓰되,수익률 기록뿐만 아니라 각 트레이드의 순서에 따라 누적 수익률을 계산하도록 정리해보자.import ccxtimport pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 데이터 수집binance = ccxt.binance({'enableRateLimit': True})symbol = 'BTC/USDT'oh..

코인 2025.06.11

[자동매매봇 만들기][6편] 백테스트로 전략 검증하기 – 과거 데이터로 수익률 확인하기

지금까지는 실시간 데이터를 기반으로 전략을 만들고, 매매 시그널도 만들었다.하지만 아직 전략의 "신뢰성"은 검증되지 않았다.그 전략이 과거에도 통했는지, 어느 정도 수익이나 손실을 냈는지를 확인해야 한다.그게 바로 **백테스트(Backtest)**다.1. 백테스트 개념 정리백테스트란?과거의 시세 데이터에 내 전략을 그대로 적용해보고,그 전략이 매수/매도 신호를 얼마나 정확하게 냈는지,얼마의 수익 또는 손실을 냈는지를 계산해보는 작업이다.2. 준비: OHLCV 데이터 불러오기이번에는 실시간 API가 아니라, 백테스트용으로 저장된 데이터를 사용할 수도 있다.하지만 간단히 하기 위해서, 바이낸스에서 가져온 5분봉 최근 500개의 데이터로 테스트하자.import ccxtimport pandas as pdbina..

코인 2025.06.06

[자동매매봇 만들기][5편] 텔레그램 봇 연동 – 매매 시그널 알림 보내기

자동매매를 개발할 때, 실제로 주문을 실행하기 전에전략이 제대로 작동하는지 확인할 방법이 필요하다.가장 간단하면서도 효과적인 방법은 텔레그램으로 시그널 알림을 받는 것이다.이번 글에서는 매매 시그널을 감지했을 때 텔레그램 메시지로 알림을 보내는 기능을 구현해본다.1. 텔레그램 봇 만들기단계 요약:텔레그램에서 @BotFather 검색/start → /newbot 입력봇 이름과 사용자명 입력API 토큰 발급됨 → 복사해둔다 (예: 123456789:ABC...XYZ)2. 챗 ID 알아내기자신에게 메시지를 보내기 위해 채팅 ID가 필요하다.방법:봇에게 /start 라고 먼저 말을 걸어야 한다아래 주소로 접속 (봇 토큰 입력)https://api.telegram.org/bot/getUpdates예:https:/..

코인 2025.05.17

[자동매매봇 만들기][4편] 기술적 지표와 단순 매매 조건 구현하기

데이터를 가져오는 것만으로는 자동매매가 시작되지 않는다.시세 흐름 속에서 어떤 조건일 때 매수하고, 언제 매도할지를 정해야 한다.이때 필요한 것이 바로 기술적 지표다.이번 글에서는 대표적인 기술적 지표인 이동평균선(MA), RSI, 볼린저 밴드를 직접 계산하고,이를 기반으로 간단한 매수·매도 시그널 생성 로직을 구현해본다.1. 준비: 캔들 데이터 가져오기앞선 글에서처럼 fetch_ohlcv()로 최근 100개의 5분봉 캔들 데이터를 가져온다.import ccxtimport pandas as pdbinance = ccxt.binance({'enableRateLimit': True})symbol = 'BTC/USDT'ohlcv = binance.fetch_ohlcv(symbol, timeframe='5m',..

코인 2025.05.16

[자동매매봇 만들기][3편] 바이낸스에서 실시간 시세와 캔들 데이터 가져오기 (API 키 없이)

자동매매를 만들기 위해 꼭 API 키가 필요한 것은 아니다.실제로 바이낸스는 공개 데이터를 누구나 API로 받아볼 수 있도록 하고 있다.이번 글에서는 API 키 없이도 바이낸스에서 실시간 가격과 캔들 데이터를 가져오는 방법을 알아본다.1. ccxt 라이브러리 소개바이낸스뿐만 아니라 여러 거래소의 API를 하나의 인터페이스로 통합해주는 파이썬 라이브러리다.fetch_ticker, fetch_ohlcv, fetch_order_book 같은 다양한 기능을 제공한다.이전 글에서 설치한 ccxt를 그대로 사용하면 된다. 설치가 안 된 경우 아래 명령어로 설치 가능하다.pip install ccxt2. 바이낸스 객체 만들기API 키 없이도 사용할 수 있도록 아래와 같이 객체를 생성한다.import ccxtbinan..

코인 2025.05.14

[자동매매봇만들기][2편] 환경 세팅 - 파이썬 & ccxt 설치하기 (PyCharm 기준)

자동매매를 만들기 위해선 먼저 개발 환경부터 갖춰야 한다.이 글에서는 PyCharm을 사용해서 파이썬 프로젝트를 구성하고, 자동매매에 필요한 라이브러리들을 설치하는 과정까지 정리해본다. 1. 파이썬 설치자동매매에 사용할 언어는 파이썬이다.먼저 파이썬이 설치되어 있는지 확인하고, 없다면 공식 사이트에서 설치한다.다운로드: https://www.python.org/downloads/설치할 때 아래 항목을 꼭 체크한다:✅ Add Python to PATH → 꼭 체크할 것✅ 버전은 최소 3.9 이상을 권장설치 후 터미널(cmd, powershell 등)에서 아래 명령어로 확인 가능하다.python --version2. PyCharm 설치 및 프로젝트 만들기PyCharm 설치JetBrains 공식 사이트에서 P..

코인 2025.05.12

[자동매매봇만들기][1편] 바이낸스 자동매매봇, 왜 만들까?

자동매매에 관심을 갖는 사람이 항상 많다.개발자의 소양을 갖춘 사람이라면 스스로 만들어 볼까?? 하고직접 만들지 않더라도 원하는 알고리즘을 선택하여 알아서 돌아가는 로봇을 제공하는 서비스도 많다.코인은 주식과는 상당히 다르다.특히 코인 시장처럼 24시간 돌아가는 시장에서는, 사람이 일일이 대응하기 어렵기 때문에 자동매매의 필요성이 더 커진다.나 역시 그런 이유로 자동매매에 관심을 가졌고, 결국 직접 하나씩 만들어보기로 했다.3년전쯤인가...비트맥스용 로봇을 만들어 실전에 투입까지 했었지만로봇매매를 지켜만 보기엔 너무 심심한 나머지 손매매의 유혹을 뿌리치지 못하고 이도저도아닌 상황이 되었다.그리고 이제 바이낸스에서 새로운 로봇을 만들어보려고 한다.이 블로그에서는 파이썬을 활용해 바이낸스 자동매매봇을 만드는..

코인 2025.05.11

바이낸스 체결 알림 봇 만들기

바이낸스에서 코인 거래를 할 경우 보통은 레버리지를 사용하기 위함이고 그러려면 Future COIN-M 으로 거래하게 마련이다.그런데 여기서 거래를 하다보면 체결 알림이 오지 않는다.물론 내가 지금 보고 있는 경우는 상관이 없는데 매도/매수를 걸어두고 다른일을 하는 경우체결알림이 없다보니 여간 불편한게 아니다.그래서 텔레그램으로 체결 알림을 만들어서 오라클 서버에 올려두고 사용중이다.여기 간단한 코드가 있으니 참고하면 좋겠다. import asyncioimport websocketsimport requestsimport jsonimport threadingimport timeAPI_KEY = "키"API_SECRET = "키"TELEGRAM_TOKEN = '토큰'TELEGRAM_CHAT_ID = '챗아이..

코인 2025.04.26