본문 바로가기

시스템 트레이딩 개발/생각과 정보 수집

[System Trading] 본격적인 개발이 들어가기 전에...

시스템 트레이딩 [이하 S.T] 관련해서 조금씩 진행을 하고 있었지만

게으름과 더불어 더 잘 만들어보려는 욕심(?) 때문인 것 같다.

(실력 부족이 사실 크지만...)

 

1. 증권사 API

저번에 소개한 책도 그렇고, 온라인 강의나 관련 서적을 볼 때

대부분 키움 증권의 Open API로 만드는 것 같다.

개인 투자자들이 많이 쓰는 증권사다 보니 그런 것 같기도 하고...

많은 개미들이 사용을 하는걸로

나도 처음엔 이걸로 하려다가,

결국 eBest의 Xing API로 개발하기로 결정을 했다.

그래, 난 너로 정했다.

eBest의 COM (C++은 DLL) 버전 이 개인적으로 나아 보였는데

- 키움 같은 경우는 User Control같이 컨트롤을 옮겨다 놓고 main폼에서 계속 호출해서 쓰는 것 같은데

-> COM 같은 경우, 각 소스상에서 모듈로 개발이 가능할 것 같아서였다.

(제대로 표현을 하긴 힘드네...)

 

혹시나 속도 문제로 C++을 써야 할 경우까지도 미리 생각해둔다면야..

2. 개발 환경

나는 C# (Winform)으로 먹고사는 사람이다 보니

-> C# WInform으로 개발

WPF도 있지만, 미숙함으로 인한 개발 속도에서 차이가 나니.

개발자 마인드가 아닌 사업가 마인드로 다가서자..

 

관련 서적이나 강의에선

파이썬이나 심지어 R 로도 나오는 것 같던데

공부도 할 겸 해서, 관련 서적의 내용을 C#으로 컨버팅 해서 활용할 참이다

 

기능에 어느 정도 제약이 있지만 무료로 사용할 수 있는 커뮤니티 버전을 사용해도 될 것이다.

기본적인 건 커뮤니티로도 가능은 하다.

visualstudio.microsoft.com/ko/downloads/

 

3. Database (데이터 저장소)

기본적으로는 관계형 Database를 사용하는 게 나을 수도 있을 것이다.

 

무료로 사용할 수 있는

Maria DB (mariadb.org/download/)

PostgreSQL (www.postgresql.org/download/)

 

유료라면

Microsoft SQL Server

단, 용량에 한계는 있지만 무료로 어느 정도 사용할 수 있는 Express 버전도 존재는 한다

www.microsoft.com/ko-kr/sql-server/sql-server-downloads

 

추후 속도 등의 문제로

메모리 in DB 등도 관심을 가져 볼 참이다.

 

4. 웹 크롤링하기

Open API로도 필요한 정보를 수집할 수 있지만

사용상 1초에 1회나 2회 , 10분당 200건 정도?라는 조회 횟수를 정해 놨기에

(이 정도에도 잘 사용할 수 있겠지만...)

 

간혹 웹을 통해서 정보를 가져오는 것도 필요하다고 본다 (대부분의 책에서도 웹 크롤링에 대해 서술하기도 했고..)

역시나 네이버나 다음의 증권 부분에서 정보를 가져오는 것도 필요하거나

좀 더 개선하면 각종 뉴스 정보를 가져오는 것도 가능할 것이다.

국내 포털에서 정보를 가져 올 수도

해외 주식을 한다면  Yahoo 같은 데서도 가능할 것이다.

(파이썬의 library를 보면 yfinance라는 것도 있던데)

5. 기타

- 백테스팅

내가 만든 로직이나 실제 매매한 결과를 판단하는 부분도 필요할 것인데

이건 아직 생각 및 조금이라도 구현을 해본 적이 없다 보니...

이런 건 배워야 할 것 같다

-> 내가 만든 로직의 테스트나 검증을 위해서

 

-A.I

워낙에 관련되어서 많아서...

이것도 차근차근 학습 및 적용해 볼 참이다.

-> 활용 목적 : 지속적인 패턴을 분석해서 로직을 개선하거나 만드는 목적으로

 

이제 마무리한다면

 

간단하게 생각하면,

1. 관심종목을 체크해서,

2. 내가 세운 기준 (가장 간단한 건, 매 일정 시간 종목의 주가 조회해서 얼마 되면 사고, 파는 것이 있을 것이다)에 맞춰

3. 매매 주문을 낸다.

라고 보면 될 것이다.

 

하지만

- 매매 로직에 대한 구현과 그에 따른 수정과 검증

- 프로그램 자체에 대한 완성도 높이기

등 등의 사항이 존재한다.

 

그동안 계속 만들려고 했는데,

잃어버린 5~7년이라고 보면 될 것 같다....