💻 개발 여정

트레이딩의 한계에서 프로그래밍 솔루션으로

처음 프로그래밍의 필요성을 절감한 것은 트레이딩 데스크 전략가로 근무하던 시절이었습니다. 글로벌 매크로 트레이딩 체계를 운용하며 BLS, BEA, Census 등 방대한 소스의 데이터베이스를 관리해야 했으나, 데이터 규모가 커질수록 엑셀 기반 관리의 한계를 체감했습니다. 유연한 데이터 핸들링, 자동 업데이트, 리비전 트래킹 기능이 절실했고, 그 해답은 코딩뿐이었습니다.

중학생 시절 Borland C++에 도전했다 겪은 고통이 심리적 장벽이 되기도 했으나, 결정적인 전환점은 트레이딩 자체의 한계를 깨달은 순간이었습니다. 소위 '시장의 야수'라 자칭하는 이들의 정성적 접근 방식이 지닌 결함을 목격했습니다. 특히, 어느 순간부터는 "시장을 풀어낸 수학자"에서 나온 문구처럼, 과도한 매매와 근거 없는 자신감에 가득 찬 트레이더 그룹이, 바로 우리가 아닐까 하는 의구심이 들기 시작했습니다.

"... 사이먼스는 '프랑스 채권 시장이 나아가는 방향을 빈번하게 짐작만 하는 글로벌 헤지펀드 운영자가 보다 채산성 있는 참가자일지도 모른다'라고 했다 ... 엄청나게 늘어나는 수익의 근원을 궁금해했을 때, 라우퍼는 과도한 트레이딩과 시장 방향 예측에 대한 지나친 자신감으로 악명 높은 다른 트레이더들을 지목했다."
— 시장을 풀어낸 수학자

성공의 본질은 엄격한 리스크 관리와 정밀한 계량적 포지션 제어에 있음을 깨달았습니다. 시장을 상시 모니터링하고 규율에 따라 정밀하게 실행되는 시스템을 구상했고, 이를 위한 핵심 도구인 프로그래밍 역량을 개발하기로 결심했습니다.

저는 퀀트적인 사고방식과 더불어 프로그래밍 기술을 개발하기 시작했습니다. 코로나로 인해 집중할 수 있는 시간이 늘어났고, 그 시간으로 저는 블룸버그 터미널과 파이썬을 통합하는 방법을 배우는 데 사용했습니다. 이를 시작으로 numpy, pandas, 그리고 scipy나 statsmodels와 같은 라이브러리 등 금융 전문가들에게 필수적인 도구들을 연마했으며, 이를 바탕으로 데이터 분석 능력을 상당히 향상시킬 수 있었습니다.

애초에 데이터 관리에 대한 필요성으로 프로그래밍에 대한 실용적 수요가 발생했음을 고려할 때, MySQL을 배우는 것은 자연스러운 수순이었습니다. 무거운 엑셀 파일과 씨름하며 수많은 시트를 수동 업데이트하고, 셀 참조와 씨름하던 시절은 오래전에 끝났어야 했다는 생각으로, 주식, 금리, 선물, 그리고 암호화폐의 가격 데이터는 모두 자동으로 업데이트되어 더욱 과학적이고 합리적인 트레이딩이 가능한 구조를 구축했습니다.

또한, 이러한 자동화 시스템의 효율성을 극대화하기 위해 리눅스 환경으로 전환했으며, 지속적인 분석과 개발을 지원하기 위해 어디서나 접속 가능한 데이터 서버를 구축했습니다. 이러한 노력은 종합 금융시장 분석 툴인 Financial Universe Cartography Kiosk의 제작으로 이어졌으며, 이는 다양한 데이터 소스 API를 통해 자동 업데이트되는 데이터베이스를 활용하여 매크로 분석 및 자산 가격 시뮬레이션과 같은 심층 분석 작업을 수행함으로써 생산성을 극대화합니다.

저의 트레이딩 기초 원칙은 "동물적 감각"에 의존하는 방식에서 벗어나 논리와 규칙에 기반한 전략으로 이동했습니다. 그로부터 업무용 및 개인 투자용으로 사용되는 자동 매매 시스템인 Mechanicum을 개발하였고, 리스크 관리 시스템이 중추를 이루는 이 시스템에 각종 전략을 카트리지처럼 끼워 - 틱 단위 흐름에 기반한 초단기 모델, 기술적 분석을 활용한 단기 모델, 그리고 자산 배분 및 레짐 분석에 기반한 중장기 모델 등 - 운용하고 있습니다.

트레이딩 외에도, 저는 다양한 개발 영역에 관심을 갖고 있습니다. 만약 트레이딩과 관련된 비슷한 고민을 하시거나, 특히 기술적으로 황폐한 한국의 기관 채권시장에 대해 논의하고 싶으시면 부담 없이 admin@igusami.com로 연락을 주시면 감사하겠습니다.

요약 (TL; DR)

🛠️ 기술 스택

Python: 메인 언어

Python을 주력으로 사용중입니다. 데이터 수집, 분석, 매매 실행, 추적, 관리 등 대부분의 업무에 Python을 활용하며, 시각화, 문서화, 간단한 웹 앱 개발이 가능합니다 - 특히 바이브 코딩 시대 이후로는 더욱 그렇습니다.

  • 금융: pandas, blp, ta-lib
  • 통계: scipy, statsmodels
  • 시각화: matplotlib, plotly, streamlit
  • 기타: pymysql (및 기타 SQL 도구), telegram 등

MySQL: 데이터베이스 관리

데이터 관리에는 MySQL을 사용합니다.

  • 경제: DM의 거의 모든 거시경제 데이터.
  • 가격: 각국 개별주식, ETF, 선물, 암호화폐, 지수, 금리, 환율 등. 트레이딩을 위한 틱 데이터부터 일간 데이터까지 다양하게 수집 중.

Linux: 중앙 워크스테이션

데이터베이스가 확장되고 시뮬레이션 및 실시간 가격 모니터링의 필요성이 커짐에 따라, 강력한 단독 서버에 대한 수요가 커졌습니다. 이러한 효율성과 원격 접속에 대한 필요성으로 인해 리눅스 환경으로 전환하게 되었으며, 이를 통해 리눅스 개발에 대한 귀중한 경험을 쌓을 수 있었습니다.

C#: 다음 단계

초기에는 파이썬 스크립트 기반 프로그래밍에 집중했으나, 속도와 효율성, 그리고 나 외의 더 넓은 사용자 접근성을 위한 GUI 기반 프로그램 개발 가능성을 위해 C#을 배우기 시작했습니다. 기존 프로젝트를 포팅하고 강의를 수강하며 점진적으로 기술을 쌓고 있습니다... 였지만, 바이브 코딩 시대 도래로 인해 양상이 크게 변했습니다.

프론트엔드: 초보

바이브 코딩은 실제 놀랍습니다.