본문 바로가기
Like bot

[vscode/python] 업비트 API로 코인 등록, 지정시간 구매하기

by skyfishb 2023. 5. 5.

업비트 API 를 연결하고 코인을 등록해서 지정시간에 구매하는 코드를 챗GPT와 함께 만들어봅시다.

조금은 python 문법을 안다면 도움이 되는데, 안되면 챗GPT를 달래주며 물어보면 돌아가는 코드를 만들어줍니다.

 

 

이전 포스팅에서 업비트 API의 Access key와 Secret key를 코드에 입력해서 자산을 조회하는 코드를 vscode에서 돌려봤습니다. 이번에는 지정된 코인을 지정된 시간에 자동으로 구매가능한 코드를 만들어 보겠습니다.   

 

챗GPT와 코인매매 프로그램 만들기 1. 기본 코인 지정시간 매매

 

Q. 잘 동작하는걸 확인했어 ~
원하는 코인을 등록하고 지정된 시간에 구매를 할 수 있는 코드를 해줘
아침 7시에도 하고 저녁 10시에도 하고 가능하도록 해줘

 

A: 원하는 코인을 등록하고 지정된 시간에 자동으로 구매하는 코드는 다음과 같습니다

import time
import pyupbit

access_key = " "
secret_key = " "

upbit = pyupbit.Upbit(access_key, secret_key)

# 원하는 코인 종목 등록
coin_name = "KRW-BTC"  # 예시로 비트코인을 등록함

# 구매 조건 설정
buy_price = 10000  # 구매 가격 설정 (원)
buy_time = ["07:00:00", "22:02:50"]  # 구매 시간 설정 (아침 7시, 저녁 10시)

while True:
    try:
        now = time.strftime("%H:%M:%S")  # 현재 시간 구하기
        print(now)

        if now in buy_time:
            # 구매 가능 시간이면 구매 실행
            krw_balance = upbit.get_balance("KRW")
            print("current_balance: ", krw_balance)

            # 현재 코인의 가격을 조회합니다.
            current_price = pyupbit.get_current_price(coin_name)
            print("current_price of ", coin_name, ": ", current_price)

            if krw_balance >= buy_price:
                # buy_result=upbit.buy_market_order("KRW-SUI", buy_price)
                buy_result=upbit.buy_market_order(coin_name, buy_price)
                print(buy_result)

        time.sleep(1)
    except Exception as e:
        print(e)
        time.sleep(1)

위의 코드에 본인의 access key 와 secret key 를 입력하고, 

buy_price 에 가격 (원)이 현재는 10000원으로 설정되어 있는데 본인이 원하는 금액으로 수정하고

buy_time 에 시간을 수정하면 지정된 시간에 코인의 구매가 진행됩니다. 

VSCODE에서 코드 돌리기와 정지하기 (ctrl + C)

vscode에 새로 파일을 만들고 (확장자 .py 로 해야함)

코드를 붙여넣고 우측 상단에 실행버튼을 누르면 코드가 실행이 됩니다  

위의 코드는 1초마다 시간을 터미널에 print 하는데 정지를 하고 싶다면 터미널에 커서를 두고 ctrl C를 누르면 프로그램이 중간에 종료가 됩니다. 

 

챗GPT와 코인매매 프로그램 만들기 2. 여러개 코인 각자 지정시간, 금액 매매 

Q1. 한번에 여러 코인을 동시에 구매하고 싶어, 그렇게 코인 리스트있는 코드로 바꿔줄래?

GPT

# 구매하려는 코인 리스트 등록
coin_list = ["KRW-BTC", "KRW-ETH", "KRW-XRP"]

Q2. 코인 리스트에 등록된 코인들의 각각의 구매시간을 다르게 설정하고 싶어, 코드 업데이트해줘

GPT

# 구매하려는 코인과 구매 시간 딕셔너리 등록
coin_dict = {"KRW-BTC": ["09:00:00", "15:00:00"],
             "KRW-ETH": ["10:00:00", "16:00:00"],
             "KRW-XRP": ["11:00:00", "17:00:00"]}

Q3. 각각의 코인별로 구매 가격도 달라야해서 그것도 업데이트 해줘

GPT

import time
import pyupbit

access_key = " 발급받은 키 추가 "
secret_key = " 발급받은 키 추가 "

upbit = pyupbit.Upbit(access_key, secret_key)

# 구매하려는 코인과 구매 시간, 구매 가격 딕셔너리 등록
coin_dict = {"KRW-BTC": {"buy_time": ["09:00:00", "15:00:00"], "buy_price": 10000},
             "KRW-ETH": {"buy_time": ["10:00:00", "16:00:00"], "buy_price": 10000},
             "KRW-SUI": {"buy_time": ["22:43:50", "17:00:00"], "buy_price": 6000}}

while True:
    try:
        now = time.strftime("%H:%M:%S")  # 현재 시간 구하기
        print(now)

        for coin_name in coin_dict:
            if now in coin_dict[coin_name]["buy_time"]:
                print("coin_name - ", coin_name)
                # 구매 가능 시간이면 구매 실행
                krw_balance = upbit.get_balance("KRW")
                print("current_balance: ", krw_balance)

                coin_balance = upbit.get_balance(coin_name.split("-")[1])

                if krw_balance >= coin_dict[coin_name]["buy_price"]:
                    # KRW 잔고가 구매 가격 이상이면 구매
                    buy_result = upbit.buy_market_order(coin_name, coin_dict[coin_name]["buy_price"])
                    print(buy_result)
        time.sleep(1)
    except Exception as e:
        print(e)
        time.sleep(1)

 

본인의 API 키를 입력하고 코인의 구매 시간 가격을 설정하면 자동으로 구매가 되는 코드가 완료 되었습니다. 

이제 바이낸스 선물 API로 선물 봇을 만들어 봅시다.

 

by. skyfishb

댓글