이번 페이지에서는 전체 리스트를 받고, 제외하고 싶은 항목들을 제거하는 방법에 대해 이야기한다.
0. 트레이딩 대상 코인 종류
모든 코인을 대상이 아닌, 내가 생각한 조건에 해당하는 코인만으로 트레이딩을 할 계획이다
조건은 아래와 같다.
1) 원화 상장된 코인
2) 업비트 공지사항에 투자 유의 올라온 코인들은 제외 (첫페이지만 크롤링)
3) 내 블로그에 올려둔 코인들은 제외 (실시간으로 제외 코인을 추가하기 위해서)
1. 전체 리스트 받기
업비트의 Open API를 통하면 업비트에 상장된 전체 코인 리스트를 받을 수 있다.
import pyupbit
tickers = pyupbit.get_tickers()
print(tickers)
2. 제외할 종목들 정하기
2-1) 원화 대상만 남기기
우선 원화 상장된 코인은 리스트에서 'KRW-'로 시작하는 요소만 이용하면된다.
tickers = list(filter(lambda x: x.startswith('KRW-'), tickers))
2-2) 크롤링하여 제외하기
2), 3)은 똑같이 크롤링을 기반으로 하기에 업비트 크롤링만 기준으로 작성하면,
업비트 공지사항(https://api-manager.upbit.com/api/v1/notices?page=1&per_page=20&thread_name=general)에서
코인이름과 '유의'는 들어가지만 '해제'는 들어가지 않는 코인들만 남기었다.
def badlist_from_upbit():
url = 'https://api-manager.upbit.com/api/v1/notices?page=1&per_page=20&thread_name=general'
res = requests.get(url)
dictedjs = json.loads(res.text) # 페이지의 json형식의 text를 dict로 저장
data_ = dictedjs['data'] # 그중 key가 data인 value를 뽑음
lists_ = data_['list'] # 그중 key가 list인 value를 뽑음
titles = []
for i in range(len(lists_)): # list의 요소는 각각 dict고, dict 중 key가 title인 value를 뽑음
titles.append(lists_[i]['title'])
tickers = pyupbit.get_tickers()
tickers = list(filter(lambda x: x.startswith('KRW-'), tickers)) # 그 중 원화 대상만 남기기
search = 'KRW-'
for i, word in enumerate(tickers):
if search in word:
tickers[i] = word.strip(search)
badcoins = []
for tic in tickers:
for title in titles:
if (tic in title) and ('유의' in title) and (not '해제' in title):
badcoins.append('KRW-'+tic)
return badcoins
'김손절 코인투자봇 만들기' 카테고리의 다른 글
[알고리즘 봇]2.0.2 매매 알고리즘 계획(변경 Ver.) (0) | 2022.10.23 |
---|---|
[알고리즘 봇]2.0.1 알고리즘 봇 계획(변경 Ver.) (0) | 2022.10.23 |
[알고리즘 봇]1.2.0 거래할 코인 리스트 만들기(1/2) (0) | 2022.08.17 |
[크롤링용] 코인봇 거래 제외할 리스트 (0) | 2022.08.17 |
[알고리즘 봇]1.1.1 upbit 로그인 모듈 (0) | 2022.08.16 |