분산투자 중 다수종목수익률계산방법 질문
252
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 계산만하고 표현해도 되겠다는 생각이 드네요!
감사합니다.
RandomForest vs lgb
0
13
1
전처리 관련질문
0
7
2
수강기간즘연장해주세요
0
7
1
작업형3 기출
0
7
1
유형2에서 데이터분할 생략 가능여부
0
14
2
9회 기출 유형3 질문
0
11
1
lgb 기초편
0
8
1
수업자료 문의
0
12
2
괄호 사용
0
12
1
작업형 2 데이터 전처리 질문
0
14
1
강의 자료 다운로드 자료요청
0
225
2
강의 자료 다운로드
0
372
3
수익률이 맞는지 코드 문의 드립니다.
0
317
1
리밸런싱에서 주기와 가중치 변경시 오류 현상
0
345
2
리밸런싱 포트폴리오 구현 원리 질문있습니다.
0
586
2
FAA 전략에서 상관성
0
330
1
일별 수익률 계산 시
0
701
1
퍼포먼스 지표로 샤프지수와 표준편차
0
453
1
강의 직접 관련은 아니지만 재무제표 크롤링 관련
0
573
1
2-5 리밸런싱 기법 강의자료 오류 질문
0
353
1
No module named 'FinanceDataReader' 이거 어떻게 해결하나요?
0
1546
1
동일비중인경우 포트 일별수익률
0
273
1
강의 내에 파이썬 버전과 패키지들 버전이 어떻게 되나요?
0
236
1
수업자료 관련
0
273
2

