BLOG main image
ddd (50)
CUDA programming (0)
알고리즘 트레이딩 (5)
Cherry Picker 개발 (23)
TSimulator 개발(종료) (11)
IT 노트 (1)
잡동사니 (2)
사진 (4)
일기 (4)
이력서 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2016. 1. 26. 22:41

마지막으로 기록된 개발일정을 보니 2014년 1월까지로 되어있다. 이 일정이 마무리 되었을 때 CherryPicker 를 실거래에 적용할 수 있을만한 형태가 되었다. 그리고 때마침 운 좋게 제도권에서 시스템 트레이딩을 할 수 있는 기회가 주어졌다. 기회가 주어지고 한 달간 증권사에 출근하면서 CherryPicker 에 증권 API 대신 거래소에서 직접 날라오는 UDP 패킷을 사용하게끔 개조를 했다. 그렇게 개조가 무사히 끝나고 드디어 2014년 3월부터 CherryPicker 를 이용한 첫 거래를 시작했다. 그 후 조금 더 좋은 조건으로 한 차례의 이직을 하고 2016년 1월 현재까지 CherryPicker 로 거래하고 있다.


다행히도 가장 우려스러운 '주문사고'는 없었지만 프로그램이 뻗은적도 여러번 있었고, 실시간 패킷통신에서 오는 동시성에 관련된 문제점들도 많았다. 하지만 시간이 흐르면서 버그가 발생하는 빈도는 점점 줄었고, 현재는 근 1년 버그없이 잘 운용되고 있다. 사실 버그가 발생하면 기분이 좋다. (물론 주문사고는 한 번이라도 있어서는 안된다.) 왜냐하면 그것은 내가 발견하지 못했던 문제가 발견된 것이기에 고쳐서 더 완벽한 프로그램이 되는 기회이기 때문이다.


제도권 입성이라는 목표를 가지고 업무시간 외 시간을 투자해 만든 시스템 트레이딩툴을 풀타임으로 개발할 수 있다는 사실에 너무 행복했던 지난 2년이었다. 제도권에 입사 후 첫 거래에 성공한 이후 지금까지 많은 기능을 구현했고, 로직 최적화를 통해 속도향상에도 상당한 진전이 있어왔다. 파생상품 운용을 직접 해보면서 생기는 요구사항이 생기는대로 바로바로 반영했다. 처음에는 두서없이 거래만 되게끔 구현하는게 첫 목표였지만 최종적으로 내가 분류한 시스템 트레이딩에 필요한 개발파트는 크게 1. 실운용, 2. 백테스트, 3. GUI, 4. 성과분석 의 카테고리로 나뉜다. 어느것 하나 무시할 수 없는 시스템 트레이딩 전반에 있어 필수적인 요소들이다. 각 카테고리가 중요한 이유를 간단히 설명해보면


1. 실운용

    말이 필요없는 부분이다. 최대한 빨리 시그널을 받고 주문을 해야하므로 속도를 위한 코드 최적화가 중요하다.

2. 백테스트

    시스템 트레이딩의 꽂이다. 백테스트를 통해 시스템 전략들이 만들어진다. 최적화 변수들이 많아질수록 테스트에 걸리는 시간이 천문학적으로 길어지므로(전략 하나에 일 주일, 한 달이상 소요되기도..) 이것 역시 코드 최적화가 중요하다. 그리고 데이터 흐름 알고리즘을 조금 바꾸는 거에 의해 수십분의 일, 수백분의 일까지도 소요시간을 줄일 수 있다. 물론 하드웨어의 성능을 모두 활용하는 멀티 스레드/프로세스는 필수이다.

3. GUI

    실운용에 있어 현 상황이 어떤 상황인지 알기에는 텍스트로도 문제가 없지만 편리하고 직감적으로 알기 위해서는 그래픽으로 더 효과적이다. 포트폴리오 포지션, 손익, 전략상황 등을 GUI 를 통해서 파악한다.

4. 성과분석

    성과분석툴은 크게 두 가지로 나뉜다. 백테스트한 결과중 어떤것을 실운용할지, 어떤 조합으로 포트폴리오를 구성할건지 분석할 수 있는 GUI툴과, 현재 실운용인중인 포트폴리오의 운용성과를 분석하고 백테스트한 결과와 비슷한 성과를 내고 있는지 분석할 수 있는 GUI툴이다. 이는 현 수익을 목적지(백테스트상 수익)로 안전하게 도달하게끔 유도해주는 역할을 해준다.


위 네 가지의 기능들을 수행하기 위해 그 동안 CherryPicker(알고리즘엔진) 외에 Unit_3(백테스트), Gaia(실운용), Efreet(성과분석) 등이 탄생했다. 현업에서 일하고 있는 이상 개발진행 사항을 포스팅 하기가 어려워져 이렇게 상황요약을 마지막으로 개발일정은 포스팅을 종료하겠다. 다른 메뉴들은 계속 업데이트할 생각이다.


지금까지 알고리즘 포스팅에 관심 가져주신 분들이 적지만 몇 분 계셨고 오프라인에서의 만남도 있었다. 나는 시스템 자동화에 대해 이야기하는걸 참 좋아한다. 교류를 원하시는 분들은 언제나 환영이다. :)

'Cherry Picker 개발 > 일정(종료)' 카테고리의 다른 글

13년 12월 ~ 14년 1월 일정  (0) 2013.12.11
10~11 월 일정 (2013년)  (0) 2013.11.21
SetTimer 함수를 도입  (0) 2013.11.08
증권 API 를 Cherry Picker 에 연결하다.  (0) 2013.07.17
의미있는 일정  (0) 2013.06.17
2015. 6. 14. 10:38

회사 부서 동료가 결혼식을 했다. 장소는 충북 충주에 위치한 수안보...!


확실히 공장 찍어내는 듯한 느낌의 시내 예식장과는 차별화가 된듯 하다.


보이는 교회 내부에서 진행되는 행사는 전혀 없었으니 장식용(?) 인듯.


단점은 장소가 멀어서 당일 중요한 약속이 있는 사람은 참석하기 힘들 수도 있다는 것.



날씨도 좋았고 풍경도 괜찮아서 신랑 신부에게는 좋은 사진들이 남았겠지.




'사진 > 스냅' 카테고리의 다른 글

신정 떡국  (0) 2016.01.28
고양이 두 마리.  (0) 2016.01.27
2015. 6. 14. 10:28

오랜간만에 참여한 대학 등산 모임..


경의중앙선 배차간격이 커서 지인들을 30분 기다리게 했다.


운길산은 쉴틈없이 경사가 계속되는 산이라 힘들지만 단시간에 올라갈 수 있었다.




운길산 정상에서 본 풍경



운길산 고지


하산하며 나무사이에서 보여지는 양수대교..



수종사는 들리지 못했다. 날씨도 더워지고 있으니 다음 산행에서는 얼린 물통을 들고가야지.