본문 바로가기

주식투자/투자도움받기

파이썬(python) 주식 자동매매 프로그램 만들기 - 1-2. 크레온 API 연결


주식 자동매매 프로그램은 유료로 판매되는 마운티, 오토핫키 등 다양한 것들이 이미 시중에 나와 있습니다. 하지만 제가 자동매매프로그램을 직접 만들기로 결심한 것은 저만의 로직으로 만들어진 로봇을 만들기 위함입니다.

지난번 세계미래보고서 2021에서 나온 한 구절을 보면 이미 미국 주식시장의 95%는 프로그램이 매매를 하고 있고, AI와 딥러닝을 앞세운 로봇들이 사람의 주관적인 감정은 배제한체 최적의 수익률을 내기위해 지금도 돌아가고 있다라고 합니다.

프로그래밍이 이제는 IT고유물이 아니며, 누구든 복사&붙여넣기로 혹은 조금의 수정만으로도 제작을 할 수 있는 환경이 되었기 때문에 생각이 있으신 분이라면 파이썬으로 주식 자동매매 프로그램을 만들어보시기 바랍니다.

 

이번에는 지난번에 프로그래밍을 진행하기 위해서 필요한 기본적인 프로그램 VSCode와 Python 릴리즈 설치 파일을 모두 설치하고 환경셋팅을 마무리 하였습니다.

이번에는 증권사와 연결시키는 작업을 해보도록 하겠습니다. 자동매매프로그램이라도 증권사에 로그인은 해야할 것이고, 증권사로부터 정보를 받아와야하기 때문에 증권사 API와 연결은 필수입니다.

파이썬(python) 주식 자동매매 프로그램 만들기 - 1-2. 크레온 API 연결

 

 

