묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨직장인을 위한 자산관리 101
예금 적금 - 금융감독원 URL 수정
https://finlife.fss.or.kr/finlife/main/main.do?menuNo=700000위 링크로 변경된거 같습니다.pdf에 있는 링크로 접속이 안되네요.
-
미해결비트코인 암호화폐 자동매매 코인봇 만들기 Part 1 - 무위험 전략 학습하기
빗썸 종합실습 실행하는데 오류가 납니다.
안녕하세요.빗썸 종합실습을 예제를 받아서 키변경만 하고 실행하였는데 오류가 납니다.뭐가 문제인지 확인 부탁드립니다. PS C:\Python310\python_test> & C:/Python310/python.exe c:/Python310/python_test/bithumb_xrp_basic_auto_trader.pyXRP 보유 개수 : 0.0Traceback (most recent call last): File "c:\Python310\python_test\bithumb_xrp_basic_auto_trader.py", line 164, in <module> xrp_buy_price = float(result['data'][0]['price'])IndexError: list index out of rangePS C:\Python310\python_test>
-
미해결평생 써먹는 데이터 기반 투자법 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 라이브러리 설치부터 설치가 안되니 황당하네요..
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
파일 설치시 오류 메세지
다음과 같은 오류메세지는 무슨 뜻인가요?학습을 진행하는데, 문제가 없는지 궁금합니다.
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
질문이 있습니다.
3:40초 쯤 해당 셀을 그대로 실행하면 tuple 대신 list를 쓰라는 에러가 발생합니다.뒷 부분 ['rtn', 'ROE(%)'] 부분을 [['rtn', 'ROE(%)']] 으로 수정해야 코드가 정상 작동이 됩니다. 질문1. 대괄호로 감싸고 있는 이 부분도 tuple이라고 부를 수 있나요? 질문2. 선생님과 다르게 실행이 안되는 이유가 버전 차이일까요? 이유가 궁금합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! (스크린샷이 있으면 더더욱 좋습니다)- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
제언
블로그타고왓습니다개인적으로 굉장히양질의강의를 저렴하게들어 죄송? 할 느낌이들정도엿습니다 제언하자면 돈버는데좀 직접적인걸 올려주시면 추가 결제하고싶을거같아요!예를들어 블로그에 코스모스를통해 에어드랍하는법도 올려주신거라든가디파이이자농사라든가각종미션들과 트래픽을만들어서 신규코인(ex 앱토스)를 에어드랍받는법? 그런것들이요ㅎㅎ아무튼 유익한시간이엇습니다. 스타일도멋지세요. 화이팅!
-
해결됨파이썬(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 )위의 두가지 방법으로는 해결이 되지 않아서 질문글 남깁니다!감사합니다!
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
볼린저 밴드 알고리즘을 돌리다가 오류가 뜹니다.
cancel before timestep-long ask_order_status error msg:ExecuteError [Executing] -1102: Mandatory parameter 'orderid' was not sent, was empty/null, or malformed.이 에러가 뜨는데 cancle 동작 중에 orderId가 반환이 안돼서 그런 것 같은데 바이낸스 api를 잘 몰라서 정확히 뭐가 문제인지 모르겠네요.
-
미해결비트코인 암호화폐 자동매매 코인봇 만들기 Part 2 - 자동수익 코인봇 만들기
AIS 3 전략 질문입니다
안녕하세요기본적으로 김치프리미엄을 이용한 AIS3 전략은 소스코드를 작성해서 제공하는 부분이 없으신가요?처음부터 혼자 짜려니 막막해서 참고해서 응용해보려는데 파트1에서나 파트2 모두 개념 설명만 해주시고 그냥 넘어가주셔서 질문남깁니다.
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
동작은 하는데 거래를 안 하는 건 파라미터 문젠가요?
역추세 메매로 돌리고 있는데 베이지안 최적화로 전체도 돌려보고 특정 부분도 돌려보면서 여러 값을 실제로 돌려봤는데 하루 동안 돌려도 거래를 아예 안 하더라구요. 리플로 했고 값은 아래와 같이 넣었습니다.revenue_rate = 0.08521445990492697 #익절 비율(Tunning) max_loss_rate = 0.014943429883010916 #손절 비율(Tunning) open_cnt_limit = 5.468906689466588 #최대 오픈 건수(Tunning)