엑셀에서 백테스팅시 IF 함수를 많이 씁니다. IF 함수는 한 가지 조건에 대하여 TRUE, FALSE 값을 나타냅니다. 그래서 두 가지 이상 조건을 충족시켜야 할 때는 AND, OR, NOT함수 등을 조합해서 이용해야 합니다.
수동으로 퀀트 전략 백테스팅할때 경우에 따라서 다중 조건을 부여하는 경우가 많습니다. IF 함수와 조합해서 사용할 수 있는 다중 조건 함수를 사용한다면 조건에 맞게 수식을 완성할 수 있습니다.
아래 표 1은 듀얼모멘텀 전략을 백테스팅하는 엑셀 표입니다. 듀얼 모멘텀이랑 특정 자산 A, B 중에 12개월 모멘텀이 높은 자산에 투자하되 둘 중 높은 자산이 마이너스 수익률이라면 C자산에 투자하는 전략입니다.
표 1은 듀얼모멘텀의 기본적인 전략과 차이가 있습니다. 원조(?) 듀얼모멘텀은 미국 주식(A), 글로벌 주식(B), 채권(C) 형식으로 A, B 비교 후 때에 따라 C를 매수하는 전략입니다.
하지만, 표 1은 주식(A), 채권(B), 현금(C)으로 구성되어있습니다. 유의미한 결과를 얻기위해 테스팅 중입니다. 아직 듀얼모멘텀에 대해서 포스팅하지는 않았지만, 자세한 건 조만간 포스팅할 예정입니다.
표 1)의 규칙은 다음과 같습니다.
- 주식의 12개월 수익률이 플러스이고, 채권보다 높을 때 주식 100% 투자
- 채권의 12개월 수익률이 플러스이고, 주식보다 높을 때 채권 100% 투자
- 주식 또는 채권의 투자비율이 0이면 현금 100% 투자
1,2의 조건을 성립하는 함수를 만들기 위해서는 NOT 함수를 이용하면 되고, 3의 조건이 성립하는 함수를 만들기 위해서는 AND나 OR 함수를 이용하면 됩니다.
NOT 함수 이용
- =IF(NOT(주식 12개월 모멘텀 <0,100%, if(주식 12개월 모멘텀> 채권 12개월 모멘텀, 100%,0))
다소 복잡해 보이더라도 왼쪽부터 천천히 읽어보면 어렵지 않습니다. 위에 함수는 표 1)의 O21 셀의 함수입니다.
- 앞 if해석: 주식 12개월 모멘텀이 0보다 작다면 100% 표시, 그게 아니라면 뒤에 if 함수 규칙에 따르라.
- 뒤 if해석: 주식 12개월 모멘텀이 채권 12개월 모멘텀보다 크다면 100% 표시, 아니면 0으로 표시하라.
이처럼 IF 함수를 쓸 때 NOT을 섞어 쓰면 다중 조건 (A가 마이너스가 아님과 동시에 B보다 크면 100%, 둘 중 하나라도 조건에 만족하지 않다면 0%)을 완성할 수 있습니다.
IF함수를 두 개 쓸 때는 앞에 IF 함수와 뒤의 IF 함수를 두 개로 나눠서 해석하면 됩니다. (뒤에 IF함수를 일부러 빨갛게 표시함). 이렇게 해서 표 1의 O21 셀의 값은 0%가 되었습니다. 같은 행의 비교 값에서 주식과 채권의 수익률이 마이너스이기 때문입니다.
AND 함수 이용
- =IF(AND(주식투자비율 <=0, 채권투자비율 <=0),100%,0)
이번에는 표 1의 Q21 셀의 함수입니다. 주식과 채권의 투자비율이 0보다 작거나 같으면 현금 100%로 표시하라는 함수가 완성됩니다. IF + AND 함수는 A조건도 만족함과 동시에 B 조건도 만족할 때의 값을 나타낼 수 있습니다. 2개뿐 아니라 2개 이상의 여러 조건도 가능합니다.
OR 함수 이용
- =IF(OR(주식투자비율>0, 채권투자비율>0),0,100%)
주식과 채권 둘 중 하나만이라도 투자비율이 0보다 크다면 현금은 0%로 투자하고, 그게 아니라면 100% 투자하라는 함수가 됩니다. 이는 결론적으로 AND 함수를 썼었을 때와 똑같은 말이 됩니다.
같은 얘기를 두 가지 함수를 이용해서 예를든 이유는 백테스팅하다 보면 둘 중 하나만 만족해도 값을 표시해야 할 때가 생기기 때문에 미리 알아두시면 좋을듯하여 적어두었습니다.
마치며...
퀀트 전략은 '이럴때 이렇게 하고 이럴땐 이렇게해라!' 라는 다중조건이 굉장히 많습니다. IF와 AND, OR, NOT 함수를 잘 조합해서 사용해 보시면 좀 더 수월한 백테스팅을 할 수 있을 것입니다.
이상 엑셀 다중 조건 함수에 대한 포스팅을 마치겠습니다. 엑셀 사용에 도움이 되었기를 바랍니다.
'일기장 > 문제해결' 카테고리의 다른 글
블로그 저품질 고객센터 매크로 답변 (0) | 2021.08.10 |
---|---|
티스토리 블로그 저품질에 걸린 듯 합니다. (0) | 2021.08.06 |
맥 자동실행 프로그램 삭제 방법 (0) | 2021.07.25 |
엑셀로 전략 수익률, MDD 구하는 방법 (0) | 2021.06.15 |
윈도우 10 키보드 이상 문제 ㅋㅣㅂㅗㄷㅡㅁㅜㄴㅈㅔ해결법 (24) | 2021.06.10 |
댓글