Q

PRIVATE NAVIGATION MODE

ML4T 탭 잠금 해제

패스워드를 확인하면 이 브라우저에서 ML4T 탭과 검색 결과를 표시합니다.

STUDY SEARCH

학습 자료 검색

제목과 설명, 키워드, 학습 본문에서 찾습니다.

검색 범위

검색어를 입력해 주세요.

SEARCH THE NOTEBOOK

찾고 싶은 금융·통계·전략 개념을 입력해 보세요.

CHAPTER 09.3 / EXAMPLE CHECK

9.3 Long-Short Python 예제를 점검하고 교정하기

38종목의 rank 1–21 숏·22–38 롱 선택과 -10.5263% 순노출을 19/19로 교정하고, 11개 연구 계약과 비용 후 1.432509%를 점검합니다.

9장. 백테스트 원칙과 Long-Short 예제 점검초급 학습 노트

9.3 Long-Short Python 예제를 점검하고 교정하기

Python(파이썬)으로 작성된 가상 Long-Short(롱·숏) 예제를 읽는다. 핵심 질문은 하나다. 38종목에서 rank < 22를 숏으로 둔 한 줄이 실제로 어떤 순위를 선택하고, 어떤 노출과 비용을 만드는가?

순위 방향부터 고정한다

이 사례는 같은 날짜의 38종목에 1위부터 38위까지 중복 없는 순위를 붙인다. 순위 숫자가 작을수록 상위이고, rank < 22인 종목을 Short position(숏 포지션), 나머지를 Long position(롱 포지션)으로 둔다. 방향을 반대로 읽으면 선택 종목과 전략 의미가 모두 뒤집힌다.

38종목 rank 임계값의 실제 선택 방향
조건선택 순위포지션종목 수
rank < 221위–21위Short position(숏 포지션)21개
rank가 22 이상22위–38위Long position(롱 포지션)17개

손으로 세면 숏은 221=2122-1=21개이고 롱은 3821=1738-21=17개다. 각 신호를 전체 종목 수 38로 나눠 절대 비중을 1/381/38로 두면 다음 노출이 된다.

Elongoriginal=17×138=173844.7368%Eshortoriginal=21×138=213855.2632%Egrossoriginal=17+2138=100%Enetoriginal=17213810.5263%\begin{aligned} E_{\mathrm{long}}^{\mathrm{original}} &= 17\times\frac{1}{38}=\frac{17}{38}\approx44.7368\% \\ E_{\mathrm{short}}^{\mathrm{original}} &= 21\times\frac{1}{38}=\frac{21}{38}\approx55.2632\% \\ E_{\mathrm{gross}}^{\mathrm{original}} &= \frac{17+21}{38}=100\% \\ E_{\mathrm{net}}^{\mathrm{original}} &= \frac{17-21}{38}\approx-10.5263\% \end{aligned}
ElongoriginalE_{\mathrm{long}}^{\mathrm{original}}
원래 임계값 방식의 Long exposure(롱 노출)
단위: 소수 비중과 퍼센트
EshortoriginalE_{\mathrm{short}}^{\mathrm{original}}
원래 임계값 방식의 Short exposure(숏 노출) 절댓값
단위: 소수 비중과 퍼센트
EgrossoriginalE_{\mathrm{gross}}^{\mathrm{original}}
원래 임계값 방식의 Gross exposure(총노출)
단위: 소수 비중과 퍼센트
EnetoriginalE_{\mathrm{net}}^{\mathrm{original}}
원래 임계값 방식의 Net exposure(순노출)
단위: 소수 비중과 퍼센트

순노출을 구하는 목적

순노출은 롱과 숏 중 어느 방향의 금액 노출이 더 큰지 확인하는 값이다. 기존 구성은 롱 44.7368%, 숏 55.2632%이므로 순노출이 -10.5263%다. 투자금 100원을 기준으로 해석하면 숏 노출이 롱 노출보다 약 10.53원 큰 상태다.

이 값을 확인해야 전략 수익이 종목 순위 선택에서 나온 것인지, 시장이 하락할 때 더 큰 숏 노출이 이익을 만든 것인지 구분할 수 있다. 순노출 0%는 롱과 숏의 금액만 균형이라는 뜻이며, Beta(베타)·산업·팩터 위험까지 중립이라는 뜻은 아니다.

이 금액 쏠림을 제거하는 교정안은 순위 기준을 rank < 20으로 바꾼다. 그러면 전체 38종목의 절반인 1–19위 19종목은 숏, 20–38위 19종목은 롱으로 자동 선택된다. 이어 롱 19종목의 비중 합계를 +50%, 숏 19종목의 비중 합계를 -50%로 맞춘다. 각 종목에는 절대 비중 약 2.6316%를 동일하게 배정한다.

