반응형

주가 추세를 분석하는 도구로, Python이 많이 이용되는 것 같다.

사실 주식 뿐만 아니라 인공지능을 비롯한 여러 환경에서

Python이 많이 쓰이는 것 같다.

그만큼 Python이 쉬우면서도 응용성이 뛰어난 언어라고 할 수 있을 것 같다.


일단 다음 사이트에 보니, 축적된 주가정보를 가지고

포트폴리오를 시뮬레이션하는 Python 예제가 있었다.

http://stock79.tistory.com/103

이 예제에서는 그동안의 주가 데이터를 엑셀로 정리헤서 제공해 준다.


문제는 이 알고리즘을 적용할 경우 

과거 시점이 아닌 현재 시점에서 필요한 정보들을 어떻게 얻어올 수 있나이다.

그래서 찾아보니, 해결책 역시 Python을 통해 나와 있었다.

https://wikidocs.net/1913

이 예제에서는, yahoo로부터 과거(2010년)부터 현재에 이르기가지의 주가 정보를 얻는 방법이 나와 있다.


놀라운 것은, 몇줄 안되는 코드를 가지고

주가 정보를 가져올 뿐만 아니라

그래프까지 멋지게 그려 준다는 것이다.


다음 페이지에는, 주가를 얻어온 다음

머신러닝을 적용하여(KNN, SVM, RandomForest) 주가를 예측하는 예제가 나와 있다.

http://stock79.tistory.com/100


참고로, http://stock79.tistory.com/ 사이트는

시스템 트레이딩과 관련해서 배울 내용이 많은 사이트이다.

반응형
반응형

시스템 트레이딩을 시작한 이후로, 지금까지 수익을 보기는 커녕

손실을 많이 보고 있다.

물론 한없는 손실을 막기 위해, 주식 투자는 정해진 금액 내에서 하고 있다.

원래 목표는 그 금액을 투자 이윤을 통해 계속 불려나가는 것이었다.

하지만 지금까지, 금액은 50%로 줄어들었다...헉...

어떻게 수익을 낼 수 있을지는 모르겠다.

단지, 그동안 무엇때문에 손실을 봤는지 돌아보면

무엇을 하지 말아야 하는지 정도는 알 수 있을 것 같다.


일단 내가 발견한 가장 위험한 태도는 다음과 같다.

  • 단기에 이익을 보려 하는 태도


시스템 트레이딩이니, 빠른 속도로 주가를 분석하고

직접 투자에서 놓칠 수 있는 타이밍을 잡을 수 있다는 생각으로

여러가지 시도를 해 보았다.

그러다 보니 틱 단위로 주가 변동을 체크하고

빈번하게 주식을 사고 팔게 되었다.

한동안 키움에서 거래수수료를 공제해 주었던 것 같아서 눈치채지 못했지만,

거래가 빈번하면 공연히 수수료만 많이 들어가게 된다.

또한, 아무리 시스템트레이딩이라 해도,

주문이 몰리는 시점에 내가 원하는 가격으로 주식을 사기는 쉽지 않다.

주문이 체결되기 전에 가격이 올라가거나 내려가는 경우가 비일비재하다.

따라서, 초단타매매는 피해야 할 것 같다.

통계에 기반한 예측을 통해 주식을 사거나 팔되,

한번 산 주식은 기본적으로 어느 정도 이상은 보유해야 할 것이다.

무엇이든 적절한 시간을 들여야 하듯이,

오를 것 같은 주식이라도 어느 정도는 기다려주어야 오르고든지 말든지 할 수 있는 것이다.


그래...이제 급하게 매매하는 방법을 버리고,

적절한 기다림을 배워야겠다.

반응형
반응형

키움이 제공하는 ActiveX를 이용해서 시스템 트레이딩을 개발하면서,

이유 없이 프로그램이 중단되거나 에러가 나는 상황이 종종 발생하엿다.

메뉴얼을 아무리 찾아봐도 이유를 발견할 수 없는 경우가 많은데,

키움 OpenAPI관련 게시판을 찾아보면 도움되는 정보를 얻을 수 있다.


