Python으로 배우는 포트폴리오 분석 입문
Charlotte Werger
Data Scientist

$$
$$

# 무위험수익률과 목표수익률(0) 정의
rfr = 0
target_return = 0
# 가격에서 일간 수익률 계산
apple_returns=pd.DataFrame(apple_price.pct_change())
# 음의 수익률만 선택
negative_returns = apple_returns.loc[apple_returns['AAPL'] < target]
# 기대수익률과 하방 표준편차 계산
expected_return = apple_returns['AAPL'].mean()
down_stdev = negative_returns.std()
# 소르티노 비율 계산
sortino_ratio = (expected_return - rfr)/down_stdev
print(sortino_ratio)
0.07887683763760528

# rolling().max()으로 가격의 구간 최대값 계산 roll_max = apple_price.rolling(min_periods=1,window=250).max()# 구간 최대값 대비 일간 낙폭 계산 daily_drawdown = apple_price/roll_max - 1.0# 일간 최대 낙폭 계산 max_daily_drawdown = daily_drawdown.rolling(min_periods=1,window=250).min()# 결과 시각화 daily_drawdown.plot() max_daily_drawdown.plot() plt.show()

Python으로 배우는 포트폴리오 분석 입문