묻고 답해요
152만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨파이썬(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)
-
미해결비트코인 암호화폐 자동매매 코인봇 만들기 Part 1 - 무위험 전략 학습하기
에러코드 질문
수업처럼 리플 조회 이후를 주석 처리 없이 실행하면 아래처럼 오류가 나는데요. 어떻게 수정하면될까요?xcoin_api_client.py 를 수정해야할거같은데요.Traceback (most recent call last): File "/Users/hyunikjo/Desktop/InVestMent/bithumb(auto)/bithumb_public_api.py", line 143, in <module> result = get_btci() File "/Users/hyunikjo/Desktop/InVestMent/bithumb(auto)/bithumb_public_api.py", line 83, in get_btci result = api.xcoinApiCallGET(url, rgParams) File "/Users/hyunikjo/Desktop/InVestMent/bithumb(auto)/xcoin_api_client.py", line 138, in xcoinApiCallGET return (json.loads(self.contents)); File "/Users/hyunikjo/anaconda3/lib/python3.10/json/__init__.py", line 346, in loads return defaultdecoder.decode(s) File "/Users/hyunikjo/anaconda3/lib/python3.10/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Users/hyunikjo/anaconda3/lib/python3.10/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from Nonejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
-
미해결파이썬(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
-
해결됨파이썬(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 혹시 빼기를 하신 특별한 이유가 있으신 걸까요?감사합니다.
-
미해결비트코인 알고리즘 트레이딩 봇 개발
베이지안에서 질문있습니다.
pbounds = { 'revenue_rate' : (0.005,0.015), 'max_loss_rate' : (0.05,0.3), 'increase_rate' : (0.1,0.4), 'buy_cnt_limit' : (5,20), 'buy_amt_unit' : (10,20) } 여기서 buy_cnt_limit은 사실 정수가 나와야 하는데. 베이지안 최적화 후에 반올림하여 수정하는 방법밖에 없을까요?
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part2
CAGR, sharpratio 값이 다르게 나오는 이유?..추측?
선생님 안녕하세요! 제가 선생님 강의를 전부 너무 잘 수강하고 있습니다. 먼저 감사하다는 말씀을 드리고 싶어요! 강의 39분쯤 말씀하신, 저런 값들이 다른이유에대해 제가..감히 생각하는 바로는,선생님께서 제공해주신 종목들의 가격과, 제가 마켓와치에서 크롤링해서 가져온 종목들의 close 데이터 가격이 좀 다르더라구요! 그래서 그게 왜 다른지도 궁금하고, 혹시 그것이 원인이 아닐까 생각도 듭니다! 항상 좋은 강의감사드립니다.
-
미해결모두를 위한 ChatGPT Part 3 - ChatGPT로 퀀트 투자 전략 만들기
Colab 실습 - 올웨더 투자 전략 구성 및 백테스트 마지막 질문요
마지막 연도별 수익률 계산에서 만약 2022년 도 수익률을 보려면, 아래와 같이 코드를 변경해서 사용하면 안되나요?파이썬이 첨인지라,, 어떻게 변형해서 사용할지 이해를 잘 못했습니다,, # 연도별 수익률 계산 df_2022 = df.loc['2022-12-31'] / df.loc['2022-01-01'] - 1 df_2022.plot(figsize=(20,6), kind='bar'); plt.title('2022년 수익률');
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
ec2 사용하려고하는데 사이즈
안녕하세요 강사님!해당 프로그램 ec2 인스턴스로 돌리고 싶은데사이즈는 어느정도가 좋을까요?백테스트나 다른 것들은 로컬에서 돌릴예정이고실제 트레이딩 봇만 구동하려고합니다
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
강의자료
선생님이 사용하시는 강의자료 따로 다운 받을 수 있나요?
-
해결됨파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
2.6 reindex 관련 예제 질문
아래의 에러가 발생했을 때 어떻게 진행해야 할지 모르겠습니다.df1과 df2의 실행이 안됩니다.--------------------------------------------------------------------------- KeyError Traceback (most recent call last) File ~\anaconda3\Lib\site-packages\pandas\core\computation\scope.py:198, in Scope.resolve(self, key, is_local) 197 if self.has_resolvers: --> 198 return self.resolvers[key] 200 # if we're here that means that we have no locals and we also have 201 # no resolvers File ~\anaconda3\Lib\collections\__init__.py:1004, in ChainMap.__getitem__(self, key) 1003 pass -> 1004 return self.__missing__(key) File ~\anaconda3\Lib\collections\__init__.py:996, in ChainMap.__missing__(self, key) 995 def __missing__(self, key): --> 996 raise KeyError(key) KeyError: 'Timestamp' During handling of the above exception, another exception occurred: KeyError Traceback (most recent call last) File ~\anaconda3\Lib\site-packages\pandas\core\computation\scope.py:209, in Scope.resolve(self, key, is_local) 205 try: 206 # last ditch effort we look in temporaries 207 # these are created when parsing indexing expressions 208 # e.g., df[df > 0] --> 209 return self.temps[key] 210 except KeyError as err: KeyError: 'Timestamp' The above exception was the direct cause of the following exception: UndefinedVariableError Traceback (most recent call last) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:666, in BaseExprVisitor.visit_Call(self, node, side, **kwargs) 665 try: --> 666 res = self.visit(node.func) 667 except UndefinedVariableError: 668 # Check if this is a supported function name File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:549, in BaseExprVisitor.visit_Name(self, node, **kwargs) 548 def visit_Name(self, node, **kwargs): --> 549 return self.term_type(node.id, self.env, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\ops.py:85, in Term.__init__(self, name, env, side, encoding) 84 self.is_local = tname.startswith(LOCAL_TAG) or tname in DEFAULT_GLOBALS ---> 85 self._value = self._resolve_name() 86 self.encoding = encoding File ~\anaconda3\Lib\site-packages\pandas\core\computation\ops.py:109, in Term._resolve_name(self) 107 is_local = False --> 109 res = self.env.resolve(local_name, is_local=is_local) 110 self.update(res) File ~\anaconda3\Lib\site-packages\pandas\core\computation\scope.py:211, in Scope.resolve(self, key, is_local) 210 except KeyError as err: --> 211 raise UndefinedVariableError(key, is_local) from err UndefinedVariableError: name 'Timestamp' is not defined During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) Cell In[2], line 2 1 # 삼성전자 ----> 2 df1 = fdr.DataReader("005930", '2018-01-02', '2018-10-30') 4 # KODEX 200 (ETF) 5 df2 = fdr.DataReader("069500", '2018-01-03', '2018-10-30') File ~\anaconda3\Lib\site-packages\FinanceDataReader\data.py:19, in DataReader(symbol, start, end, exchange, kind) 16 start, end = _validate_dates(start, end) 17 if (symbol.isdigit() and len(symbol)==6 and exchange==None) or \ 18 (symbol.isdigit() and exchange and exchange.upper() in ['KRX', '한국거래소']): ---> 19 return NaverDailyReader(symbol, start, end, exchange, kind).read() 21 if (symbol.isdigit() and exchange and exchange.upper() in ['KRX-DELISTING']): 22 return KrxDelistingReader(symbol, start, end, exchange, kind).read() File ~\anaconda3\Lib\site-packages\FinanceDataReader\naver\data.py:29, in NaverDailyReader.read(self) 26 df.sort_index(inplace=True) 27 df['Change'] = df['Close'].pct_change() ---> 29 return df.query('index>=%r and index<=%r' % (self.start, self.end)) File ~\anaconda3\Lib\site-packages\pandas\util\_decorators.py:331, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs) 325 if len(args) > num_allow_args: 326 warnings.warn( 327 msg.format(arguments=_format_argument_list(allow_args)), 328 FutureWarning, 329 stacklevel=find_stack_level(), 330 ) --> 331 return func(*args, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\frame.py:4474, in DataFrame.query(self, expr, inplace, **kwargs) 4472 kwargs["level"] = kwargs.pop("level", 0) + 2 4473 kwargs["target"] = None -> 4474 res = self.eval(expr, **kwargs) 4476 try: 4477 result = self.loc[res] File ~\anaconda3\Lib\site-packages\pandas\util\_decorators.py:331, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs) 325 if len(args) > num_allow_args: 326 warnings.warn( 327 msg.format(arguments=_format_argument_list(allow_args)), 328 FutureWarning, 329 stacklevel=find_stack_level(), 330 ) --> 331 return func(*args, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\frame.py:4612, in DataFrame.eval(self, expr, inplace, **kwargs) 4609 kwargs["target"] = self 4610 kwargs["resolvers"] = tuple(kwargs.get("resolvers", ())) + resolvers -> 4612 return _eval(expr, inplace=inplace, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\eval.py:353, in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace) 344 # get our (possibly passed-in) scope 345 env = ensure_scope( 346 level + 1, 347 global_dict=global_dict, (...) 350 target=target, 351 ) --> 353 parsed_expr = Expr(expr, engine=engine, parser=parser, env=env) 355 # construct the engine and evaluate the parsed expression 356 eng = ENGINES[engine] File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:813, in Expr.__init__(self, expr, engine, parser, env, level) 811 self.parser = parser 812 self._visitor = PARSERS[parser](self.env, self.engine, self.parser) --> 813 self.terms = self.parse() File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:832, in Expr.parse(self) 828 def parse(self): 829 """ 830 Parse an expression. 831 """ --> 832 return self._visitor.visit(self.expr) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:421, in BaseExprVisitor.visit_Module(self, node, **kwargs) 419 raise SyntaxError("only a single expression is allowed") 420 expr = node.body[0] --> 421 return self.visit(expr, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:424, in BaseExprVisitor.visit_Expr(self, node, **kwargs) 423 def visit_Expr(self, node, **kwargs): --> 424 return self.visit(node.value, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:750, in BaseExprVisitor.visit_BoolOp(self, node, **kwargs) 747 return self._maybe_evaluate_binop(op, node.op, lhs, rhs) 749 operands = node.values --> 750 return reduce(visitor, operands) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:743, in BaseExprVisitor.visit_BoolOp.<locals>.visitor(x, y) 742 def visitor(x, y): --> 743 lhs = self._try_visit_binop(x) 744 rhs = self._try_visit_binop(y) 746 op, op_class, lhs, rhs = self._maybe_transform_eq_ne(node, lhs, rhs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:739, in BaseExprVisitor._try_visit_binop(self, bop) 737 if isinstance(bop, (Op, Term)): 738 return bop --> 739 return self.visit(bop) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:723, in BaseExprVisitor.visit_Compare(self, node, **kwargs) 721 op = self.translate_In(ops[0]) 722 binop = ast.BinOp(op=op, left=node.left, right=comps[0]) --> 723 return self.visit(binop) 725 # recursive case: we have a chained comparison, a CMP b CMP c, etc. 726 left = node.left File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:536, in BaseExprVisitor.visit_BinOp(self, node, **kwargs) 535 def visit_BinOp(self, node, **kwargs): --> 536 op, op_class, left, right = self._maybe_transform_eq_ne(node) 537 left, right = self._maybe_downcast_constants(left, right) 538 return self._maybe_evaluate_binop(op, op_class, left, right) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:458, in BaseExprVisitor._maybe_transform_eq_ne(self, node, left, right) 456 left = self.visit(node.left, side="left") 457 if right is None: --> 458 right = self.visit(node.right, side="right") 459 op, op_class, left, right = self._rewrite_membership_op(node, left, right) 460 return op, op_class, left, right File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:415, in BaseExprVisitor.visit(self, node, **kwargs) 413 method = "visit_" + type(node).__name__ 414 visitor = getattr(self, method) --> 415 return visitor(node, **kwargs) File ~\anaconda3\Lib\site-packages\pandas\core\computation\expr.py:670, in BaseExprVisitor.visit_Call(self, node, side, **kwargs) 667 except UndefinedVariableError: 668 # Check if this is a supported function name 669 try: --> 670 res = FuncNode(node.func.id) 671 except ValueError: 672 # Raise original error 673 raise File ~\anaconda3\Lib\site-packages\pandas\core\computation\ops.py:614, in FuncNode.__init__(self, name) 612 def __init__(self, name: str) -> None: 613 if name not in MATHOPS: --> 614 raise ValueError(f'"{name}" is not a supported function') 615 self.name = name 616 self.func = getattr(np, name) ValueError: "Timestamp" is not a supported function
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
my_data
my_data 자료를 최신 자료 기준으로 실습 할 수 있도록 2020,2021,2022년도 분도 올려주시면 좋겠습니다.
-
미해결평생 써먹는 데이터 기반 투자법 with 파이썬 퀀트 투자
리밸런싱에서 주기와 가중치 변경시 오류 현상
안녕하세요. 이전 맛집지도 프로젝트부터 이번 강의까지 재미있게 수강하고 있습니다. 다음 강좌도 재미있는 콘텐츠 내주시면 수강하려고 합니다.다름이 아니라, [2-5. 리밸런싱 기법]에서 강의에서는 weight를 1:1로 설정하고, Month 단위 리밸런싱만 다루는데요. 리밸런싱 주기를 quarter 또는 year로 하고 가중치를 달리 먹이면 오류가 발생합니다.closeDateSet의 날짜와 rebalancingDate의 날짜가 일치하지 않기 때문인 것 같은데요. 나름대로 열심히 손대봐도 답을 못찾아서 도움을 부탁드립니다. weight를 어떻게 집어 넣는지 다뤄주시면 좋을 것 같습니다. 감사합니다.# 데이터 로드 stockETF = getCloseData("SPY", "2002", "2022-6-17") # 주식 ETF bondETF = getCloseData("IEF", "2002", "2022-6-17") # 채권 ETF # kodex200 = 069500 # kodex10Bond = 152380 # S&P500 = SPY # 미국 7-10 국채 = IEF closeDataSet = pd.concat([stockETF, bondETF], axis=1) closeDataSet.columns = ['stockETF', 'bondETF'] closeDataSet.dropna(inplace=True) closeDataSet # 종목의 상장일을 기준으로 리밸런싱 날짜 선별 # rebalancingDate = getRebalancingDate(closeDataSet) rebalancingDate = getRebalancingDate(closeDataSet, "quarter") rebalancingDate # 리밸런싱 날짜에 맞춰서 가중치 설정 weightSet1 = pd.DataFrame({ 'stockETF': [0.7] * len(rebalancingDate), 'bondETF': [0.3] * len(rebalancingDate) }, index=rebalancingDate) # 모든 리밸런싱 날짜에 대한 가중치 지정 rebalPortfolioDayReturn, rebalPortfolioCumulativeReturn = getRebalancingPortfolioResult(closeDataSet, weightDf=weightSet1)
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
갑자기 에러가 생깁니다.. 해결 방법 좀 알려주세요.
잘되던 프로그램이 불현듯long take profit-get_position_amt error msg:ExecuteError [Executing] -5000: GET /fapi/v1/positionRisk is retired, please use GET /fapi/v2/positionRisk 메세지를 내보내며 계속 오류가 납니다종목 관계없이 생기는데숏포지션은 되면서 롱에서만 생기는데 해결방법좀 알려주시면 감사하겠습니다.
-
미해결퀀트 투자를 위한 주식 자동매매 봇 만들기 Part 1
파이참 가상환경 설정도 해주어야 되는지
궁금합니다.
-
미해결비트코인 암호화폐 자동매매 코인봇 만들기 Part 2 - 자동수익 코인봇 만들기
손절 코드 추가하려면 어떻게 해야 할까요?
안녕하세요:)강의 정말 잘 듣고 있습니다.혹시 수익률이 마이너스일 경우 손절 하는 코드는 따로 없는 것 같던데, 백테스팅, 실전 코드에 업데이트 해주실 수 있으실까요?수익률이 -3%가 되면 매도 할 수 있으면 더 좋은 전략이 될 수 있을 것 같은데... 코린이라 한계가 있습니다..
-
미해결퀀트 투자를 위한 주식 자동매매 봇 만들기 Part 1
파이썬 예제 코드 실습 에러
예제 코드를 파이참을 실행해서 어느 프로그램 경로에다가 어떤식으로 연결해야 실행이 되는지 잘 모르겠습니다. 현재 예제 코드가 실행이 잘 안되서요
주간 인기글
순위 정보를
불러오고 있어요