개미들을 위한 퀀트 자동 매매 프로그램 개발자 블로그입니다. 프로그래밍과 퀀트 투자를 합니다.

방구석퀀트

네이버카페 : 방구석 퀀트 놀러오세요^^ https://cafe.naver.com/conerquant 가입해 주세요.

2019년 12월 16일 월요일

[퀀트자동매매] 개발 1. 퀀트 자동 매매 프로그램을 만들어 버리자

그동안 개미로서 아무계획 없이 주식을 사고 팔았던 과거가 주마등 처럼 스쳐간다. 몇몇 종목을 선택해 주가 차트의 흐름을 보며 '아 이때 쯤 사면 오르겠지'라고 그냥 매수했고, 매수 후 2~3%만 올라도 가슴이 쿵쿵 뛰며 다시 내릴까 조마조마 하며 빨리 팔아버렸었다. 오르면 운이 아주 좋은 날이었지만 대부분 매수 후 주가는 내려 갔었고, 손실을 만회해보려 추가 매수 들어가다 보면 손실은 더욱더 늘어나는 일이 계속 반복됐다.

주가를 예측해 보려고 강화학습 책을 사서 공부하며 실제 개발도 해보았고, 딥러닝 LSTM으로도 구현해 봤지만 예측이 딱히 들어 맞지 않았다. 그러다가 정말 우연히 'R을 이용한 퀀트 투자 포트폴리오 만들기' 책을 접하게 되었다. 주가 데이터는 비교적 쉽게 수집할 수 있었는데, 제무제표 같은 거는 이 책을 통해서 수집하는 방법을 알게 되었다. 크롤링 방법도 배울 수 있었고, 퀀트 전략들이 그대로 R로 구현되어 있어서 응용하기에도 도움이 많이 되었다.

또다른 퀀트투자 관련 책들을 읽으면서 진짜 이 전략이 먹힐까 궁금해서 시뮬레이션을 직접 해 보았다. 기본은 'R을 이용한 퀀트 투자 폴트폴리오 만들기'의 소스코드를 활용하였고, 수익률 계산 코드는 직접 만들었다. 1년 전 정보를 토대로 선정한 포트폴리오에 1년 전에 투자할 시 현재 수익률이 얼마일까를 계산하는 시뮬레이션이다.

이 블로그의 [퀀트]-[시뮬레이션] 메뉴의 글들을 보면 지금까지 한 시뮬레이션 결과 들이 있다. 아직도 계속해서 실험해 봐야할 전략들이 많지만 퀄리티 지표결합 전략으로 선정한 포트폴리오에 고가매수저가매도 전략 적용시 수익률이 가장 높게 나왔기 때문에 우선 이 방법으로 투자를 시작했다.

원금 170여만원을 2019년 12월 5일에 고가매수 전략 기준에 해당 된 9개 종목에 투자했고, 매일매일 저가매도 전략 기준에 해당되면 매도하고 다시 고가매수 전략에 해당되는 종목을 매수했다. R 코드를 돌리고 그 결과를 보고 스마트 폰에서 일일이 매도하고 매수하기를 반복한 것이다. 그래봤자 하루에 2~3종목 정도만 교체를 하는 수준이어서 지금은 휴직 중이라 여유롭게 시간 내서 할 수 있지만 복직 후에는 매일 수동으로 할 수는 없는 노릇이다.

먼저 투자 결과를 한번 보자.



최근 주식이 오름장이라 수익이 난 것이란 걸 알고 있지만... 내 주관을 일절 개입시키지 않고 전략에 따라 기계적으로 매매하며 스트레스 없이 투자 할 수 있어서 좋았다. 나중에 또 시뮬레이션을 해 보겠지만 하락장에서 수익을 방어하는 전략도 나중에 적용한다면 퀀트 투자를 통해 지속적인 수익을 낼 수 있지 않을까라는 생각이 강하게 들었다.

그래서 퀀트 자동 매매 프로그램을 만들기로 했다.

프로그램은 아래와 같이...



프로그램 이름은 그냥 램프의 요정 지니 이름을 따서 퀀트 지니 자동 매매 프로그램이다. C#으로 껍데기를 만들거고, R.NET으로 R 코드를 C#에서 실행하고 결과를 받아와서, 키움증권 API를 통해 실제 매매를 실행 시킬거다. 자동매매 프로그램은 아니지만 옛날에 이런 방식으로 다른 프로그램을 만든 적이 있어서 한 일주일이면 다 만들지 않을까 싶다.

