본문 바로가기
주식/주식자동매매

크레온플러스 API 주식 자동매매 프로그램 다양한 오류 해결 방법

by 날아라키위새 2021. 6. 26.
반응형

크레온플러스 파이썬 API를 이용해서 주식 자동매매 스크립트를 돌리고 있는데

오류가 발생해서 스크립트 실행이 안되거나 중간에 작동을 중지하는 경우가 있다.

매도 타이밍 놓쳐서 몇 번 손해 본 적 있다. 환장한다.

다운로드 오류 (NCFSYS,-1)

Plus 공통모듈의 작동이 중지되었습니다.

등등

 

크레온플러스 오류가 발생하는 이유와 해결책은?

1. 먼저 관리자 권한으로 실행을 안 했을 때 에러가 발생할 수 있다.

 - 파이썬을 관리자 권한으로 실행하면 해결 가능하다.

 

2. 파이썬 작업 폴더, 파이썬 파일 등이 원드라이브 구글 드라이브 같은 클라우드로 싱크하고 있는 경우

 - 작업 폴더나 파이썬 파일을 클라우드 동기화 안 하는 위치로 옮기거나 동기화를 중지한다.

 

3. 비주얼스튜디오, 파이참같은 IDE를 실행하고 있는 경우

 - IDE에서 파이썬 관련 파일들을 액세스하고 있는 경우가 있어서 에러가 발생하는 것으로 보인다. 자동매매 실행 시에는 IDE를 저장하고 종료시켜놓자. 

 

4. 크레온플러스를 24시간 실행하는 경우

 - 크레온플러스는 한국시간으로 매일 오전 6시 전후 서버 점검이 이루어진다. 그렇기 때문에 매일 정해진 시간에 크레온플러스에 접속하는 파이썬 스크립트만 만들게 아니라 장이 끝나고 크레온플러스를 종료시키는 스크립트도 만들면 해결 가능하다. 

 

5. 자동매매 스크립트에서 서버에 다량의 데이터를 요청하는 기능이 있는 경우

 - 크레온플러스 API 마다 서버에 요청 가능한 시간별 데이터양이 정해져 있다. 기준 초과 시 서버 측에서 접속을 끊어버릴 수 있다. 해결방법으로는 최대한 서버에 부담을 적게 주는 매매 알고리즘을 이용하거나 time.sleep() 같은 기능을 이용하여 일정 딜레이를 두며 서버에 데이터를 요청한다. 

 

6. 그 외 알 수 없는 에러들

 - 컴퓨터 환경과 인터넷 환경에 따라 알 수 없는 에러가 발생할 수 있다. 

실제로 원인을 알 수 없는 에러로 스크립트가 작동을 중지하거나 하는 경우가 있었는데

이를 해결하기 위한 방안으로 buy_stock()이라는 함수가 있을 때 에러가 발생하는 경우

check_system_and_reconnect()라는 함수에 크레온플러스 서버 접속을 확인하고 접속이 끊어진 경우 재 실행하는 함수가 작동하게 만들어 놓았다. 

 

def buy_stock(code):
    try:
    
    	매수하는 코드
        
    except Exception as ex:
        print('buy_stock() -> 에러발생! ' + str(ex))
        check_system_and_reconnect()

 

블루스크린같은 웬만한 에러가 아닌 이상 해결 가능했다. 그래도 재 접속하는 시간 동안 매수/매도 타이밍을 놓칠 수 있지만. 완전 뻗어버리는 거보다는 훨씬 낫다고 생각한다.

 

관련 글:

주식 자동매매 프로그램 변동성 돌파 전략 단점 업그레이드 하기 (대신증권 크레온 플러스 파이썬 API)

 

 

반응형

댓글