inflearn logo
강의

Course

Instructor

Bitcoin Algorithm Trading Bot Development

매수 금액설정

426

YunHo Lee

2 asked

0

안녕하세요.

강의를 다 본 뒤 코드를 작성하고 업비트에서 실제로 매수 매도를 진행해보니 매수할 금액이 부족하면 오류가 발생하여 봇 작동이 멈췄습니다. 저는 매수할 금액이 부족하더라고 봇은 계속 돌아가서 매도는 진행하고 싶은데 혹시 어떤 코드를 추가하면 되는건지 궁금합니다.

퀀트 pandas 투자

Answer 3

1

multicoreit

def get_chance(up, coin_name): 함수를 정의하는 부분은 trade.py 파일에 넣으시고,

계좌상태를 조회하는 코드는 다음과 같이 매수시작하기 전에 넣어서 체크하는게  좋을 것 같습니다.

---------------------------------------------------------------------------------------------

        #매수 시작

        message, balance, locked = get_chance(up, coin_name) 

        print(message, balance, locked)

        is_chance = True or False #주문 금액과 주문가능 금액을 체크해서 주문가능 금액이 크다면 True 아니면 False

        if buy_cnt <= buy_cnt_limit and close < bl and long_term_cond == 1 and is_chance == True:

---------------------------------------------------------------------------------------------

감사합니다.

0

yoon

정말 세세하게 알려주셔서 잘 적용했습니다!

0

yoon

안녕하세요

답변해주신 해당 코드를 robobits_adv2.py 파일에 적용하고 싶은데,

혹시 어느 부분에 첨부를 해야 할까요?

0

multicoreit

안녕하세요 YunHo Lee님.

수강해주셔서 감사합니다.

 

매수할 금액이 부족할 때 다음과 같은 코드를 사용하시면 오류를 방지할 수 있습니다.

현재 주문가능 금액(balance)을 조회해서 주문금액(주문하려는 금액)과 비교하시면 됩니다.

 

if 주문가능금액 > 주문금액:

주문

else :

print("잔고가 부족합니다.")

코드를 첨부합니다.

감사합니다.

 

-------------------------------------------------------------------

import pyupbit

import comm.config as conf

 

access = conf.G_API_KEY

secret = conf.G_SECRET_KEY

coin_name = 'KRW-KRW'

up = pyupbit.Upbit(access, secret)

 

def get_chance(up, coin_name): #코인별 계좌상태 조회

    message = ''

    result = 'none'

    trade_coin = 'none'

    balance = 0

    locked = 0

    result = up.get_chance(coin_name)

 

    try:  # error mess

        # age check

        message = result[0]['error']['message']

    except:  # no error message -> normal state

        if message == '':

            message = 'good'

 

    try:

        if message == 'good':

            balance = float(result['bid_account']['balance'])

            locked = float(result['bid_account']['locked'])

 

    except:

        balance = -1

    return message, balance, locked

 

#balance:주문가능 금액, locked:미체결 주문금액 

message, balance, locked = get_chance(up, coin_name) 

print(message, balance, locked)

-------------------------------------------------------------------

0

YunHo Lee

감사합니다!

바이낸스 오픈 API가 없습니다..

0

246

1

ta 모듈을 못 찾습니다

0

480

1

데이터수집하기 오류

0

330

1

베이지안에서 질문있습니다.

0

288

2

바이낸스 오픈 API 깃허브 링크

0

759

1

데이터 수집하기 오류 질문

0

487

1

BinanceApiException

0

577

2

target 값 0

0

273

1

This access key is incorrect.

0

553

2

현재가 가져올때 request를 사용하는 이유

0

444

3

error code 400 관련 질문

0

317

1

'NoneType' object is not subscriptable 오류 문의 (robobits.py)

0

297

1

부분 매수로 인한 check_open_cnt 문제

0

243

1

리눅스에서 파이썬 실행하기

1

2283

1

업비트 아이디 1개로 robobits.py 파일을 몇개까지 실행 할 수 있을까요?

0

300

1

robobits_adv2.py 파일에서 TypeError: 'NoneType' object is not subscriptable 오류 발생하면서 멈췄어요.

0

903

2

로그기록을 파일로 저장 하고 싶습니다.

0

997

1

오픈건수가 아닌 자산비율 100%구매방법

0

274

1

리플 뿐만이 아닌 다른 종목들

0

233

1

1분 데이터를 끌어올 수 없습니다

0

259

1

module not find 에러 문의

0

283

2

read_json오류 문의

0

467

2

WMAIndicator에서 오래 걸리는게 정상인가요?

0

213

1

pbound 관련 질문드립니다.

0

233

1