복직까지 한달도 안남았다. 내 휴직 중 마지막 결과물로 퀀트 지니 자동 매매 프로그램을 꼭 완성시키고 싶다.

*방구석지니와 자동매매가 궁금하신 분은 아래 강좌를 수강하시면 무료로 방구석지니를 제공해 드립니다.

https://cafe.naver.com/conerquant/336


댓글 14개:

  1. 안녕하세요
    퀀트 프로그램을 직접 만드셨다니 너무 감명 깊어서 댓글 남깁니다.
    저도 퀀트에 관심이 있어서 시작을 해볼까 하는데,
    프로그래밍에 대한 기초적인 지식이 어느 정도까지 필요한지 여쭤보고 싶습니다.

    답글삭제
    답글
    1. C# Winform으로 기본적인 것만 만들 수 있으면 될 거 같아요~
      키움증권에서 예제코드를 다 제공하기 때문에 그거 수정하기만 하면 되요.

      삭제
  2. 안녕하세요.
    퀀트자동매매 프로그램 한번 사용해보고 싶은데, 한번 사용해볼 수 있을까요?
    제 이메일주소는 dprmqh@gmail.com 입니다~!

    답글삭제
    답글
    1. 안녕하세요~ 관심 가져주셔서 감사합니다.
      여기 링크에서 설문 조사 한번 부탁드릴게요~
      https://forms.gle/iTuqZfEFK7B33Md99
      관련해서 별도 메일로 안내 드릴게요~^^

      삭제
  3. 안녕하세요 올려주신 링크 접속이 안되요
    된다면 설문해드리려했는데요

    답글삭제
  4. 안녕하세요 저도 한번 사용해보고 싶습니당
    이메일입니당!!
    ghandsome97@gmail.com

    답글삭제
    답글
    1. 관심 감사드립니다.
      카페에 가입해주세요^^

      삭제
  5. 저도 만드신 프로그램 사용해볼 수 있을까요 ? sixplayer@gmail.com

    답글삭제
  6. 뿜뿌 증권포럼에 리플보고 여기까지 오게되었네요
    저도 자동매매 프로그램 개발에 관심을 갖고 기웃거리는데요
    혹시 언급하신 서적에 예제코드가 별첨되어있나요?
    서적 구매하여 보고 따라하면 기본 매매 프로그램정도 개발이 가능할까요?
    위에 리플에 말씀해주신 먼가 정보를 받을수 있다면 저도 좀 부탁드리겠습니다.
    aden.gj.jung@gmail.com

    답글삭제
    답글
    1. 먼길 오셨네요~ 방문 감사드립니다~
      언급된 책에는 c# 자동매매 프로그램 개발에 대한 내용은 없답니다. 제가 c# 프로그래머라서 키움 OpenAPI 홈피에서 다운받은 예제 프로그램 토대로 추가 개발한 거랍니다.
      추가 개발한 내용이 많지는 않은데 글로 설명드리기 어려운 부분이라 따로 자료는 작성해놓지 않았어요. 그래서 저도 지금 코드보면 이게 뭔가 헤메기도 하네요.
      제 카페는 R 매매전략에 대해 강의를 할 예정이고요. 자동매매프로그램은 따로 강의는 하지 않고, 매매전략 유료강의를 들으시면 그냥 제공해드리려고 한답니다~

      삭제
  7. 안녕하세요
    저도 여기저기 c# 공부를 하려고하는데 좋은선생님이앞에 계신거같아서 관심받고 같이 만들어보고싶어서 댓글작성합니다!! ㅎㅎ
    위에서 언급하신 설문조사 다 했습니다. 코딩하신 언어를 좀 보고 배우고 싶어서 그러는데 저도 카페가입할수 있을까요!! 코딩하신 내용 저도 볼수있을까요 ㅎ.
    nike4434@gmail.com

    답글삭제
    답글
    1. 안녕하세요~ C#코드는 공개해드리지는 않지만... 사용은 해 볼 수 있게 할 예정입니다~ 카페에서 자주 뵈요~~^^

      삭제

가장 많이 본 글