[파이썬] 업비트 티커 리스트 - 상장 400일 이하 제거
2023. 5. 20. 23:05ㆍ자동매매/업비트
반응형
상장한 지 얼마 되지 않은 코인들은 변동성이 심하고 자동매매를 하기 위한 지표(ex. 장기 이동평균선 등)를 불러올 수 없는 경우가 발생할 수 있으므로 티커 리스트에서 제거해줘야 한다.
아래의 코드에서 상장일 기준을 400일로 한 것은 자동매매를 하기 위한 조건 중, 장기 이동평균이 필요한 경우를 대비해서 넉넉하게 400일로 설정하였다.
그리고 호가 단위 하나에 가격이 10% 이상 차이가 나는 '비트토렌트(BTT)'는 자동매매를 하기 위한 지표의 변동성도 그만큼 커지므로 매수/매도 포지션이 쉴 새 없이 바뀔 수 있으며, 이런 상황은 곧 손실로 이어지므로 상장기간과 상관없이 하드코딩으로 제거해 준다.
반응형
import pyupbit
import urllib.request
import json
# 데이터 400개 받아오기
def get_ohlcv400(ticker):
df = pyupbit.get_ohlcv(ticker, interval="day", count=400)
return df
# 400일 이동평균선 정의
def get_ma400(ticker): # '(ticker)' 삭제하면 안됨
ma400 = df['close'].rolling(400).mean().iloc[-1]
return ma400
# 업비트 티커 url
# 데이터프레임 입력용
krw_market = []
btc_market = []
usdt_market = []
t1 = urllib.request.urlopen(url)
t2 = json.loads( t1.read().decode("utf-8"))
# 리스트내 티커 탐색용
n = 0
try:
while True:
b = t2[n]["market"]
if "KRW-" in b:
krw_market.append(b)
# print(b)
elif "BTC-" in b:
btc_market.append(b)
elif "USDT-" in b:
usdt_market.append(b)
n = n + 1
except:
pass
print()
print(krw_market)
print(len(krw_market))
print()
print("Listing Period checking......")
for xx in krw_market:
df = get_ohlcv400(xx)
ma400 = get_ma400(xx)
if ma400 > 0:
pass
else:
print(str(xx), "deleted")
krw_market.remove(xx)
krw_market.remove('KRW-BTT')
print("KRW-BTT deleted")
print()
print("Complete!!")
print()
print(krw_market)
print(len(krw_market))
아래의 결과를 보면, 2023.05.20 기준으로 KRW 마켓에 총 115개의 코인이 상장되어 있고, 상장기간이 400일 이하인 코인 4종류와 호가 단위 큰 '비트토렌트(BTT)'를 포함해서 총 5종류가 제거되어, 최종 110종류의 코인이 리스트에 포함되어 있는 것을 확인할 수 있다.
https://skydance.tistory.com/51
https://skydance.tistory.com/16
반응형
'자동매매 > 업비트' 카테고리의 다른 글
[파이썬] 업비트 비트코인 머신러닝 가격예측 1 (0) | 2023.12.02 |
---|---|
[파이썬] 업비트 코인별 가격 데이터 - 크롤링 (1) | 2023.09.30 |
[파이썬] 업비트 티커 리스트 - 크롤링 (0) | 2023.05.17 |
[파이썬] 업비트 지표 구하기 - RSI(상대강도지수) (2) | 2023.03.06 |
[파이썬] 업비트 지표 구하기 - MACD(이동평균수렴·확산지수) (0) | 2023.02.23 |