inflearn logo
강의

Course

Instructor

Bitcoin Algorithm Trading Bot Development

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

903

yoon

17 asked

0

베이지안 최적화로 파라미터를 찾은다음 robobits_adv2.py를 구동 해봤습니다.

잘 되나 싶더니 10시간 정도 돌아가면서 매수 매도를 진행하다가 갑자기 봇이 멈추더라구요.

로그파일을 보니 아래와 같은 에러 메시지가 나옵니다.

이것만 해결하면 봇이 안 멈추고 24시간 동안 돌아갈 것 같은데... 

이런 경우 어떻게 해결 할 수 있을까요? 

퀀트 투자 pandas

Answer 2

1

multicoreit

현재 최신소스를 사용하고 계시네요.

제가 프로그래밍할 때 발생하지 않았던 오류가 yoon님 운영환경에서 발생하는 것 같습니다.

처리 프로세스는 다음과 같습니다. 

1. 매수처리하고 결과 받기 result = up.buy_limit_order(coin_name, price, amt) 

2. result 변수에 저장된 메시지에서 오류가 발생하지 않으면(result['error']['message']가 정상적으로 처리되지 않는 경우) 

3. result 변수에서 uuid를 찾아서(uuid = result['uuid']) 반환

 

yoon님 운영환경에서는 오류 메시지가 없음에도 불구하고 반환값에 uuid가 없는 경우(정상적으로 매수가 되지 않는)인 것 같습니다.

오류를 방지하기 위해 다음과 같이 처리해야할 것 같습니다.

 

    try: #error message check

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

    except: #no error message -> normal state

        if message == '':

            message = 'good'

            try:

                uuid = result['uuid']

            except: 

                message = 'unknown error'

                uuid = ''

 

감사합니다.

0

yoon

멀티코어님,

왜 오류가 발생하는지 설명도 해주시고 해결도 해주셔서 정말 감사드립니다.

알려주신대로 코드 수정 했습니다.

ubuntu20.04 환경에 python3.7.7 버전 사용중인데, 일단 코드 수정 해 놓은 상태에서 왠만하면 이 운영환경을 유지해야 할 것 같아요.

정말 감사드립니다!

추가 강의 제작을 하신다고 들었는데, 강의 나오면 추가 결제 바로 하겠습니다^^

0

multicoreit

지금 사용하시는 buy_limit_order 함수 소스 코드를 알려주세요

0

yoon

아래와 같습니다.

 

#지정가 매수

def buy_limit_order(up, coin_name, price, amt):

    message = ''

    uuid = 'none'

    result = {'uuid': ''}

 

    try: 

        result = up.buy_limit_order(coin_name, price, amt)

    except:

        message = "{}".format(sys.exc_info())

 

    try: #error message check

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

    except: #no error message -> normal state

        if message == '':

            message = 'good'

            uuid = result['uuid']

 

    return message, uuid

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

0

247

1

ta 모듈을 못 찾습니다

0

482

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

554

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

2285

1

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

0

300

1

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

0

999

1

매수 금액설정

0

426

3

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

0

274

1

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

0

233

1

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

0

261

1

module not find 에러 문의

0

285

2

read_json오류 문의

0

470

2

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

0

215

1

pbound 관련 질문드립니다.

0

234

1