묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬 알고리즘 트레이딩 파트2: Interactive Brokers API를 활용한 실시간 알고리즘 트레이딩
환경설정
yml 파일을 통한 윈도우 환경 셋팅을 진행하였는데 위와 같은 오류가 나옵니다.추가적으로 설치가 필요한 환경이 있으면 정리 부탁드립니다.
-
해결됨파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
하이레벨 오버뷰 관점이란 용어 뜻 문의
하이레벨 오버뷰 관점이란 말이 무슨 뜻인지 설명 부탁드립니다.
-
해결됨파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
Qouta 리스트에 아무것도 안나옵니다.
spot이라고 검색을 하면 머라고 나와야하는데 아무것도 안나옵니다.. 제가 빠트린 작업이 있을까요?
-
해결됨파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
하드웨어 용량 사용 승인 요청 거부
안녕하세요. 강의 영상을 보면서 Korea Central 지역에 Quotas 요청을 보냈는데 아래와 같이 나오면서 승인이 안되네요QMS Update - Status: ResourceType: crpCores { Quota Bucket: TotalLowPriorityCores Status Description: Due to very high rates of Spot consumption, Microsoft is unable to approve additional quota at this time State: SpotVMNotAllowedForPayGCustomer Current Quota: 3 New Quota: 16 } Properties: [location, koreacentral] } Korea South 지역에 요청해도 동일하게 되지 않습니다. 어떻게 해야할까요?QMS Update - Status: ResourceType: crpCores { Quota Bucket: TotalLowPriorityCores Status Description: Due to very high rates of Spot consumption, Microsoft is unable to approve additional quota at this time State: SpotVMNotAllowedForPayGCustomer Current Quota: 3 New Quota: 16 } Properties: [location, koreasouth] }
-
미해결평생 써먹는 데이터 기반 투자법 with 파이썬 퀀트 투자
수익률이 맞는지 코드 문의 드립니다.
안녕하세요 수강을 하여 만족스러운 강의를 들었습니다. 개인적으로 궁금한 것을 구현했는데 소스가 맞는지 검증 부탁드려도 될까 합니다. 생각해 본 부분을 짜보긴 했지만 수익률이 잘못 나온 듯하여 오류를 아무리 검증해보려고해도 알 수가 없어서 문의드립니다. 추가로 다른 분에게도 도움이 되길 바라고, 또한 제 코드에서도 최적화 할 부분이 보일 듯하니 조언 부탁드립니다. 강의에서 나온 부분이 많기에 주석과 맥락등은 일부 제거 했습니다. [조건] 종목 TQQQ, SCHDadj_close 값TQQQ RSI<30 : TQQQ 3% 비중 증가 , SCHD 3%비중 감소리밸런싱 5:5 매 반기마다 실행 !apt-get update -qq !pip install yfinance import yfinance as yf import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm import numpy as np # 수정종가 def getAdjCloseData(ticker, end=None): return yf.download(ticker, period='12y')['Adj Close'] # RSI 데이터 def getRSIData(closeDataSet, periods=""): average_periods = 14 # 이평 초기에 값은 나오지 않기 때문에 더 계산하고 자름 delta = closeDataSet.diff() # closeDataSet - closeDataSet.shift(1) # 변화량 if periods != "": delta = delta.iloc[(periods + average_periods) * -1:] AU = pd.DataFrame(np.where(delta>=0, delta, 0), delta.index, delta.columns) AD = pd.DataFrame(np.where(delta<0, delta.abs(), 0), delta.index, delta.columns) # SMA AU_MA = getSimpleMovingAverage(AU, average_periods) AD_MA = getSimpleMovingAverage(AD, average_periods) rsi = AU_MA / (AU_MA + AD_MA) * 100 # RSI Signal rsiSignal = getSimpleMovingAverage(rsi, 9) if periods != "": rsi = rsi[average_periods:] rsiSignal = rsiSignal[average_periods:] return rsi, rsiSignal # RSI 값에 따른 리밸런싱 날짜 def getRSIRebalancingDate(closeDataSet, RSI = 30): rsi, rsiSignal = getRSIData(closeDataSet) data = rsi.copy() data = pd.DataFrame(data) dataIndex = data[data.iloc[:, 0] <= RSI].index return dataIndex def getWeightByRSI(closeDataSet): RSIrebalancingDate = getRSIRebalancingDate(closeDataSet, 30) # RSI가 30이하일 때 리밸런싱 날짜 rebalancingDate = getRebalancingDate(closeDataSet, 'half') # 동일비중 리밸런싱 할 날짜 rebal = pd.DataFrame([[1/len(closeDataSet.columns)] * len(closeDataSet.columns)] * len(rebalancingDate), index=rebalancingDate, columns=closeDataSet.columns) rebal['period'] = 1 # 기간에 따른 리밸런싱 rsiRebal = pd.DataFrame([[1/len(closeDataSet.columns)] * len(closeDataSet.columns)] * len(RSIrebalancingDate), index=RSIrebalancingDate, columns=closeDataSet.columns) rsiRebal['period'] = 0 # RSI에 따른 리밸런싱 weightDf = pd.concat([rebal, rsiRebal], axis=0) weightDf = weightDf.sort_index() # 리밸런싱 날짜 별 for i in range(1, len(weightDf)): if weightDf.iloc[i]['period'] == 1: # 기간에 따른 리밸런싱 weightDf.iloc[i, weightDf.columns.get_loc("TQQQ")] = weightDf.iloc[0, weightDf.columns.get_loc("TQQQ")] weightDf.iloc[i, weightDf.columns.get_loc("SCHD")] = weightDf.iloc[0, weightDf.columns.get_loc("SCHD")] else: # RSI에 따른 리밸런싱 weightDf.iloc[i, weightDf.columns.get_loc("TQQQ")] = weightDf.iloc[i-1, weightDf.columns.get_loc("TQQQ")] * 1.03 weightDf.iloc[i, weightDf.columns.get_loc("SCHD")] = weightDf.iloc[i-1, weightDf.columns.get_loc("SCHD")] * 0.97 return weightDf def getRSIPortfolioResult(closeDataSet): weight = getWeightByRSI(closeDataSet) weightDf = pd.DataFrame(weight) rebalancingDate = weightDf.index portfolio = pd.DataFrame() # 빈 데이터 프레임 생성 totalAsset = 1 # 총 자산, 초기값 1 start = rebalancingDate[0] # 리밸런싱 날짜, 초기값 첫 투자일 for end in rebalancingDate[1:]: weight = weightDf.loc[start] # 당월 리밸런싱 비율 weight = weight.drop('period') priceData = closeDataSet.loc[start:end] # 당월 가격 데이터 cumReturn = getCumulativeReturn(priceData) # 당월 누적 수익률 weightedCumReturn = weight * cumReturn # 당월 리밸런싱 비율이 반영된 누적 수 netCumReturn = totalAsset * weightedCumReturn # 전월 투자 결과 반영 (이전 블록의 누적 수익을 포함시킴) start = end # start 갱신 totalAsset = netCumReturn.iloc[-1].sum() # 총 자산 갱신 portfolio = pd.concat([portfolio, netCumReturn]) # 매월 데이터 추가 portfolio = portfolio.loc[~portfolio.index.duplicated(keep='last')] # 중복 데이터 제거 portfolioCumulativeReturn = portfolio.sum(axis=1) # 포트폴리오 누적 수익률 portfolioDayReturn = (portfolioCumulativeReturn / portfolioCumulativeReturn.shift(1)).fillna(1) # 포트폴리오 일간 수익률 return portfolioDayReturn, portfolioCumulativeReturn closeDataSet = pd.DataFrame() TQQQ = getAdjCloseData("TQQQ") # TQQQ SCHD = getAdjCloseData("SCHD") # SCHD closeDataSet = pd.concat([TQQQ , SCHD ], axis=1) closeDataSet.columns = asset closeDataSet.dropna(inplace=True) _, rsiCumReturn = getRSIPortfolioResult(closeDataSet) rsiMomentumCAGR, rsiMomentumDD, rsiMomentumMDD = getEvaluation(rsiCumReturn)
-
해결됨퀀트 투자를 위한 파이썬 트레이딩룸 만들기 - Part 3
Var 전개식 질문
좋은 강좌 감사합니다. 손필기하면서 강좌 보고 있어요.강좌 중 Var 전개식에서 E[{(X-E[X]) - (Y-E[Y])}^2] 로 표기되어 있는데요.E[{(X-E[X]) + (Y-E[Y])}^2] 이 맞는 표현 같습니다.그래야 u,v 치환해도 맞으니깐요.
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
처음 requirements.txt 폴더, 문의 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! (스크린샷이 있으면 더더욱 좋습니다)- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 말그대로 아나콘다3 깔려있는 폴더에 파일을 넣었는데.계속 에러가 납니다. 어떻게 해야할까요 아나콘다 폴더가아닌 다른 폴더에 넣어야할까요? vs코드로 파이썬 공부하다가 이걸로하려니 어지럽네요ㅠㅠ
-
미해결비트코인 알고리즘 트레이딩 봇 개발
ta 모듈을 못 찾습니다
ta 를 계속 못 찾아서 install 한 lib 를 삭제하고 다시 설치했는데 같은 오류가 발생합니다
-
미해결비트코인 알고리즘 트레이딩 봇 개발
데이터수집하기 오류
실행하면 해당 오류 발생합니다. requests2.25.1 입니다
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
강의 5.9 질문있습니다.
df['date'] = pd.to_datetime(df['date']) df['price'] = df['price'].astype(float) df.set_index('date', inplace=True) df = df.loc["2017-12-31"] # 비록 DatetimeIndex이지만, 날짜를 문자열 string으로 표현하여 loc을 이용한 range indexing이 가능합니다. df.rename(columns={'title_x':'name', 'title_y':'title'}, inplace=True) df['price_grp'] = pd.cut(df['price'], [0, 5000, 15000, 200000], labels=["저가", "중가", "고가"])7:51 분경의 강의 내용에서 이 코드가 에러가 발생하는데 어떻게 해결해야 하는지 알수 있을까요?4 df.set_index('date', inplace=True)이 부분에서 에러가 발생하는 것으로 보입니다.
-
미해결모두를 위한 ChatGPT Part 3 - ChatGPT로 퀀트 투자 전략 만들기
kospi_plus_kosdaq_list = fdr.StockListing('KRX')
# 코스피 + 코스닥 + 코넥스 리스트 kospi_plus_kosdaq_list = fdr.StockListing('KRX') 실행시 수업시 보여지는 리스트의 숫자가 차이가 많습니다. 제가 실행한 것은 2784개입니다. 이유가 무엇인가요?
-
미해결금융데이터 분석을 위한 판다스 활용법
Table of Contents에 관해 질문이 있습니다.
안녕하세요 강사님. 위 사진과 같이 사이드 부분의 table of contents가 나오지 않는것과 # 판다스를 사용하는 방법이라고 쳤는데 숫자가 나오지 않는 두가지 문제가 발생했습니다..무엇이 문제일까요..?
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
2.1 라이브러리가 설치부터 에러가 발생하네요..
2.1 라이브러리 설치부터 설치가 안되니 황당하네요..
-
해결됨퀀트 투자를 위한 파이썬 트레이딩룸 만들기 - Part 2
수업자료 - 파이썬 파일 내용 누락됨 (Lecture7. dash_core_components_ Slider & RangeSlider)
대상 강의 : Lecture7. dash_core_components_ Slider & RangeSlider수업자료인 파이썬 파일Section3_Dash_dcc_RangeSlider.py을 다운받았는데 내용이 아래 코드가 전부이고 강의 내용 코드가 누락되어 있습니다. 확인 부탁 드립니다. # -*- coding: utf-8 -*- """ Section3_Dash_DCC_RangeSilder """ #%%
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
파일 설치시 오류 메세지
다음과 같은 오류메세지는 무슨 뜻인가요?학습을 진행하는데, 문제가 없는지 궁금합니다.
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
질문이 있습니다.
3:40초 쯤 해당 셀을 그대로 실행하면 tuple 대신 list를 쓰라는 에러가 발생합니다.뒷 부분 ['rtn', 'ROE(%)'] 부분을 [['rtn', 'ROE(%)']] 으로 수정해야 코드가 정상 작동이 됩니다. 질문1. 대괄호로 감싸고 있는 이 부분도 tuple이라고 부를 수 있나요? 질문2. 선생님과 다르게 실행이 안되는 이유가 버전 차이일까요? 이유가 궁금합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! (스크린샷이 있으면 더더욱 좋습니다)- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
7.9 왜 재생이 안되죠? 다른건 다 되는데..
퀀트 1 강의 7.9가 재생이 안돼요. 2분까지 듣다가 갑자기 끊기더니 이젠 아예 연결이 안되네요. 다른 강의는 다 재생됩니다.
-
해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
append삭제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! (스크린샷이 있으면 더더욱 좋습니다)- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님!시간 날 때 마다 강사님 강의를 열심히 보면서 학습하고있는데현재 pandsas 2.0.3 으로 학습하는데 append라는 함수가 사라져서 질문을 드립니다!제가 구글링 했을 때는 concat으로 대체되었다는 말들이 많은데concat을 이용해서 합치려고 하면 어떻게 해야 할까요?pd.concat([names_df, {'Name':'명수', 'Age':100}], ignore_index=True )names_df.concat([names_df, {'Name':'명수', 'Age':100}, ignore_index=True )위의 두가지 방법으로는 해결이 되지 않아서 질문글 남깁니다!감사합니다!
-
미해결퀀트 투자를 위한 파이썬 트레이딩룸 만들기 - Part 2
파트3관련
안녕하세요! 좋은강의 너무 감사했어요! 파트3 계속 기다리는중인데 언제나오나요?? ㅠ
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
이틀째 설치에서 멈췄어요..제발도와주세요
선생님..ㅠㅠ 이틀째 혼자 해결해보려했지만 도저히 안되겠어서 질문드립니다..주피터랩에서 아래 명령어 실행시 아래 사진처럼 오류가뜹니다... 혹시나 해서 3.11 로 설치된 버전은 윈도우에서 에러뜬다고 해서 다운그레이드로 3.10.9도 했는데 소용이 없습니다 ㅠㅠ에러는 밑에 더 많습니다...!pip install pandas==0.25.3 error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. exit code: 1 [930 lines of output] C:\Users\E\AppData\Local\Temp\pip-install-pae_e_5b\pandas_3f818e724d534a0eaa4782a616cf7235\setup.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources C:\Users\E\anaconda3\Lib\site-packages\setuptools\__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-311 creating build\lib.win-amd64-cpython-311\pandas copying pandas\conftest.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\testing.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\_typing.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\_version.py -> build\lib.win-amd64-cpython-311\pandas copying pandas\__init__.py -> build\lib.win-amd64-cpython-311\pandas creating build\lib.win-amd64-cpython-311\pandas\api copying pandas\api\__init__.py -> build\lib.win-amd64-cpython-311\pandas\api creating build\lib.win-amd64-cpython-311\pandas\arrays copying pandas\arrays\__init__.py -> build\lib.win-amd64-cpython-311\pandas\arrays creating build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\chainmap.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\pickle_compat.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\_optional.py -> build\lib.win-amd64-cpython-311\pandas\compat copying pandas\compat\__init__.py -> build\lib.win-amd64-cpython-311\pandas\compat creating build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\accessor.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\algorithms.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\api.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\apply.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\base.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\common.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\config_init.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\frame.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\generic.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\index.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\indexers.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\indexing.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\missing.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\nanops.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\resample.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\series.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\sorting.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\strings.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\window.py -> build\lib.win-amd64-cpython-311\pandas\core copying pandas\core\__init__.py -> build\lib.win-amd64-cpython-311\pandas\core creating build\lib.win-amd64-cpython-311\pandas\errors copying pandas\errors\__init__.py -> build\lib.win-amd64-cpython-311\pandas\errors creating build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\api.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\clipboards.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\common.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\date_converters.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\feather_format.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\gbq.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\gcs.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\html.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\packers.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\parquet.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\parsers.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\pickle.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\pytables.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\s3.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\spss.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\sql.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\stata.py -> build\lib.win-amd64-cpython-311\pandas\io copying pandas\io\__init__.py -> build\lib.win-amd64-cpython-311\pandas\io creating build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\_core.py -> build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\_misc.py -> build\lib.win-amd64-cpython-311\pandas\plotting copying pandas\plotting\__init__.py -> build\lib.win-amd64-cpython-311\pandas\plotting creating build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_algos.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_base.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_common.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_compat.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_downstream.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_errors.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_expressions.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_join.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_lib.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_multilevel.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_nanops.py -> build\lib.win-amd64-cpython-311\pandas\tests copying pandas\tests\test_optional_dependency.py -> build\lib.win-amd64-cpython-311\pandas\tests