분산투자 중 다수종목수익률계산방법 질문
276
1 câu hỏi đã được viết
섹션1 분산투자 : 다수종목수익률계산방법 수업 중 뒤쪽 그래프 작성에서 이해가 안가는 부분이 있어 질문 드립니다.
plt.figure(figsize=(20, 8))
cumReturn[stock].plot()
portCumReturn.plot(label = "porfolio", linestyle="dotted", linewidth=3)
이렇게만 하면 표가 제대로 안나오더라구요..
plt.figure(figsize=(20, 8))
for stock in cumReturn.columns:
cumReturn[stock].plot()
portCumReturn.plot(label = "porfolio", linestyle="dotted", linewidth=3)
저기서 왜 for 구문을 사용하는 것에 대해서 잘 모르겠습니다ㅠㅠㅠ
Câu trả lời 1
0
안녕하세요.
우선 그래프만 표현하는게 목적이라면, 이런식으로 더 짧은 코드로 작성이 가능한데요.
plt.figure(figsize=(20, 8))
cumReturn.plot()
portCumReturn.plot(label = "porfolio", linestyle="dotted", linewidth=3)
plt.legend()
plt.show()
수강생분이 작성하신 코드는 stock이라는 변수가 지정이 안된 상태에서 호출했기에 표현이 안되는 것이라고 추측합니다.
plt.figure(figsize=(20, 8))
############# cumReturn[stock].plot() ################## stock이 정의가 안됌
portCumReturn.plot(label = "porfolio", linestyle="dotted", linewidth=3)
제가 반복문을 활용해 코드를 작성한 이유는,
각 종목별로 cagr, mdd를 계산하고 출력하기 위함이었습니다.
for stock in cumReturn.columns:
# 그래프
cumReturn[stock].plot(label=stock)
# cagr
cagr = cumReturn[stock].iloc[-1] ** (252/len(cumReturn[stock]))
# mdd
dd = (cumReturn[stock].cummax() - cumReturn[stock]) / cumReturn[stock].cummax() * 100
mdd= dd.max()
print(stock)
print(f"cagr: {cagr}\nmdd: {mdd}")
print("=======")
그래프만 나타내는 것이 목적이라면 더욱 간단한 코드로 작성할 수도 있었겠죠!
물론 코드를 작성하는 방식은 다양하고 정답이란 없습니다.
저도 다시 확인해보니 for문에서는 cagr, mdd 계산만하고 표현해도 되겠다는 생각이 드네요!
감사합니다.
Opus/Sonnet 버전 관련 문의
0
3
1
"run_nvidia_gpu.bat" 실행후
0
6
0
섹션2 질문이요
0
10
1
섹션 2
0
7
1
섹션1.9 질문입니다!
0
16
2
웹서비스 방법
0
17
1
MCP 정의가 잘못되어 있음 (Chapter2)
0
19
1
수강 연장 문의드립니다.
0
21
2
13. (App 2) 기본기 훈련 에서
0
21
1
채점 프로그램 미작동
0
15
2
강의 자료 다운로드 자료요청
0
240
2
강의 자료 다운로드
0
399
3
수익률이 맞는지 코드 문의 드립니다.
0
342
1
리밸런싱에서 주기와 가중치 변경시 오류 현상
0
367
2
리밸런싱 포트폴리오 구현 원리 질문있습니다.
0
600
2
FAA 전략에서 상관성
0
354
1
일별 수익률 계산 시
0
725
1
퍼포먼스 지표로 샤프지수와 표준편차
0
474
1
강의 직접 관련은 아니지만 재무제표 크롤링 관련
0
591
1
2-5 리밸런싱 기법 강의자료 오류 질문
0
372
1
No module named 'FinanceDataReader' 이거 어떻게 해결하나요?
0
1567
1
동일비중인경우 포트 일별수익률
0
292
1
강의 내에 파이썬 버전과 패키지들 버전이 어떻게 되나요?
0
253
1
수업자료 관련
0
290
2

