1) Program Configuration
- 자동매매/수동매매 모두 가능해야 한다.
- 실투/모투 선택 가능해야 한다.
- 여러가지 전략 및 알고리즘을 설정할 수 있어야 한다.
2) Risk Management
- 주식시장에 큰 이슈가 터졌을때, 휴대폰으로 noti 를 받아야 한다 (카톡, 슬랙, 텔레그램, G-mail 기타 등등)
- 큰 이슈가 터지면 보유하고 있는 주식을 일괄 청산해야 한다.
- 외부에서 프로그램을 일부 조작할수 있어야 한다. (프로그램이 뻗으면 Auto-Restart 또는 매뉴얼 shutdown)
- 증권사 API 허용치를 넘어서는 쿼리를 발생시키면 안된다.
- 웹 크롤링을 할때, IP ban 당하지 않도록 주의해야 한다.
3) Data Management
- 데이터는 백업되어야 한다. (어떤 문제가 발생해도, 데이터가 유실되면 안된다)
- 프로그램 운영시 발생한 문제는 이슈관리 시스템으로 관리 되어야 한다.
- 데이터 수집은 자동화 되어야 한다.
- 주식 정보 + 회사 회계 정보가 상세하게 수집되어야 한다.
- 기 존재하는 데이터와 "키"가 동일하다면 기존 데이터를 update하고 신규 정보면 단순 저장해야 한다.
- 시계열 데이터에 공백이 생기면 안된다. (기존 데이터에 신규 데이터를 추가하면서 시계열에 공백이 생기면 안됨)
- 각종 데이터 업데이트가 손쉽게 진행되어야 한다. (업데이트를 쉽게 도와주는 툴 개발이 필요할 수 있다)
- 1회성 데이터와 지속 보관해야 할 데이터를 구분해서 저장한다.
4) Automation
- 프로그램은 정해진 시간에 정해진 작업을 자동으로 해야 한다.
- 예를 들어, 오전 7시가 되면 매매프로그램이 로딩되어 매매할 준비를 해야한다.
- 장마감 이후에는 데이터 수집 프로그램이 로딩되어, 각종 데이터를 수집해야 한다.
5) Visualization
- 여러 통계 데이터를 시각화하여 보여줘야 한다.
- 누적 매매 결과 데이터를 볼수 있어야 한다.
- 긴급 이슈 발생 유무를 쉽게 확인할 수 있어야 한다.
- Daily 실시간 매매 성과를 보여줘야 한다.
6) Monitoring
- 보유 종목에 대해서는 실시간 다양한 정보가 모니터링 되어야 한다.
- 카톡, 슬랙, 텔레그램으로 체결 정보를 noti 받아야 한다.
- 프로그램 Log를 수집해서 문제를 쉽게 찾을 수 있어야 한다.
- 외부에서도 프로그램의 상태(status)를 확인할 수 있어야 한다.
- 계좌 상태를 모니터링 할수 있어야 한다.
7) Algorithm/Trading Strategy/Back Testing
- 과거의 투자에 대해 복기할 수 있어야 하고, 어떤점이 문제점인지 쉽게 파악가능하도록 많은 정보를 제공해야 한다.
- 다양한 패턴을 자동으로 찾아서, 분석해야 한다.
- 다양한 보조지표를 산출해낼수 있는 Feature를 구현해야 한다.
- 가설을 세우고, 해당 가설을 검증할 수 있어야 한다.
- 가설이 검증되면, 해당 가설을 프로그램에서 Configuration 할 수 있어야 한다.
- 시계열 데이터 분석이 가능해야 한다.
- 시간대별 유의미한 분석이 가능해야 한다.
8) Collaboration/Traceability
- 체결되었을때 카톡, 슬랙, 텔레그램으로 noti를 받아야 한다.
- 증권사 시간과 프로그램 시간을 동기화 할수 있어야 한다.