작성
·
447
0
답변 1
0
안녕하세요!
강의에서 중간중간 설명을 드리지만 이해가 좀 어려우셨나 봅니다.
이렇게 설명을 한번드려볼게요.
우선 벡테스팅은 무조건 '과거' 데이터로만 진행하는 거겠죠? (그래서 `back`testing)
- Vectorized BT: "현재시점"에서 과거 데이터를 "전부다" 볼 수 있다는 가정하에 진행. 과거데이터가 현재시점에서 '전부다' 보이기 때문에, 성능이 빠른 vector 연산으로 벡테스팅 진행
- event-based BT: 과거 기간에서 특정시점에서마다(=event가 발생할 때마다. 예를 들어 리벨런싱 event 등) 벡테스팅을 진행. 예를 들어, 2000.1.1 ~ 2010.1.1 을 벡테스팅을 한다고 하면, 시뮬레이션을 상에서 현재 시점이 2002.1.1이라면, 해당시점에서는 2000.1.1 ~ 2002.1.1까지의 데이터만 볼 수 있고 2002.1.1 ~ 2010.1.1 데이터는 '아직'은 알 수 없음. Vectorized BT와는 다르게 과거데이터라고 해도 전부다 못본다는게 차이. 때문에 vector 연산에 제한이 있음.
이해가 되실까요?
안녕하세요.
뭔가 정확한 기준이 있는 것은 아니지만, 제 강의 기준으로 설명을 드리면,
1) 제가 part2 강의 뒷부분에서 구현하는 자산배분 비중기반 월별 리벨런싱 전략(과거데이터의 월마다 비중을 조정하고, 해당 비중으로 미래로 전파하면서 반복하는 방식)은 event-based 입니다. 리벨런싱이라는 특정 event마다, 코드상에서 break를 걸어서 전략에 대한 로직을 적용하면서(e.g. 비중조절) 구현(이 break 시점 기준으로는 미래데이터를 알 수 없음)
2) 섹션5에서 구현하는 전략들(moving avg based, mean reversion 등)이 vectorized bactesting입니다. 이 전략들은 signal 기반이지만 제가 하루하루 데이터를 직접 보면서(for loop을 돌리거나 하면서) 현재가격이 이평선을 넘는가 를 판단하는 것이 아닌, 전체 과거 데이터에 대해 shifting 등을 이용해서 각 일자별 return을 vector operation으로 """한번에"""" 계산하죠. 그리고 그 결과 return을 이용해서 성과를 봅니다.
수강생분께서는 event랑 signal이랑 헤깔리시는 것 같습니다. 위의 2)는 섹션5 제목처럼 signal에 기반한 전략이지만, 벡테스팅 방법 자체는 event-based가 아닌 vectorized 방법입니다. 즉, 두가지 백테스팅 방법을 구분하는 기준이 되는 것은, 특정 event 기간마다 실제 코드를 stop(break)를 해서 전략을 적용하는지를 기준으로 생각하면 될 것 같습니다. (이해하기가 어려우시면, 위의 2가지 방법을 실전 live testing에 투입한다고 생각을 해보시면 좋을 것 같습니다. 어떤 구현방식이 실제 테스트에 투입되기 더 용이할까요? (정답: event-based 구현방식))
감사합니다.
안녕하세요.
신속한 답변 감사합니다. 어디에, 누구에게 여쭤봐야할 지도 모르는 상황에서 이렇게 구체적으로 설명해 주시다니...
말씀해주신대로, 제가 **event발생**과 **signal**을 혼돈했던 것 같습니다.
1. 강의에서 말씀해주신대로, 신속한 컨셉 확인과 `cum_rtn` 비교 및 전략 작동 여부를 Vectorized-BT에서 확인하고요.
2. 실전 매매 전에 Event based-BT 구현, 가능한 실전과 유사한 환경 세팅 그리고 추가 parameter study하여 전략을 구체화 해야겠습니다.
몇 번이고 질문 드린 것이 번거로웠을텐데, 자세한 설명 감사합니다.
귀한 지식을 공유해주시는 디핑님, 감사합니다.
안녕하세요. 디핑선생님, 빠른 회신 감사합니다.
확인 부탁드려도 될까요?
한 가지 예를들어 볼게요.
1) Vectorized BT:
- 전체 시계열 데이터를 모두 포함하고 있음
- 포트 교체 없이 'close' 값이 x이평선 상단에서 매수 x이평선 하단에서 매도 전략
2-1) Event-based BT:
- 전체 시계열 데이터는 모두 포함하고 있으나...
- 조건식에 맞을 때 매수
- 3% 이상 일 때, 매도, -3% or 이하 일때, 매도 <--- 이것이 event가 될 수 있겠죠?
2-2) Event_based BT:
- 특정 퀀트 전략(ex. 저PER, 고ROE)에 따라 월말 혹은 월초 1회 리벨런싱
올바른 예제일까요??... 확인받고 싶어서 댓글 남깁니다.
감사합니다.