내가 경험한 개발시 유의점들은 다음과 같다.

  1. 중단 및 에러 발생 원인을 알 수 없을 때에는, 키움 OpenAPI게시판에 비슷한 증상으로 올라온 문의내용이 없는지 확인해 보는 것이 좋다.
  2. 키움이 제공한 ActiveX모듈이 가끔 버전 처리를 하는 경우가 있는데, 버전 처리 이후에는 꼭 Rebuild를 해 주는 것이 좋다.
  3. 메뉴얼에는 없지만, 게시판에 보면 1초 동안 서버에 보내는 request는 5회 이내로 제한하는 것이 좋다고 나와 있다. 따라서, 각 request 사이에는 적어도 200ms 이상의 Delay를 주는 것이 필요하다.
  4. 서버로부터 오는 메세지 처리시 이벤트 함수를 연결해서 처리하는데, 처리 시간이 오래 걸리면 Exception이 발생할 수 있다. 최대한 신속하게 처리해서 다음 메세지를 받아들일 준비를 해야 하며, 시간이 많이 필요한 처리는 일단 기본 정보만 저장해 두었다가 별도의 쓰레드에서 처리하던가 해야 한다.
  5. 이런 저런 주의사항들을 다 지키더라도, 때때로 제공 모듈 자체에서 오류가 발생하는 경우가 있다. 이런 경우 원인을 찾기가 어렵다. 그저 모듈이 좀더 개선되기를 기다리는 수밖에 없는 것 같다. 이런 경우의 대비책도 마련할 수 있으면 마련해 두는 것이 좋다.


반응형
반응형

키움 OpenAPI를 이용해 SystemTrading 기능을 개발하면서 

많은 시행착오를 겪었다.

일단, 개발환경을 뭘로 할지부터 갈팡질팡하였다.

키움 OpenAPI가 ActiveX형태로 제공되기에,

처음에는 HTML을 이용해서 구현하려 생각하였고,

그게 여의치 않게 느껴져서 Excel로 시도해보다가,

그것도 여의치 않아서, C#으로 결정하여 지금까지 개발 및 운영중이다.

키움에서 해당 서비스를 시작한지 1년도 채 되지 않기 때문에,

여러가지 자료가 부실하기 짝이 없었고

제공되는 ActiveX도 불안정한 것이 사실이었다.

매뉴얼에 나와 있지 않는 내용들이 많아서,

사소한 구현에도 굉장히 많은 시행착오를 하게 되었거,

그에 따라 시간도 많이 소요되었다.

그리고, 사정상 VisualStudio를 이용하지 않고 XamarineStudio를 이용하였기 때문에

GUI Tool을 이용해 편하게 할 수 있는 일들도 어렵게 작업하게 되었다.

그래도 꼭 한번 만들어 보고 싶은 마음이 있어서, 포기하고 싶은 마음은 들지 않았다.

그리고 드디어, 키움이 제공하는 예제를 바탕으로 한 자동 주문 시스템을 만들 수 있었다.

하지만 그게 끝이 아니더라...

자동으로 주문하고 팔고 하다 보니, 매매 알고리즘을 잘못 세웠을 경우

자동반복적인 손실이 나오더라......

개발하면서 겪은 시행착오에 대해 더 많이 쓰고 싶은 마음도 있지만,

지금 되새겨봐야 그닥 재미도 없고 정작 중요한 것은 수익률을 높이는 것이라서,

생략하는 것이 좋을 것 같다.

다만, 키움증권의 OpenAPI에 대한 서비스의 질이 지금보다 많이 좋아지면 좋겠다.

특히 매뉴얼 내용이 너무 부실한데, 많이 보완되어야 할 것 같다.


이제 수익을 내는 방법을 찾아보자!!

반응형
반응형

주식투자를 시작한 것은, 아마도 2007년인 것 같다.

재테크도 할 겸, 경제 관련 지식도 얻을겸 시작하게 되었는데,

키움 증권에 계좌를 개설하게 되었다.


처음에는 돈을 버는 듯 해서 신이 났지만,

순식간에 수익률이 마이너스로 돌아선 이후

좀처럼 회복이 되지 않고 있다.

그렇게 열의를 가지고 공부도 하고 하다가

몇년째 더이상 사지도 팔지도 않고 현상유지만 하면서

손을 놓고 있었다.


그런데 올해 들어 코스피가 많이 오르고 있다고 해서,

문득 예전 계좌를 다시 들어가 보니

여전히 마이너스이기는 하지만 예쩐보다 조금 올라 있었다.


그래서, 이판에 다시 주식을 하고 싶었지만

이제는 그럴 만한 시간이나 에너지가 없어서,

시스템트레이딩을 통해 자동매매를 하고자 했다.


그러던 중에 키움에서도 작년말부터 OpenAPI를 제공한다는 사실을 알게 되었고,

예제를 다운받아 수정해가면서 시스템트레이딩을 시작하게 되었다.

하지만 구현하는 것도, 수익을 올리는 것도 생각처럼 쉽지 않음을 느끼게 된다.

이제 트레이딩 시스템 자체는 어느 정도 안정적으로 돌아가게 되었고,

수익을 낼 수 있는 알고리즘을 구현하는 것이 지금부터의 과제인 것 같다.


시스템트레이딩을 개발하고 운용는 가운데 좌충우돌하면서 알게 되는 지식들을

이곳 블로그에 정리해 보려 한다.

반응형

+ Recent posts