목  차

     

    1. 파이썬과 가장 호환성이 좋은 대신증권 API 연동

    증권사 중에서 API를 제공하는 곳은 키움증권, 대신증권, 이베스트증권 3곳이 있습니다. 물론 대부분의 개인투자자들이 키움증권을 많이 사용하지만, 파이썬과는 호환성이 좋은 대신증권을 사용하시는 것이 좋을 것입니다.

    기본적인 계좌개설등은 비대면으로 할 수 있기 때문에 굳이 별도로 설명은 하지 않고 프로그램 중심으로만 설명을 진행해보겠습니다. (당연히 가입하고 계좌를 개설해야하는 것은 기본이겠지요?)

    그리고 뒤에가서 설명하겠지만 대신증권의 크레온의 경우 파이썬 API를 활용하는 다양한 예제도 제공되기 때문에 손쉽게 프로그래밍을 진행할 수가 있습니다.

     

    다운로드센터 - 크레온

    보다 안전한 주식거래를 위해서는 보안프로그램 설치 및 다운로드 받으세요.

    money2.creontrade.com

    크레온 다운로드센터에서 [CREON HTS]를 다운 받자

    위의 다운로드 센터에 들어가보면 그림과 같이 다양한 설치프로그램들이 보이는데, 실제로 필요한 것은 [CREON Plus]입니다. 하지만 HTS를 설치하면 홈트레이딩 시스템 뿐만 아니라 CREON PLUS도 동시에 이용할 수가 있기 때문에 HTS를 받아서 설치를 해줍니다.

    그리고 실행을 시키면, 로그인 창 위에 CREON PLUS라고 별도로 표시가 되어진 탭을 선택을 하면 CREON PLUS(크레온 플러스 API)로 접근을 할 수가 있습니다.

    크레온 플러스 로그인 화면

    그렇게 접속이 완료가 되고나면 아래와 같은 화면이 나오면서, 크레온 플러스에 대한 공지사항과 자료실(오픈된 소스코드 활용 게시판) 등이 있는 웹화면이 나옵니다. 아래와 같은 화면이 나오면 정상적으로 접속이 완료된 것입니다.

    크레온 플러스 접속 완료 화면

    그렇게 접속이 완료가 되고나면, 우측 시계쪽 시스템 트레이 영역에 크레온 플러스가 보라색모양으로 정상적으로 실행이 되고 있는 것이 보일 것입니다. 

    시스템 트레이 영역에 크레온 플러스가 정상적으로 실행되고 있는 모습

    그러면 이 시스템트레이 아이콘에 마우스 오른쪽 버튼을 클릭하고 몇가지 설정을 해줍니다. 이번에 해주는 설정은 크게 2가지 인데 주문 오브젝트 사용 동의를 선택하는 것과 주문내역 확인 설정에서 체크박스를 해제해주는 것입니다.

    주문 오브젝트 사용 동의는 크레온 API를 사용해서 주문관련된 명령어를 실행하겠다는 의미이며, 체크박스를 해제하는 것은 주문이 실행되거나 하면 계속해서 알람창이 오게되는데 이부분이 귀찮고 계속 확인버튼이 뜨기 때문에 해제해주는 것입니다.

    크레온플러스에서 우클릭해서 주문 오브젝트 사용동의 + 주문내역 확인 설정을 실행한다
    주문내역 확인 체크박스를 해제한다.

    자! 이제 크레온 플러스와 관련된 설정은 모두 끝이 났습니다. 이제는 크레온플러스를 통해서 나의 프로그램이 정상적으로 주식종목 정보를 받아오는지만 확인하면 되겠지요.

     

    2. 크레온플러스 자료실의 소스코드로 테스트 해보기

    일단 크레온플러스와 API를 테스트 해보기 전에 VSCODE에 접속해서 라이브러리를 하나 설치를 해주도록 하겠습니다. 바로 크레온 플러스 접속 과정을 자동화하는 파이윈오토 라이브러리입니다.

    라이브러리를 설치하는 방법은 아래와 같습니다. 명령창에 아래와 같이 입력해주면 됩니다. 필요한 라이브러리가 나중에도 지속적으로 나오긴 하는데 이랃ㄴ 아래의 2개는 먼저 설치하도록 하겠습니다.

    pip install pywinauto
    pip install pywin32

    pywinauto 라이브러리 설치 명령어 입력

    자 위의 라이브러리 설치가 끝났다면, 아까 크레온플러스 최초 접속했을때 나왔던 웹페이지 화면에서 자료실로 이동해서 파이썬 예제 리스트가 있는 곳으로 이동합니다.

    크레온플러스 자료실 > 파이썬

    위와 같이 파이썬을 활용해서 크레온플러스와 동작하는 다양한 주식주문 예제들이 포함되어져 있습니다. 저희는 이중에서 제일 앞에 있는 기본 예제부터 돌려보고 정상적으로 동작하는지 보도록 하겠습니다.

    파이썬 자료실의 1번 종목정보 구하는 예제를 찾아 실행한다.

    첫번째 [파이썬] 종목정보 구하는 예제 라는 제목의 글이 있는데요. 해당 글에 들어가면 소스코드가 보이고 이것을 그대로 복사해서 사용만 하면됩니다. 

    소스코드는 아래와 같습니다. 

    import win32com.client
     
     
    # 연결 여부 체크
    objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
    bConnect = objCpCybos.IsConnect
    if (bConnect == 0):
        print("PLUS가 정상적으로 연결되지 않음. ")
        exit()
     
    # 종목코드 리스트 구하기
    objCpCodeMgr = win32com.client.Dispatch("CpUtil.CpCodeMgr")
    codeList = objCpCodeMgr.GetStockListByMarket(1) #거래소
    codeList2 = objCpCodeMgr.GetStockListByMarket(2) #코스닥
     
     
    print("거래소 종목코드", len(codeList))
    for i, code in enumerate(codeList):
        secondCode = objCpCodeMgr.GetStockSectionKind(code)
        name = objCpCodeMgr.CodeToName(code)
        stdPrice = objCpCodeMgr.GetStockStdPrice(code)
        print(i, code, secondCode, stdPrice, name)
     
    print("코스닥 종목코드", len(codeList2))
    for i, code in enumerate(codeList2):
        secondCode = objCpCodeMgr.GetStockSectionKind(code)
        name = objCpCodeMgr.CodeToName(code)
        stdPrice = objCpCodeMgr.GetStockStdPrice(code)
        print(i, code, secondCode, stdPrice, name)
     
    print("거래소 + 코스닥 종목코드 ",len(codeList) + len(codeList2))
    

     위 소스코드를 vscode에 새로운 파일을 하나 test.py이라고 생성을 하고 붙여넣기를 해줍니다. 그리고 파일을 저장을 하고, 터미널 창에 python test.py 라고 입력을 해줍니다.

    python test.py

    정상적으로 동작을 한다면 종목정보가 쭈~욱 나열이 되면서 아래오 같이 출력되는 것을 확인할 수 있을 것입니다.

    정상적으로 크레온 플러스와 접속하여 출력된 종목정보

    반응형


    Visitor : 2,100,573
    POWERED/DESIGN/COPYRIGHTⓒ BY JJISSO