반응형

업비트 22

[파이썬] 업비트 비트코인 머신러닝 가격예측 2

https://skydance.tistory.com/54 [파이썬] 업비트 비트코인 머신러닝 가격예측 1 우선 파이캐럿을 설치할때 충돌이 있을 수 있으니, 아래의 블로그를 참고해서 가상환경을 새로 만들고, 파이캐럿 설치 및 주피터 노트북 커널 연결까지 완료해서 환경 구축을 완료 한다. https://3 skydance.tistory.com 아래의 코드를 실행해서 지난번과 동일하게 비트코인 가격에 대한 csv 파일을 불러오고, 각종 지표에 대한 내용을 추가한 다음, 내일의 가격을 예측하기 위해서 'Close' 칼럼의 값을 시프트 -1을 해서 'Y' 칼럼에 저장하고 학습용 데이터와 테스트용 데이터로 나눈다. import pandas as pd import numpy as np import talib impo..

Finance/업비트 2024.01.24

[파이썬] 업비트 비트코인 머신러닝 가격예측 1

우선 파이캐럿을 설치할때 충돌이 있을 수 있으니, 아래의 블로그를 참고해서 가상환경을 새로 만들고, 파이캐럿 설치 및 주피터 노트북 커널 연결까지 완료해서 환경 구축을 완료 한다. https://31weeks.tistory.com/314 아나콘다 - 가상환경 구성 및 주피터 노트북 커널 연결 1. 가상환경 생성 conda create -n test01 python=3.10.9 : 파이썬 버전 3.10.9로 가상환경 'test01'생성 2. 가상환경 들어가기 conda activate test01 3. 가상환경 들어가서 주피터 설치 pip install jupyter notebook 4. 커널 연 31weeks.com https://31weeks.tistory.com/315 아나콘다 - 파이캐럿 설치 Py..

Finance/업비트 2023.12.02

[파이썬] 업비트 코인별 가격 데이터 - 크롤링

코인의 가격 데이터를 크롤링 해서 csv 파일로 저장해 놓으면, 자동매매를 하기 위해서 각종 지표들을 계산할 때 마다 매번 API를 호출하지 않아도 된다. 따라서 장기간의 데이터로 계산을 해야되는 지표들을 사용할 때, 데이터를 다운받는 시간을 줄일 수 있고, 그로 인해서 지표 계산과 매수/매도 주문이 지연되는 것도 예방할 수 있다. 아래의 코드를 실행하면, 업비트에서 KRW 마켓, BTC 마켓, USDT 마켓에서 거래 가능한 코인들의 가격 데이터를 코드가 실행되는 날짜 기준으로 과거 400일 동안의 데이터를 각 코인별로 csv 파일로 저장(400일 이상 거래된 코인에 한함)이 된다. import json import time import pandas as pd import pyupbit import ur..

Finance/업비트 2023.09.30

[파이썬] 업비트 티커 리스트 - 상장 400일 이하 제거

상장한 지 얼마 되지 않은 코인들은 변동성이 심하고 자동매매를 하기 위한 지표(ex. 장기 이동평균선 등)를 불러올 수 없는 경우가 발생할 수 있으므로 티커 리스트에서 제거해줘야 한다. 아래의 코드에서 상장일 기준을 400일로 한 것은 자동매매를 하기 위한 조건 중, 장기 이동평균이 필요한 경우를 대비해서 넉넉하게 400일로 설정하였다. 그리고 호가 단위 하나에 가격이 10% 이상 차이가 나는 '비트토렌트(BTT)'는 자동매매를 하기 위한 지표의 변동성도 그만큼 커지므로 매수/매도 포지션이 쉴 새 없이 바뀔 수 있으며, 이런 상황은 곧 손실로 이어지므로 상장기간과 상관없이 하드코딩으로 제거해 준다. import pyupbit import urllib.request import json # 데이터 400개..

Finance/업비트 2023.05.20

[파이썬] 업비트 티커 리스트 - 크롤링

아래의 코드를 실행시키면 KRW, BTC, USDT 마켓의 업데이트 된 티커를 크롤링해서 각각 'krw-market', 'btc-market', 'usdt-market'에 리스트로 저장한다. for문이랑 같이 쓰면 항상 언데이트된 코인 리스트로 전체 코인에 대해서 실시간 모니터링이 가능하겠지만, 호가 단위 하나에 10% 이상 차이가 나는 '비트토렌트(BTT)' 같은 코인이나, 상장한지 얼마되지 않은 코인들은 변동성이 커서 적당한 기준으로 필터링이 필요해 보인다. import urllib.request import json # 업비트 티커 url url = "https://api.upbit.com/v1/market/all" # 데이터프레임 입력용 krw_market = [] btc_market = [] u..

Finance/업비트 2023.05.17

[파이썬] 업비트 지표 구하기 - RSI(상대강도지수)

