월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
short index 관련 질문드립니다.
안녕하세요?좋은 강의 잘 듣고 있습니다.한가지 궁금한 게 있습니다. 선생님은 short index를 다음과 같이 정의하셨는데요,short_index = _df[ ((_df['position'] - df['position'].shift()) == -1) & (df['position'] == -1)].index 어차피 index 값이 -1,0,1 만 있으므로 아래의 short_index2 값과 short_index 값이 같은 걸 확인했습니다. (short_index.equals(short_index2)=>True) short_index2 = _df[ ((df['position'].shift()) == 0)& (df['position'] == -1))].index 혹시 빼기를 하신 특별한 이유가 있으신 걸까요?감사합니다.
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
CAGR, sharpratio 값이 다르게 나오는 이유?..추측?
선생님 안녕하세요! 제가 선생님 강의를 전부 너무 잘 수강하고 있습니다. 먼저 감사하다는 말씀을 드리고 싶어요! 강의 39분쯤 말씀하신, 저런 값들이 다른이유에대해 제가..감히 생각하는 바로는,선생님께서 제공해주신 종목들의 가격과, 제가 마켓와치에서 크롤링해서 가져온 종목들의 close 데이터 가격이 좀 다르더라구요! 그래서 그게 왜 다른지도 궁금하고, 혹시 그것이 원인이 아닐까 생각도 듭니다! 항상 좋은 강의감사드립니다.
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
fdr.DataReader 오류
ValueError: "Timestamp" is not a supported functionfinancedatareader를 import 하면 되는데, 실제로 데이터를 불러오면 저런 에러가 뜹니다.예 : df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30') 인터넷을 뒤져도 해결책이 잘 나오지 않는데 도움이 필요합니다버전은 아래와 같습니다finance-datareader==0.9.31
- 해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
fdr.DataReader 오류
ValueError: "Timestamp" is not a supported functionfinancedatareader를 import 하면 되는데, 실제로 데이터를 불러오면 저런 에러가 뜹니다.예 : df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30') 인터넷을 뒤져도 해결책이 잘 나오지 않는데 도움이 필요합니다
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
안녕하세요 ! 강의 내용 정리해서 github에 업로드 해도 될까요 ?
안녕하세요 ! 파트1부터 강의 잘 듣고 있습니다 !!복습하고 있는데 혹시, 강의 내용 정리해서 github에 업로드 해도 될까요 ?
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
inverse volatile 질문입니다
안녕하세요금융관련 지식이 없다 보니 기본적인 부분이 이해가?안되는거 같아 문의합니다.inverse volatile에서 일별 수익률을 구하고 표준편차를 구한 후에 변동성이 큰 자산에 반 비례하여 가중치을 더 부과 하는 방식으로 투자하는 걸로 스터디를 랬습니다. 그런데 🤔 금융지식이 없다보니..변동성이 큰 자산에 비중이 작게 투자 하잖아요.그런데 변동성 큰 부분이 위험할순있지만 엄청 급등해서 변동성이 높을순 있잖어요? 이런 생각을 하다보니 변동성이 큰 자산에 왜? 가중치응 적게 하는건지 잘 이해가 안되서요..ㅡ.ㅜ 답변부탁드립니다
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
실전1 관련
1.아래 코드에서 df1 df2가 각각 무엇이었는지 위에서 정의한 것인가요? all_ind_portval_df1 = reduce(lambda x, y: pd.concat([x, y.iloc[1:]]), individual_port_val_df_list)all_portval_df1 = all_ind_portval_df1.sum(axis=1)all_ind_portval_df2 = reduce(lambda x, y: pd.concat([x, y.iloc[1:]]), individual_port_val_df_list)all_portval_df2 = all_ind_portval_df2.sum(axis=1) pd.concat([all_portval_df1, all_portval_df2], axis=1).plot()[18]:<AxesSubplot:xlabel='date_time'>2.이렇게 똑같이 코드 실행하고 마지막 셀을 실행시키면 0 1그래프 중에 1 그래프만 나와요 똑같이 실행했는데 왜 일까요
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
loc
price_df = price_df.loc[all_ind_portval_df.index[0]:] price_df IEF QQQ date_time 2002-07-31 48.56497 20.67578 2002-08-01 48.76507 19.70484 2002-08-02 49.14173 19.28872 2002-08-05 49.38891 18.58652 2002-08-06 48.98871 19.50545 ... ... ... 2021-07-26 117.14000 368.49000 2021-07-27 117.64000 364.43000 2021-07-28 117.74000 365.83000 2021-07-29 117.38000 366.48000 2021-07-30 117.71000 364.57000 4784 rows × 2 columns 원래는price_df = price_df.loc[all_ind_portval_df.index[0]:]buy_and_hold_series = price_df["QQQ"] / price_df["QQQ"].iloc[0]buy_and_hold_series 인데 위의 price_df만 실행해본 것입니다그런데 price_df.loc[all_ind_portval_df.index[0]:]값이 원래 거의 처음에 불러온 price_df = pd.read_csv("data/us_etf_1.csv", index_col=[0], parse_dates=True).drop(["SHY", "TLT", "SPY"], axis=1) 값이랑 같게 나오는데 맞는 건가요?price_df.head()IEFQQQdate_time2002-07-26 48.72388 19.652822002-07-29 48.15301 20.658442002-07-30 48.12358 21.074552002-07-31 48.56497 20.675782002-08-01 48.76507 19.70484값이랑 같게 나오는데 맞는 건가요?all_ind_portval_df로 인덱싱을 해서 불러온것인데 왜 값이 원래 price_df 값으로 나오는지 잘못 나온건지 아니면 원래 이렇게 나오는게 맞나요?
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
cumulative rtn을 이용 부분 질문
강의중에 individual_port_val_df_list로 정의하고 뽑았을 때 맨 아래처럼 나오는데 result1, 2에서 for df in individualport_val_df_list[1:]:result_port_df_list.append(_df.iloc[1:]) 의 의미는 예를 들어 A B C 2018-01-31 0.30 0.50 0.20 2018-02-10 0.45 0.50 0.24 2018-02-20 0.36 0.40 0.28 2018-02-28 0.39 0.65 0.32,(여기다 복붙하면 이렇게 가독성이 떨어져서 아쉽네요)이런식으로 묶음 형태들로 뽑아져 나오는데 result 1for df in individualport_val_df_list[1:]:result_port_df_list.append(_df.iloc[1:]) 경우 의미가 2018-01-31(자금 첫 투입) 제외하고 첫번째로 예를들면 2018-02-28 0.408000 0.680000 0.272의 값과 같이 2개씩 나오는 거중에 처음을 남기고 두번째를 지워나가게 쓰인 것으로 이해했는데(맞나요?) result2if i == len(individual_port_val_df_list)-1:result_port_df_list.append(_df)else:result_port_df_list.append(_df.iloc[:-1])이 코드부분은 if i == len(individual_port_val_df_list)-1 인 경우와 else: result_port_df_list.append(_df.iloc[:-1]) 부분이 잘 이해가 안되는데 if i == len(individual_port_val_df_list)-1 이면 묶음으로 뽑아져 나올 때 그 한 묶음의 개수가 4라면(2018-01-31~2018-02-28) if i == len(individual_port_val_df_list)-1는 if i == 3이 되고 0,1,2,3이렇게 다 나오고 else:result_port_df_list.append(_df.iloc[:-1]) 는 어떻게 실행되는지 잘 이해가 안돼요..(강의중에 포트폴리오에 넣었다가 위의 값을 삭제하고 아랫값을 남긴다고 하셨는데 지금 코드가 이해가 안되네요 ㅠㅠ) 앞에서 제가 result1을 이해한 방식이 맞는지, 그리고 result2에서 질문드린 코드의 의미를 알려주실 수 있나요? 그리고 묶음이라고 표현했는데(표현방법을 잘 몰라서) 뽑히는 방식도 그렇게가 맞는지? 1.result_port_df_list = [individual_port_val_df_list[0]]for df in individualport_val_df_list[1:]:result_port_df_list.append(_df.iloc[1:])result1_ind = pd.concat(result_port_df_list)result1_port = result1_ind.sum(axis=1) 2. result_port_df_list = []for i, df in enumerate(individualport_val_df_list):if i == len(individual_port_val_df_list)-1:result_port_df_list.append(_df)else:result_port_df_list.append(_df.iloc[:-1]) result2_ind = pd.concat(result_port_df_list)result2_port = result1_ind.sum(axis=1) [ A B C 2018-01-31 0.30 0.50 0.20 2018-02-10 0.45 0.50 0.24 2018-02-20 0.36 0.40 0.28 2018-02-28 0.39 0.65 0.32, A B C 2018-02-28 0.408000 0.680000 0.272 2018-03-20 0.313846 0.627692 0.238 2018-03-29 0.345231 0.627692 0.238, A B C 2018-03-29 0.363277 0.605462 0.242185 2018-04-30 0.396302 0.605462 ㅇ0.276782]
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
퍼포먼스 지표에 표준편차를 추가하고싶은데요
안녕하세요 강사님.강의를 여러번 돌려보면서 이것저것 해보고 있습니다.퍼포먼스 지표에 표준편차를 추가하고싶은데요아래처럼 함수 만들고#"일간수익률컬럼".std() def get_sdt(log_rtn_df): std_val = log_rtn_df.std() return std_val이렇게 호출하면 될까요?get_sdt(get_returns_df(compare_df, log=True)).sort_values(ascending=False).to_frame("standard deviation")
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
궁금한 점이 있어 문의합니다.
샤프지수 계산하는 함수관련 영상을 보다 0.025 <-- 채권이자 정도를 넣으셨다고 했는데요.최근에 이자가 좀 올라가서 0.025 최근 이자가 0.5 라고 하면 이렇게 수정하면 되나요?def get_sharpe_ratio(log_rtn_df, yearly_rfr = 0.025): excess_rtns = log_rtn_df.mean()*252 - yearly_rfr return excess_rtns / (log_rtn_df.std() * np.sqrt(252))Sharpe ratio(샤프지수) = (평균 수익 - 무위험이자율) / 표준편차
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
올웨더 관련 문의
안녕하세요 강사님올웨더와 황금나비 전략을 공부하다 궁금한 점이 있어 문의합니다.자산이 미국을 기준으로 전략을 구현하셨는데요..올웨더 자산 목록의 한국에서 거래가능한 자산 목록으로 변경하여 동일 가중으로 백테스팅해봤습니다.그런데 미국자산과 너무 차이가 많이 나네요.. 한국은 거의 수익이 없고 심지어 마이너스 수익이 나오네요...자료는 네이버 증권에서 크롤링하였습니다.제가 잘못 한 부분이 있는건지..어디서 부터 잘못된건지를 모르겠네요..ㅡ.ㅜ한국 자산을.잘못 설정 한걸 까요?예제 에서 알려주신 내용labels = ["IJS", "QQQ", "SHY", "TLT", "GLD"] ## 라벨 frequency = [0.3, 0.4, 0.15, 0.075, 0.075] 구글링에서 위와 상대적으로 비슷한 자산이라고 하여 자산목록1[["KBSTAR 미국장기국채선물(H)","KODEX 미국S&P500선물(H)","KODEX 미국채10년선물","TIGER 골드선물(H)","tiger 금속선물"]]자산목록2[["KODEX200","kodex 국고채 3년","kodex 국채선물10년","tiger 금속선물","tiger 금은선물(H)"]]
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
5:53
안녕하세요. 선생님 5:53분에서 163항목을 df.resample(rule='M').last() 이렇게 해서 구하는 것과의 차이가 있을까요? 일단 제가 발견한 차이는 rule='M'은 실제 영업일 기준 말일이 아닌 달력상의 말일로 나오고 수익률은 똑같이 나오긴 하는데 이거 말고 다른 차이가 있을 지 궁금해서 질문 드립니다. 좋은 강의 잘 듣고 있습니다. 감사합니다.
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
개념질문입니다
코드와 무관한 개념적인 질문입니다. 강의 7:35를 보면 볼린저밴드의 하방에서 주가 그래프가 볼린저밴드 하방 그래프를 뚫고 다시 올라갈때 매도를 한다고 설명해 주신 부분이 잘 이해가 안됩니다. 볼린저밴드 하방을 뚫고 내려갈때 매수를 하고 유지하고 있다가 실제 주가가 볼린저밴드 상방을 뚫고 올라갈때 매도를해야 수익을 낼 수 있는게 아닌가요? 강의중에는 볼린저밴드 하방에서 매수와 매도가 일어나는것으로 설명을 해주셨는데 그럼 저가에 매수를해서 저가일때 지속적으로 들고있다가 실제 주가가 상승할때 판매한다는 의미로 이해가 됩니다. 의도하신 설명을 맞게 이해한걸까요?
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
4.4 Rolling correlation : 상관계수를 구할때 의문이 생겼습니다.
안녕하세여. 강의 잘 듣고 있습니다. 지금까진 잘 이해가 되다가 4.4 상관계수 들으면서 이해가 안되는부분이 생겨서 질문드립니다. 강의에서는 상관계수를 구할때 두 자산군의 일별 수익률로 구하셨는데, 두 자산군의 상관계수를 구할때 일별 주가로 구하면 안되는건가요? 왜 일별 수익률로 한번 가공을 거친후에 상관계수를 구하는지 헷갈립니다. 일별수익률의 상관계수와 가격 자체로 구한 상관계수가 차이가 있는것 보면, 구분해서 상관계수를 구해야 될거 같은데, 어떻게 구분을 해야 하는지 궁금합니다
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
시계열이 다른 자산의 포트폴리오 계산
안녕하세요! 1. 만약 리밸런싱 기반 포트폴리오에서, 주식은 SPY로 하고 채권은 한국 10년물로 한다면 서로 영업일이 다르기 때문에 두 종가 데이터를 concat하면 분명 결측치가 생길탠데, 이럴때는 그냥 merge해서 inner join된 부분만 사용해도 결과엔 지장이 없는건가요? 2. 현금을 포트폴리오에 넣는다고 하면 그냥 현금은 가격을 어떤 시점에서든 1로 보면되는건가요?
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
타임스탬프 질문
선생님, {0} {1} 이거는 어떤 의미인가요?
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
으아아아아아
으아아아아
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
Vectorizing / Event-based Backtesting
안녕하세요. 수강생입니다. 강의 정말 감사합니다~ 한가지 질문이 있습니다. 제목과 같이 Vectorizing bt, Event-based bt의 차이가 잘 이해가 되지 않습니다. 제가 하고 있는 (초급) backtesting은 아마도(?) Vectorizing bt인 것 같습니다. ohlcv 가격 데이터로 VAA, DAA, 변동성 돌파 등을 공부해보았습니다. 제가 여쭤보는 내용이 명확성이 떨어지는 것 같아 조금 답답한 맘도 있네요. 질문이 너무 포괄적일 수도 있는데요. Vectorizing bt와 Event-bbased bt 차이에 대해서 간략히(?) 설명해주실 수 있으실까요? ... 디핑님~
- 미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
후속 강의를 간절히 기다리고 있습니다.
안녕하세요. 한 줄 한 줄 소중한 코드 보면서 공부하고 있는 수강생입니다. 후속강의가 너무도 기다려 집니다. 초급에서, 중급까지 덕분에 데이터 분석 능력이 향상되는 것을 느낍니다. 특히나, 코드 사용법만 알려주시는 것이 아니라 수학적/통계적 background를 설명해주시는 부분이 너무나도 유용했습니다. 앞으로도 좋은 강의 지속 업데이트 부탁드립니다! 필수강하도록 하겠습니다!! 감사합니다.