오늘은 종목 선택하는 방법에 대해 진행하려고 합니다.
종목을 선택하기에 다음의 경우를 생각해봤습니다.
1. 특정 종목 몇개만 선택한다.
TARGET_COINS = ["BTC", "ETH", "XRP"] # 예시: 비트코인, 이더리움, 리플
2. 거래대금 상위 종목 n개를 선택한다.
3. 전체 항목을 스캔하고, 구매할만한 종목을 선택한다.
★여기서 고려해야 할 점!!! ★
API 서버는 너무 과도한 요청을 보내는 사용자에 대해 차단을 할 수도 있다!!
위 내용을 고려하면 3번은 위험부담이 커보입니다.
그렇다고 1번을 고를만큼 코인 지식을 가지고있지 않아요.
그런고로 2번으로 진행을 해보겠습니다!!
거래대금 상위 N개의 종목 필터링
1). import
import json
2). 함수 정의
- 전체 ticker 정보와 개수를 입력하면 ticker 정보 내 상위 20개의 종목을 반환해줍니다.
# --- 거래대금 상위 N개의 종목을 필터링하는 함수 ---
"""
전체 Ticker 정보에서 24시간 거래대금 상위 N개 코인을 필터링
:all_ticker_info: get_ticker_info("ALL")로 받은 전체 Ticker 딕셔너리
:top_n: 상위 몇 개를 선택할지 (기본값: 20)
:return: 거래대금 상위 N개 코인 심볼 리스트 (예: ["BTC", "ETH", ...])
"""
def filter_top_coins_by_trade_value(all_ticker_info, top_n=20):
if not all_ticker_info or not isinstance(all_ticker_info, dict):
print("⚠️ 유효한 Ticker 정보가 없어 필터링을 건너뜁니다.")
return []
coin_tickers = all_ticker_info.copy()
if 'date' in coin_tickers: # 'date' 키는 코인 정보가 아니므로 제거
del coin_tickers['date']
# 거래대금을 기준으로 코인들을 정렬하기 위해 리스트로 변환
sorted_coins = []
for symbol, ticker_data in coin_tickers.items():
try:
trade_value = float(ticker_data.get('acc_trade_value_24H', 0))
sorted_coins.append({'symbol': symbol, 'trade_value': trade_value})
except (ValueError, TypeError):
continue # 거래대금 값이 숫자가 아니면 건너뛰기
# 거래대금을 기준으로 내림차순 정렬
sorted_coins.sort(key=lambda x: x['trade_value'], reverse=True)
# 거래대금 상위 N개 코인 데이터 추출
top_coins_data = sorted_coins[:top_n]
# 코인 데이터에서 심볼(이름)만 뽑아서 리스트로 만들기
target_coins = [coin['symbol'] for coin in top_coins_data]
print("\n--- 💰 24시간 거래대금 상위 20개 관심 종목 ---")
for i, coin in enumerate(top_coins_data):
print(f"{i + 1:>2}. {coin['symbol']:<10} (거래대금: {coin['trade_value']:>15,.0f} KRW)")
return target_coins
3). 테스트 진행
- main을 아래와 같이 입력하여 결과를 확인합니다.
if __name__ == "__main__":
print(f"\n[{time.strftime('%Y-%m-%d %H:%M:%S')}] 전체 시장 데이터 스캔 시작...")
# 'ALL'을 인자로 넣어 전체 ticker 정보 가져오기
all_ticker_info = bithumb_api_client.get_ticker_info("ALL")
# 전체 ticker 정보를 기준으로 상위 20개 종목 가져오기
target_coins = filter_top_coins_by_trade_value(all_ticker_info, top_n=20)
if not target_coins:
print("분석할 대상 코인을 찾지 못했습니다. 프로그램을 종료합니다.")
else:
print("\n--- 🎯 최종 분석 대상 ---")
print(target_coins)
- 아래와 같이 출력되면 성공!

끝!
'프로젝트 > 코인 투자 매크로' 카테고리의 다른 글
| 2025-06-21 [9] [v1.5] 연속 손실 제한 (Consecutive Loss Limit) (2) | 2025.06.21 |
|---|---|
| 2025-06-09 [9] [v1.2] 예외 종목(HODL LIST) 선택 및 수익실현/손절매 (1) | 2025.06.11 |
| 2025-06-08 [8] [v1.0.0 완료] 캔들스틱, 단순 이동 평균(SMA), 골든/데드 크로스 (3) | 2025.06.08 |
| 2025-06-08 [7] 가상 매수/매도 함수 구현 (1) | 2025.06.08 |
| 2025-06-06 [6] 가상 자산 관리 및 거래 내역 (0) | 2025.06.06 |