wicorrected=0.519=1382.6316%Elongcorrected=19×0.519=50%Eshortcorrected=19×0.519=50%Enetcorrected=50%50%=0%\begin{aligned} \lvert w_i^{\mathrm{corrected}}\rvert &= \frac{0.5}{19}=\frac{1}{38}\approx2.6316\% \\ E_{\mathrm{long}}^{\mathrm{corrected}} &= 19\times\frac{0.5}{19}=50\% \\ E_{\mathrm{short}}^{\mathrm{corrected}} &= 19\times\frac{0.5}{19}=50\% \\ E_{\mathrm{net}}^{\mathrm{corrected}} &= 50\%-50\%=0\% \end{aligned}
wicorrected\lvert w_i^{\mathrm{corrected}}\rvert
교정 후 포트폴리오에서 ii번째 종목에 배정된 비중의 절댓값. 실제 비중은 롱 약 +2.6316%, 숏 약 -2.6316%다.
단위: 소수 비중과 퍼센트
ElongcorrectedE_{\mathrm{long}}^{\mathrm{corrected}}
교정된 Long exposure(롱 노출)
단위: 소수 비중과 퍼센트
EshortcorrectedE_{\mathrm{short}}^{\mathrm{corrected}}
교정된 Short exposure(숏 노출) 절댓값
단위: 소수 비중과 퍼센트
EnetcorrectedE_{\mathrm{net}}^{\mathrm{corrected}}
교정된 Net exposure(순노출)
단위: 소수 비중과 퍼센트

공매도에서는 주식을 먼저 빌린다

Stock borrowing(주식 차입)은 공매도할 주식을 빌리는 과정이다. 이 문맥에서 차입은 현금을 빌린다는 뜻이 아니다. C를 -50% 숏으로 보유하려면 다음 순서가 필요하다.

  1. C 주식을 빌린다.
  2. 빌린 C 주식을 시장에서 매도해 숏 포지션을 만든다.
  3. 기간이 끝나면 C 주식을 다시 매수한다.
  4. 매수한 C 주식을 빌려준 곳에 돌려주고, 빌린 기간의 Stock borrow cost(주식 차입비용)를 낸다.

Annual stock borrow rate(연 주식 차입 비용률) 12%는 한 기간에 12%를 낸다는 뜻이 아니다. 아래 계산에서는 1년을 252개 거래기간으로 나눠 한 기간의 비용률로 바꾼 뒤, 실제로 주식을 빌린 숏 노출 50%에만 적용한다.

같은 A·C 거래에서 비용까지 뺀다

9.1과 9.2의 가상 거래를 그대로 쓴다. 리밸런싱 전 A +20%, B -10%에서 목표 A +50%, C -50%로 바꿔 Turnover(회전율)는 90%다. A +2%, C -1%이므로 비용 전 수익률은 1.5%다. Commission(수수료) 2bp와 Slippage(슬리피지) 3bp, Annual stock borrow rate(연 주식 차입 비용률) 12%, 연 252기간을 적용한다.

일반적인 한 기간 비용 후 수익률 계약은 다음과 같다.

