1장. Python과 알고리즘 트레이딩
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
골드만삭스에서 주식 거래에 종사하는 직원의 수는 2000년에 최고 600명이었던 것이 현재는 단 두 명으로 줄었습니다.1
이코노미스트
이 장에서는 이 책에서 다루는 주제에 대한 배경 정보와 개요를 제공합니다. 알고리즘 트레이딩을 위한 Python은 Python 프로그래밍과 금융의 교차점에 있는 틈새 분야이지만, 빠르게 성장하는 분야로 Python 배포, 대화형 금융 분석, 머신 및 딥러닝, 객체 지향 프로그래밍, 소켓 통신, 스트리밍 데이터 시각화, 거래 플랫폼과 같은 다양한 주제를 다루고 있습니다.
중요한 Python 주제에 대한 간략한 복습을 원하시면 부록 A를 먼저 읽어보세요.
금융을 위한 Python
Python 프로그래밍 언어는 1991년 Guido van Rossum이 0.9.0이라는 이름의 버전을 처음 발표하면서 시작되었습니다. 1994년에는 1.0 버전이 출시되었습니다. 그러나 Python이 금융 업계에서 주요 프로그래밍 언어이자 기술 플랫폼으로 자리 잡기까지는 거의 20년이 걸렸습니다. 물론 헤지 펀드를 중심으로 얼리 어답터들이 있었지만, 광범위한 채택은 아마도 2011년경부터 시작되었을 것입니다.
금융 업계에서 Python을 채택하는 데 있어 가장 큰 장애물 중 하나는 기본 버전인 CPython이 해석된 고수준 언어라는 사실입니다. 일반적으로 수치 알고리즘과 특히 금융 알고리즘은 (중첩된) 루프 구조를 기반으로 구현되는 경우가 많습니다. C나 C++와 같은 컴파일된 저수준 언어는 이러한 루프를 실행하는 속도가 매우 빠르지만, 컴파일 대신 해석에 의존하는 Python은 일반적으로 실행 속도가 상당히 느립니다. 그 결과, 순수 Python은 옵션 가격 책정이나 위험 관리와 같은 많은 실제 금융 애플리케이션에 사용하기에는 너무 느린 것으로 나타났습니다.
Python 대 의사 코드
Python이 특별히 과학 및 금융 커뮤니티를 겨냥한 것은 아니지만, 그럼에도 불구하고 이 분야의 많은 사람들이 그 구문의 아름다움과 간결함을 좋아했습니다. 얼마 전까지만 해도 (금융) 알고리즘을 설명하면서 동시에 적절한 기술 구현을 위한 중간 단계로 의사 코드를 제시하는 것이 일반적으로 좋은 전통으로 여겨졌습니다. 많은 사람이 Python을 사용하면 의사 코드 단계가 더 이상 필요하지 않을 것이라고 생각했습니다. 그리고 그 생각은 대부분 옳은 것으로 입증되었습니다.
예를 들어 방정식 1-1에서와 같이 기하학적 브라운 운동의 오일러 이산화를 생각해 보겠습니다.
방정식 1-1. 기하학적 브라운 운동의 오일러 이산화
수십 년 동안 라텍스 마크업 언어와 컴파일러는 수학 공식이 포함된 과학 문서를 작성하는 데 있어 최고의 표준이 되어 왔습니다. 여러 가지 면에서 라텍스 ...