일전에 포스팅한 내용대로 백테스트 프로그램의 개선 작업을 거의 완료했다.
2022.11.13 - [Python, API] - DataFrame의 Loop속도 비교 (iloc, iat, iterrows, itertuples)
[AS-IS]
|
[To-Be]
|
현재 프로그램의 업데이트가 모두 완성되지는 않았지만 기존 버전 대비 소요시간이 2~3배 개선 효과가 있는 것 같다. 이 속도의 개선이 어디서 나오는지 하나씩 따져봤는데 크게는 두 가지 관점에서 생각해볼 수 있는 것 같다.
- Loop 방법의 차이
Df.iat보다 Df.itertuples가 속도에서 압도적인 차이를 보인다.
- DataFrame vs Dictionary
연산 및 데이터 업데이트를 Dictionary 상태에서 모두 완료한 후에 최종 결과물만 DataFrame으로 변환 처리한다. 즉, 굼벵이 Pandas의 사용빈도를 낮추는 효과가 있다. 이후 전략의 성과(누적수익, MDD, 변동성 등)의 산출 시에는 Pandas의 장점인 빠른 Vector연산을 사용하면 된다.
'Python, API' 카테고리의 다른 글
투자 관련 API를 사용할 때 조심해야 할 점 (0) | 2022.11.28 |
---|---|
백테스트의 속도개선(2) (0) | 2022.11.27 |
DataFrame의 Loop속도 비교 (iloc, iat, iterrows, itertuples) (0) | 2022.11.13 |
[XINGAPI] 주식차트조회(일주월) - t8413 (0) | 2022.07.07 |
[XINGAPI] 이베스트투자증권의 분봉 표시 (1) | 2022.07.07 |