NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    스크립트 1부 - 엔지엠 RPA 매크로의 주식 호가창 모니터링 하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은~ 주식 호가창을 모니터링하는 방법에 대해 알아볼건데요. 주식 호가창을 실시간으로 확인할 수 있는 방법이 없어서 비트코인으로 예제를 만들었습니다. 이 예제를 학습하려면 아래 사이트에 접속해서 비트코인 시세를 확인할 수 있어야 합니다. 실시간으로 시세를 확인할 수 있는 사이트가 여러개 존재하지만~ 간단하게 확인할 수 있는 코인원에서 테스트합니다.

    [ 코인원 ]

    WRWm7KU.gif

     

     

    웹페이지라서 엔지엠 에디터의 웹 API를 사용해서 처리할수도 있지만, 주식 호가창을 모니터링하려면 문자 판독(OCR)을 사용해야 합니다. 대부분 키움증권, 삼성증권, 한국투자증권등등... 증권사에서 제공하는 HTS와 같은 윈도우 프로그램을 사용하기 때문입니다. 그래서, 이 예제도 웹 API가 아닌 OCR을 사용하도록 하겠습니다. 엔지엠 에디터를 실행하고, 새로운 스크립트를 생성하세요. 그리고, [ OCR 체크 ] 액션을 추가 해줍니다.

    9tIPMgq.png

     

     

    아래 동영상을 참고해서 문자를 판독할 위치를 선택해줍니다. 그리고, 숫자를 읽어야 하기 때문에 숫자 사용 속성을 True로 변경해주세요. 에디터의 하단에 결과를 확인해보면, 코인 시세가 "76296000"와 같이 정상적으로 읽어진걸 알 수 있습니다. 하지만, 시간이 생각보다 오래 걸렸죠? "Runtime: 00:00:01.025"와 같이 대략 1초정도 소요되었습니다.

    lu5S0SD.gif

     

     

    속도를 더 빠르게 하기 위해 모델 선택 속성을 Fast로 변경하고, 다시 실행 해보세요. Runtime: 00:00:00.079와 같이 0.1초도 안걸려서 숫자를 정확하게 읽어냈습니다.

    nCc46rz.png

     

     

    모니터링을 위해 반복해서 숫자를 읽어내야 하겠죠? 엔지엠 RPA 매크로에서 반복하는건 여러가지 방법이 있습니다. [ For 반복 ], [ Foreach 반복 ], [ 액션 반복 ], [ 액션 이동 ]입니다. 여기서 무한으로 반복하기 위해 액션 이동을 사용하도록 하겠습니다. 아래와 같이 아이디를 설정하고, 액션 이동에서 선택하세요. 실행하면 무한으로 반복하면서 비트코인 시세를 읽어옵니다.

    8TlH6xq.gif

     

     

    내가 원하는 값보다 크면~ 알람을 발생하도록 하겠습니다. 숫자를 체크하기 위해 비트코인 값을 저장할 [ 변수 ]와 숫자를 체크할 [ 숫자 체크 ] 액션을 하나씩 추가 해줍니다. 그리고, 변수 추가 액션의 아이디를 "비트코인시세"로 설정 해줍니다.

    Pc56WX9.png

     

     

    아래 동영상처럼 비트코인 시세를 읽어온 OCR 체크의 값을 변수에 저장해줍니다. 변수 이름을 선택하고, 판독 문자의 값을 저장합니다.

    nNT6ciO.gif

     

     

    아래 동영상은 OCR 체크에서 읽어온 비트코인 시세 값을 변수에 추가하는 방법입니다. 그리고, 숫자 체크에서 변수에 저장된 값을 가져와서 내가 원하는 값과 비교할 수 있도록 설정 했습니다. 비교 대상 숫자와 비교할 숫자에 값이 입력되고, 비교 조건 속성에서 GreaterThen(비교할 숫자가 비교 대상 숫자보다 크다)으로 변경해줍니다.

    tn4wW0w.gif

     

     

    숫자 체크 액션의 비교 결과가 정상적으로 표시되는지 확인하기 위해 무한 반복되는 루틴을 탈출해야 합니다. 아래 동영상을 참고해서 [ 그룹 ] 액션을 하나 추가하고 참인 경우  마지막으로 이동할 수 있도록 설정 해줍니다.

    am5AJqb.gif

     

     

    테스트를 위해 아래 동영상처럼 숫자 체크 액션의 속성을 변경하고 실행 해봤습니다. 현재 7천 5백만원에서 왔다갔다 하기 때문에 비교 대상 숫자를 7천 5백만원으로 설정했습니다. 7천 5백만원보다 시세가 높기 때문에 조건에 만족하고, 종료 그룹 액션으로 이동하면서 스크립트가 완료됩니다.

    cgj3QjV.gif

     

     

    이제 알람을 발생시키기 위한 액션을 추가 해줘야 하는데요. 알람은 [ 소리 알람 ]과 [ 화면 알람 ]이 있습니다. 소리 알람은 이 테스트에서 확인할 수 없으므로 화면 알람을 사용하도록 하겠습니다. 아래 그림과 같이 마지막에 화면 알람을 추가하세요. 스크립트를 실행하면 아래 동영상처럼 화면이 깜박임을 확인할 수 있습니다.

    xUdHwvr.gif

     

     

    만약, 텔레그램이나 카카오톡으로 알람을 받고 싶다면 아래와 같이 설정할 수 있습니다. 우선, 텔레그램으로 메시지를 받는 방법입니다. 아래 그림과 같이 텔레그램 [ 연결 ]과 [ 전송 ] 액션을 추가 해주세요. ①연결을 ②스크립트 최상단에 위치 시킵니다. ②전송은 ④스크립트 하단에 위치 시키세요. 이 내용을 학습하려면 텔레그램 계정이 필요합니다. 자세한 내용은 [ 여기 ]를 참고하세요.

    gpmVdIr.png

     

     

    텔레그램으로 보낼 메세지는 현재 코인의 시세입니다. 아래 동영상처럼 변수 값을 메세지로 설정하세요.

    SLZAnZO.gif

     

     

    스크립트를 실행하면 아래 동영상처럼 텔레그램으로 알람 메세지를 받을 수 있습니다.

    5MndDJJ.gif

     

     

    대충 완성된듯 보이지만~ 여러가지 고려해야 할 사항들이 있습니다. 주식이나 선물 또는 비트코인 시세가 하락세일 때 메세지가 무한으로 보내지는것을 방지해야 합니다. 그렇기 때문에 추가적으로 방어 로직을 추가해야 하는데요. 알람이 한번 발생하면 스크립트를 중지하고, 뭔가 처리 후 다시 실행하도록 해야 합니다. 아래 동영상과 같이 스크립트를 다시 실행할 수 있습니다. 텔레그램에서 /help 또는 /h로 명령어들을 확인할 수 있습니다. 원격으로 스크립트를 실행하려면 /p:스크립트 이름을 입력하세요.

    WhKd7RL.gif

     

     

    원격제어는 스마트폰뿐만 아니라 스마트워치에서도 가능합니다. 당연한 이야기겠지만, 집에서 모니터링중인 주식 또는 코인 시세를 보다가 텔레그램으로 메세지를 받으면 회사 또는 사무실에서 매매 후 다시 실행시키면 됩니다. 간단하게 스크립트 이름만 입력하면 됩니다. 알람을 카카오톡으로 받고 싶으면 [ 여기 ]에서 모듈을 추가해서 쉽게 개발할 수 있습니다. 비활성이 아니더라도 카카오톡을 실행시켜놓고, [ 텍스트 쓰기 ]로 쉽게 처리할 수 있습니다. 생각보다 그렇게 어렵지는 않죠^^?

     

    사실 이 예제처럼 단순하게 구현하기는 쉽습니다. 이 글을 보고 누구나 따라할 수 있으니까요. 하지만, 위에서도 잠깐 언급했듯이 무한으로 반복된다면 메세지가 계속 올테고, 불필요한 메세지로 업무를 하는데 지장을 받을 수 있습니다. 그렇기에 메세지를 받은 후 [ 지연 ]을 통해 잠깐 로직을 멈춘 후 다시 실행하거나 원격으로 다시 실행시키거나 해야 합니다. 아니면 루틴을 여러 단계로 나누고 처리해도 됩니다. 안정적으로 동작한다고 판단되면 자동 매매를 해도 됩니다. 자동 매매는 [ 이미지 서치 ] 또는 [ 이미지 매치 ]로 매매 버튼을 찾아서 처리해야합니다. 직접 주식이나 코인 또는 선물을 자동으로 매매할 수 있도록 구성 해보세요^^; 이 예제에서 만든 스크립트는 첨부 파일로 추가되어 있습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.