0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")"> 0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")"> 0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")">
import requests
def get_ticker_price(market):
url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
response = requests.get(url)
data = response.json()
if len(data) > 0:
return data[0]['trade_price']
return None
eth_price = get_ticker_price("KRW-ETH")
btc_price = get_ticker_price("KRW-BTC")
if eth_price is not None and btc_price is not None:
print(f"이더리움 가격: {eth_price} KRW")
print(f"비트코인 가격: {btc_price} KRW")
else:
print("가격 정보를 가져올 수 없습니다.")
import requests
def get_ticker_price(market_code):
url = f"<https://api.upbit.com/v1/ticker?markets={market_code}>"
response = requests.get(url)
data = response.json()
if data:
return data[0]['trade_price']
return None
def get_tickers():
url = "<https://api.upbit.com/v1/market/all>"
response = requests.get(url)
data = response.json()
tickers = [market['market'] for market in data if market['market'].startswith("KRW")]
return tickers
def main():
tickers = get_tickers()
print("사용 가능한 코인 목록:")
for ticker in tickers:
print(ticker)
while True:
user_input = input("시장 코드를 입력하세요 (예: KRW-BTC) 또는 'quit'를 입력하여 종료: ")
if user_input == 'quit':
break
if user_input in tickers:
coin_price = get_ticker_price(user_input)
if coin_price is not None:
print(f"{user_input}의 가격: {coin_price}")
else:
print(f"{user_input} 가격을 가져올 수 없습니다.")
else:
print(f"유효하지 않은 시장 코드입니다. 올바른 코드를 입력하거나 'quit'를 입력하여 종료하세요.")
if __name__ == "__main__":
main()
달 기준으로 상승률/하락률
import requests
from datetime import datetime, timedelta
def get_monthly_candles(market, count):
url = f"<https://api.upbit.com/v1/candles/months?market={market}&count={count}>"
response = requests.get(url)
data = response.json()
return data
def calculate_monthly_changes(candles):
changes = []
for i in range(len(candles) - 1):
current_candle = candles[i]
prev_candle = candles[i + 1]
price_change = (current_candle['trade_price'] - prev_candle['trade_price']) / prev_candle['trade_price'] * 100
changes.append(price_change)
return changes
market = "KRW-ETH"
candle_count = 36 # 3년치 데이터 (12개월 * 3년)
candles = get_monthly_candles(market, candle_count)
price_changes = calculate_monthly_changes(candles)
for i, change in enumerate(price_changes):
month_ago = datetime.strptime(candles[i]['candle_date_time_utc'], "%Y-%m-%dT%H:%M:%S") - timedelta(days=30)
print(f"{month_ago.strftime('%Y-%m')}: {change:.2f}%")
import requests
import matplotlib.pyplot as plt
from datetime import datetime
def get_monthly_candles(market, count):
url = f"<https://api.upbit.com/v1/candles/months?market={market}&count={count}>"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
data = response.json()
return data
def monthly_chages(candles):
chages = []
for i in range(len(candles)-1):
current_candles = candles[i]
prev_candles = candles[i+1]
price_chages = (current_candles['trade_price'] - prev_candles['trade_price'])/prev_candles['trade_price'] * 100
chages.append(price_chages)
return chages
market = "KRW-ETH"
candle_count = 36
candles = get_monthly_candles(market, candle_count)
price_changes = monthly_chages(candles)
dates = []
for i, change in enumerate(price_changes):
month_ago = datetime.strptime(candles[i]['candle_date_time_utc'], "%Y-%m-%dT%H:%M:%S")
print(f"{month_ago} 변동률 : {change:.2f}%")
dates.append(month_ago)
plt.figure(figsize=(10, 6))
plt.plot(dates, price_changes, marker='o', linestyle='-', color='b')
plt.xlabel('day')
plt.ylabel('changes (%)')
plt.title('ETH up/down')
plt.xticks(rotation=45)
plt.grid(True)
plt.tight_layout()
plt.show()
streamlit에 목록화 하여 출력하
import streamlit as st
import requests
def get_ticker_price(market):
url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
data = response.json()
return data[0]['trade_price']
def get_tickers():
url = "<https://api.upbit.com/v1/market/all>"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
data = response.json()
tickers = []
for market in data:
if market['market'].startswith("KRW"):
tickers.append(market['market'])
return tickers
def main():
st.title("업비트 코인 가격 조회")
tickers = get_tickers()
selected_ticker = st.selectbox("코인 목록:", tickers)
if selected_ticker:
coin_price = get_ticker_price(selected_ticker)
st.write(f"{selected_ticker} 의 가격: {coin_price}")
else:
st.write("코인을 선택해주세요.")
if __name__ == "__main__":
main()
멀티 선택으로 수정
import streamlit as st
import requests
import time
def get_ticker_price(market):
url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
data = response.json()
return data[0]['trade_price']
def get_tickers():
url = "<https://api.upbit.com/v1/market/all>"
headers = {"accept": "application/json"}
response = requests.get(url, headers=headers)
data = response.json()
tickers = []
for market in data:
if market['market'].startswith("KRW"):
tickers.append(market['market'])
return tickers
def main():
st.title("업비트 코인 가격 조회")
tickers = get_tickers()
selected_tickers = st.multiselect("코인 목록:", tickers)
if not selected_tickers:
st.write("코인을 선택해주세요.")
else:
st.write("선택된 코인들의 가격:")
for selected_ticker in selected_tickers:
coin_price = get_ticker_price(selected_ticker)
st.write(f"{selected_ticker} 의 가격: {coin_price}")
if __name__ == "__main__":
main()