RSI란, Relative Strength Index의 약자로, 한국어로 역하면 상대간도지수하고 한다. RSI는 가격의 상승압력과 하락압력 간의 상대적인 강도를 나타내며, 일정 기간 동안 주가가 전일 가격에 비해 상승한 변화량과 하락한 변화량의 평균값을 구하여, 상승한 변화량이 크면 과매수, 하락한 변화량이 크면 과매도로 판단하는 방식이다. 계산방법은 주어진 기간의 모든 날의 주가에 대해서 아래와 같다. U = 가격이 전일 가격보다 상승한 날의 상승분 (Up) D = 가격이 전일 가격보다 하락한 날의 상승분 (Down) AU = U값의 평균 (Average Ups) AD = D값의 평균 (Average Downs) RS = AU / AD (Relative Strength) RSI = RS / (1 + R..

Finance/업비트 2023.03.06

[파이썬] 업비트 지표 구하기 - MACD(이동평균수렴·확산지수)

MACD란, Moving Average Convergence & Divergence의 약자로, 한국어로 번역하면 이동평균수렴·확산지수라고 한다. 기본적으로 장단기 이동평균선간의 차이를 이용하여 매매신호를 포착하려는 기법으로, 장기 이동평균선과 단기 이동평균선이 멀어지게 되면(Divergence) 언젠가는 다시 가까워져서(Convergence) 어느 시점에 서로 교차하게 되는 성질을 이용한 것이다. MACD는 기본적으로 단기 이동평균선에는 12일 지수이동평균을 사용하고, 장기 이동평균선에는 26일 지수이동평균선을 이용하므로, 앞에서 스터디한 이동평균선을 구하는 코드를 이용해서 쉽게 만들어낼 수 있는 지표 중 하나이며, MACD의 기본 공식은 아래와 같다. (이동평균 관련 코드는 블로그 하단 링크 참고) 1..

Finance/업비트 2023.02.23

[파이썬] 업비트 지표 구하기 - 가중이동평균(WMA)

가중이동편균(WMA) 역시 지수이동평균(EMA)과 같이 최근 데이터에 더 높은 가중치를 부여하는 이동평균이지만, 차이점은 가중치가 등차수열로 반영된다는 점이다. 아래의 코드는 일봉데이터 100개(100일)를 받아와서 30일 가중이동평균을 구하는 코드로, 지수이동평균을 구할 때와 비슷하게 가중이동평균을 계산하는 부분인 'wma_30 = df.ewm(alpha=1/30, min_periods=30).mean().iloc[-1]'에서 'alpha=1/30' 부분의 숫자 1/30을 1/60으로 바꾸고, 'min_periods=30' 부분의 숫자 30을 60으로 바꾸면 60일 가중이동평균을 구할 수 있으며, 120일 지수이동평균을 구하고 싶다면 'df = pyupbit.get_ohlcv(ticker, interv..

Finance/업비트 2023.01.15

[파이썬] 업비트 지표 구하기 - 지수이동평균(EMA)

지수이동편균(EMA)은 각 거래일의 종가에 동일한 가중치를 사용하는 단순 이동평균과는 달리, 최근 데이터에 더 높은 가중치(지수 가중치)를 부여하는 이동평균으로, 단순이동평균 보다 최근의 가격변동(추세)을 좀 더 많이 반영하는 지표이다. 아래의 코드는 일봉데이터 100개(100일)를 받아와서 30일 지수이동평균을 구하는 코드로, 단순이동평균을 구할 때와 비슷하게 지수이동평균을 계산하는 부분인 'ema_30 = df.ewm(span=30, adjust=False).mean().iloc[-1]'에서 'span=30' 부분의 숫자 30을 60으로 바꾸면 60일 지수이동평균을 구할 수 있으며, 120일 지수이동평균을 구하고 싶다면 'df = pyupbit.get_ohlcv(ticker, interval="day..

Finance/업비트 2023.01.14

[파이썬] 업비트 지표 구하기 - 단순이동평균(SMA)

이동평균선은, 주식시장이나 파생상품시장에서 기술적 분석을 할 때 쓰이는 기본 도구 중 하나이며, 풀네임보다는 줄여서 이평선이라고 많이 부른다. 거래액, 매매대금, 주가 등 다양한 분야에서 접목할 수 있는데, 과거의 평균적 수치에서 현상을 파악(주로 추세)하여 현재의 매매와 미래의 예측에 접목할 수 돕는 것이 목적으로 단순이평(SMA)이 자주 쓰이지만 지수평균(EMA), 가중평균(WMA) 등을 사용하는 경우도 있다. 아래의 코드는 일봉데이터 100개(100일)를 받아와서 30일 단순이동평균을 구하는 코드이다. 'sma_30 = df.rolling(30).mean().iloc[-1]'에서 'rolling(30)' 부분의 숫자 30을 60으로 바꾸면 60일 단순이동평균을 구할 수 있다. 만약에 120일 이동평..

Finance/업비트 2023.01.13
반응형