본문 바로가기
일기장/문제해결

엑셀 다중 조건일 때 사용하는 IF 조합 AND, OR, NOT 함수

by 투동자 황소장 2021. 7. 30.

엑셀에서 백테스팅시 IF 함수를 많이 씁니다. IF 함수는 한 가지 조건에 대하여 TRUE, FALSE 값을 나타냅니다. 그래서 두 가지 이상 조건을 충족시켜야 할 때는 AND, OR, NOT함수 등을 조합해서 이용해야 합니다.

 

엑셀-다중조검-함수-AND,OR,NOT함수-표지
엑셀-다중조건-AND,OR,NOT함수

 

수동으로 퀀트 전략 백테스팅할때 경우에 따라서 다중 조건을 부여하는 경우가 많습니다. IF 함수와 조합해서 사용할 수 있는 다중 조건 함수를 사용한다면 조건에 맞게 수식을 완성할 수 있습니다.

 

아래 표 1은 듀얼모멘텀 전략을 백테스팅하는 엑셀 표입니다. 듀얼 모멘텀이랑 특정 자산 A, B 중에 12개월 모멘텀이 높은 자산에 투자하되 둘 중 높은 자산이 마이너스 수익률이라면 C자산에 투자하는 전략입니다.

 

표 1은 듀얼모멘텀의 기본적인 전략과 차이가 있습니다. 원조(?) 듀얼모멘텀은 미국 주식(A), 글로벌 주식(B), 채권(C) 형식으로 A, B 비교 후 때에 따라 C를 매수하는 전략입니다.

 

하지만, 표 1은 주식(A), 채권(B), 현금(C)으로 구성되어있습니다. 유의미한 결과를 얻기위해 테스팅 중입니다. 아직 듀얼모멘텀에 대해서 포스팅하지는 않았지만, 자세한 건 조만간 포스팅할 예정입니다. 

 

듀얼모멘텀전략-엑셀-표1
표1)-듀얼모멘텀-엑셀-표

 

표 1)의 규칙은 다음과 같습니다. 

 

  1. 주식의 12개월 수익률이 플러스이고, 채권보다 높을 때 주식 100% 투자
  2. 채권의 12개월 수익률이 플러스이고, 주식보다 높을 때 채권 100% 투자
  3. 주식 또는 채권의 투자비율이 0이면 현금 100% 투자

 

1,2의 조건을 성립하는 함수를 만들기 위해서는 NOT 함수를 이용하면 되고, 3의 조건이 성립하는 함수를 만들기 위해서는 AND나 OR 함수를 이용하면 됩니다. 

 

NOT 함수 이용

  • =IF(NOT(주식 12개월 모멘텀 <0,100%, if(주식 12개월 모멘텀> 채권 12개월 모멘텀, 100%,0))

 

다소 복잡해 보이더라도 왼쪽부터 천천히 읽어보면 어렵지 않습니다. 위에 함수는 표 1)의 O21 셀의 함수입니다. 

 

  1. 앞 if해석: 주식 12개월 모멘텀이 0보다 작다면 100% 표시, 그게 아니라면 뒤에 if 함수 규칙에 따르라. 
  2. 뒤 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 함수를 잘 조합해서 사용해 보시면 좀 더 수월한 백테스팅을 할 수 있을 것입니다.

 

이상 엑셀 다중 조건 함수에 대한 포스팅을 마치겠습니다. 엑셀 사용에 도움이 되었기를 바랍니다. 

반응형

댓글