인프런 커뮤니티 질문&답변

이쪽저쪽살짝님의 프로필 이미지

작성한 질문수

비트코인 알고리즘 트레이딩 봇 개발

볼린저 밴드를 활용한 트레이딩 알고리즘

다중 실행에 관한 질문

21.11.22 13:31 작성

·

234

0

안녕하세요 강사님

귀한 강의 잘 보고 있습니다.

질문이 있어서 글올립니다.

올려주신 코드파일을 테스트로 돌리고 있는데 robobits_bb.py와 robobits_adv2.py 파일을 3~4개 정도 생성해서 서로 다른 코인으로 동시에 실행 시키니  

 

이 부분에서 에러가 발생합니다. 제가 아직 파이썬에 익숙치 않아 이해가 잘안되네요. 제 추축엔 업비트api를 동시에 여러번 호출해서 업비트에서 차단함으로써 값을 제대로 못받아 오는 느낌입니다. 혹시 해결법이 있는지 알고 싶습니다. 감사합니다.

답변 1

0

멀티코어님의 프로필 이미지
멀티코어
지식공유자

2021. 11. 24. 09:20

안녕하세요 이쪽저쪽살짝님.

해당 오류는 하나의 코인만 실행해도 아주 가끔식 발생하는 오류입니다. 제가 이 부분에 대한 오류 처리를 하지 않았던 것 같습니다. 물론 여러 코인을 실행하면 이쪽저쪽살짝님의 의견처럼 동일 오류가 좀 더 빈번하게 발생하게 됩니다. 코드를 다음과 같이 수정하시는 것을 추천드립니다.

 

trade.py > get_balances 함수

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

    try:

        if message == 'good':

            for temp in result:

                if temp['currency'] == trade_coin:

                    buy_amt = temp['balance']

                    buy_price = temp['avg_buy_price']

    except:

        buy_amt = -1

        buy_price = -1

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

반환값으로 -1을 받으면 오류가 발생했다고 생각하시고, 다시 한번  get_balances 함수를 호출하시면 됩니다.

 

비트코인 거래소에서는 대량의 트래픽을 방지하기 위한 다양한 장치를 두고 있는데, 반복적은 API 호출 시 오류를 발생시키는 것이 대표적입니다. 다수의 코인을 동시에 실행시키신다면 실행할 때 코인별로 시간 간격을 조금 두시는 것이 좋을 것 같습니다. 본 강의에서 제공하는 알고리즘은 1분 단위로 실행하는 것이기 때문에 시간 간격을 잘 조절하시면 큰 무리없이 실행이 가능합니다.

감사합니다.