ctrade,t=Ttbcommission+bslippage10,000cborrow,t=Eshort,t[(1+rborrow,a)1m1]rnet,t=rgross,tctrade,tcborrow,t\begin{aligned} c_{\mathrm{trade},t} &= T_t\frac{b_{\mathrm{commission}}+b_{\mathrm{slippage}}}{10{,}000} \\ c_{\mathrm{borrow},t} &= E_{\mathrm{short},t}\left[(1+r_{\mathrm{borrow},a})^{\frac{1}{m}}-1\right] \\ r_{\mathrm{net},t} &= r_{\mathrm{gross},t}-c_{\mathrm{trade},t}-c_{\mathrm{borrow},t} \end{aligned}
ctrade,tc_{\mathrm{trade},t}
tt기간 Trading cost(거래비용률)
단위: 기간당 소수 수익률
TtT_t
Turnover(회전율)
단위: 소수 비중
bcommissionb_{\mathrm{commission}}
Commission(수수료)
단위: Basis point(베이시스 포인트)
bslippageb_{\mathrm{slippage}}
Slippage(슬리피지)
단위: Basis point(베이시스 포인트)
cborrow,tc_{\mathrm{borrow},t}
tt기간 Stock borrow cost(주식 차입비용)
단위: 기간당 소수 수익률
Eshort,tE_{\mathrm{short},t}
tt기간 Short exposure(숏 노출)
단위: 소수 비중
rborrow,ar_{\mathrm{borrow},a}
Annual stock borrow rate(연 주식 차입 비용률)
단위: 연간 소수 비율
mm
Periods per year(연간 관측 수)
단위: 기간/년
rgross,tr_{\mathrm{gross},t}
tt기간 비용 전 수익률
단위: 기간당 소수 수익률
rnet,tr_{\mathrm{net},t}
tt기간 비용 후 수익률
단위: 기간당 소수 수익률
0.9×2+310,000=0.00045=0.045%0.5[(1+0.12)12521]0.000224910.022491%1.5%0.045%0.022491%1.432509%\begin{aligned} 0.9\times\frac{2+3}{10{,}000} &= 0.00045 = 0.045\% \\ 0.5\left[(1+0.12)^{\frac{1}{252}}-1\right] &\approx 0.00022491 \approx 0.022491\% \\ 1.5\%-0.045\%-0.022491\% &\approx 1.432509\% \end{aligned}
INTERACTIVE STUDY TOOL순위·노출·비용 비교rank 임계값이 선택하는 숏·롱 순위와 교정 전후의 노출을 비교하고, A·C 거래의 비용 후 결과를 확인합니다.
38개
21개 숏

rank 임계값 방식

1–21위 · 롱 22–38위

17 · 숏 21

순노출 -10.5263%

19/19 교정

롱 비중 합계 +50% · 숏 비중 합계 -50% · 종목당 절대 비중 2.6316%

19 · 숏 19

순노출 0.0000%

회전율
90.00%
거래비용
0.045000%
차입비용
0.022491%
비용 전 수익률
1.500000%
비용 후 수익률
1.432509%

순위, 비중, 수익률과 비용은 교육용 가상 자료이며 실제 전략 성과가 아닙니다.

이 계산이 말할 수 없는 것

  • 19/19 교정은 순노출만 0으로 맞춘다. Beta·산업·팩터 중립이나 미래 수익을 보장하지 않는다.
  • 비용 후 1.432509%는 한 가상 기간의 산술 결과다. 실제 대차료는 달력일, 종목별 차입 가능성, 계약과 회수 조건에 따라 달라진다.

이해 점검

38종목에서 rank < 22가 실제로 선택하는 숏과 롱 순위는 무엇인가?

숏은 1위부터 21위까지 21개, 롱은 22위부터 38위까지 17개다. 이 사례는 순위 숫자가 작을수록 상위라는 방향을 먼저 고정한다.

교정안은 사람이 19종목씩 고르는 방식인가?

아니다. 순위 기준을 rank < 20으로 바꾸면 1–19위는 숏, 20–38위는 롱으로 자동 선택되어 각각 19종목이 된다.

각 종목 절대 비중을 1/38로 두면 원래 구성과 교정된 19/19 구성의 노출은 어떻게 다른가?

원래 구성은 롱 44.7368%, 숏 55.2632%, 순노출 -10.5263%다. 교정 구성은 양쪽 50%로 순노출 0%다.

회전율 90%, 거래비용 0.045%, 차입비용 약 0.022491%와 비용 전 수익률 1.5%에서 비용 후 수익률은 얼마인가?

1.5%0.045%0.022491%1.432509%1.5\%-0.045\%-0.022491\%\approx1.432509\%다. 거래비용과 차입비용을 실제 기간수익률에서 모두 차감한다.

완료 기준

다음을 직접 수행하면 9.3을 마친 것이다.

  1. 38종목의 rank < 22에서 숏 1–21위 21개와 롱 22–38위 17개를 표시한다.
  2. rank < 20에서 숏 1–19위와 롱 20–38위가 각각 19종목으로 자동 선택되는지 확인한다.
  3. 원래 롱 44.7368%, 숏 55.2632%, 순노출 -10.5263%와 교정된 19/19의 순노출 0%를 계산한다.
  4. 회전율 90%, 거래비용 0.045%, 차입비용 약 0.022491%와 비용 후 수익률 약 1.432509%를 재현한다.

이 페이지의 38종목 순위, A·B·C 비중, 수익률, Beta와 비용은 코드 점검 절차를 익히기 위한 가상 자료다. 실제 종목군, 전략 성과, 차입 가능성, 수익 또는 투자 적합성을 나타내거나 예측하지 않는다. 다음 페이지에서는 기간 단위가 섞인 Sharpe 계산을 별도로 점검한다.