(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
Part1. 제공해주신 프롬프트 - min_trading_value: 5000000000 ( 거래대금 최소 50억원 ) Part3. 프롬프트 scorer.py 에 score volume(self, stock: StockData) 메서드를 추가해줘. 거래대금( stock.trading _value) 기준으로 점수를 매겨: 3점: 1조 이상 (1_000_000_000_000) 2점: 5천억 이상 (500_000_000_000) 1점: 1천억 이상 (100_000_000_000) 0점: 1천억 미만 mandatory_passed → news >= 1 and volume >= 1 (필수 조건 통과 여부) Part3에서 1천억 미만이면 필수 조건을 통과하지 못하기 때문에 Part1의 거래대금 50억으로 필터링하는게 의미가 없어 보입니다. AI가 이 모순을 찾더군요.
강의를 들어보니 현재 시스템은 빅테크에 핏된 것으로 보입니다. 만약 제가 생각하는 유망한 종목들을 후보군에 넣으려고 한다면 수정해야할 사항이 적진 않아보입니다. 기존 nasdaq_top_100외에도 다른 종목들을 추가할 수 있는지, 가능하다면 어떤 식으로 변경이 이뤄져야하는지가 궁금합니다. 매수 후보 루프에 사용되는 ML모델(predict.py) 가격데이터 수집 후보군(stock.py nasdaq_top_100 대신 다른 필드 추가?) 주가 관련 컬럼 목록 정의 수정(stock_columns) 등등..
과제를 따라가면서 하다가 user-memory-setup 폴더에 /memory를 입력하면 .claude 폴더도 안만들어지고, CLAUDE.md 파일도 안 만들어집니다. 그래서 클로드를 통해 해당 폴더랑 파일은 만들어서 안에 나의 정보를 작성하고 /memory를 입력했음에도 불구하고 ~/.claude/ CLAUDE.md 0L, 0B 표시만 뜹니다. 폴더도 확인했는데 왜 이렇게 뜰까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 예시문제 작업형2(2025v)에서 저는 아래와 같이 문자는 제외하고, rmse (max_depth, n_estimators 최적화도 진행함)를 구했는데요! 레이블인코딩하지 않은 경우라면, 채점시에 점수가 낮아질 확률이 높아지나요?? 합불에 크게 영향을 주는 지 궁금합니다. train= train.select _dtypes(exclude='O') test= test.select _dtypes(exclude='O') 추가로 제가 작성한 코드를붙입니다! train=train.dropna(axis=1) test=test.dropna(axis=1) train= train.select _dtypes(exclude='O') test= test.select _dtypes(exclude='O') # print(train.shape, test.shape) # print(train.isnull().sum().sum()) # print(test.isnull().sum().sum()) from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train.drop('총구매액', axis=1),train.pop('총구매액'), test_size=0.2, random_state=0) # print(X_tr.shape,X_val.shape,y_tr.shape,y_val.shape) from sklearn.ensemble import RandomForestRegressor rf=RandomForestRegressor(random_state=0,max_depth=7, n_estimators=200) rf.fit (X_tr,y_tr) pred=rf.predict(X_val) from sklearn.metrics import root_mean_squared_error print(root_mean_squared_error(y_val,pred)) #base 820.5860282970249 #3,100 875.2260812472606 #3,200 873.5386940171521 #3,400 874.1382881938769 #5,400 824.3641497143064 #5,200 818.239922754944 #7,100 804.8452832752822 #7,200 804.418493364831 // #10,300 814.7390378036772 # 10,100 820.1853548789979 pred=rf.predict(test) pd.DataFrame({'pred':pred}).to_csv('result.csv',index=False) print( pd.read _csv('result.csv'))
기존 pro요금제 구독을 끊고, api key 방식으로 갈아타려고 했으나, Purchasing prepaid credits is not allowed before upgrading your plan. 라는 문구가 뜨면서 거래가 거절되네요. 찾아보니, pro plan을 먼저 구독 하고 나서 api key 방식을 사용할 수 있는 것처럼 보이는데요
24강 전체 파이프라인 호출하는 것 까지 들었는데요. 깃 클론으로 내려받은 코드에는 강사님이 24강까지 강의한 내용의 코드가 이미 구현이 되어있는 것 같은데요. 저는 22강부터 24강까지 따라서 구현을 하면 이미 있는 강사님이 구현한 파일에 제가 새롭게 덮어쓰는게 되는 거죠? 제가 이해하고 있는게 맞나요?
인코딩시 concat을 사용하는 상황에 대해 질문이 있습니다. 1.train과 test의 unique한 값을 비교해서(set에 넣어서) 1) 만약 종류가 완전히 같을 경우 one-hot 인코딩 : train, test 각각 get_dummies label 인코딩 : for문 내부에서 train은 fit_transform, test는 transform 2) 갯수는 다르지만 train의 종류가 test의 종류를 모두 포함 할 경우 one-hot 인코딩 : concat한 후 get_dummies 한 후 분리 label 인코딩 : for문 내부에서 train은 fit_transform, test는 transform 3) 각자 서로에게 없는 종류를 가진 경우 one-hot 인코딩 : concat한 후 get_dummies 한 후 분리 label 인코딩 : concat한 후 fit_transform 한 후 분리 이렇게 구분하면 되는건가요? 2.또한 궁금한게, 굳이 저렇게 상황별로 외우지 말고 그냥 무조건 concat해서 인코딩 후 분리하는 전략은 어떤지 의견이 궁금합니다.
작업형 2을 여러 데이터를 구해서 해보고 있는데 하이퍼 파라미터 변수를 조정해서 평가결과를 보면 학습률이 높거나 트리가 깊어야 점수가 좋게 나오는 경우가 있는 것 같습니다 예를 들면 대중적으로는 아래처럼 쓰는데 n_estimators=500, learning_rate=0.05, max_depth=6 이렇게 넣어야 score가 높게 나오는 경우입니다 n_estimators=400, learning_rate=0.13, max_depth=10 시험에서도 대중적인 파라미터 대신 평가 점수만 보고 파라미터를 조정해도 괜찮을지 궁금합니다!
강의를 듣다가 알파밴티지 뉴스를 현재느 3일치만 가져온다고 해서 클로드코드랑 얘기를 해봤는데 아래와 같은 얘기를 해주네요. 변수명을 바꿔도 될까요? 그리고 뉴스를 7일치로 변경하면 더 좋은가요? 동작 방식 - time_from: 현재 날짜에서 3일 전 00:00부터 (%Y%m%dT0000 포맷, 예: 20260603T0000) - time_to: 미지정 → AlphaVantage는 time_from만 주면 그 시점부터 현재까지의 기사를 반환합니다 - 따라서 실제로는 최근 약 3일간의 뉴스를 수집합니다 - limit: 100 → 티커당 최대 100개 기사 - 이후 relevance_score >= 0.2 필터를 거쳐 평균 감성점수를 계산해 ticker_sentiment_analysis 테이블에 저장합니다 ⚠ 참고: 헷갈리는 변수명 변수명이 yesterday(어제)지만 실제 계산은 timedelta(days=3)으로 3일 전입니다. 변수명과 실제 값이 불일치하니, 나중에 코드를 수정하실 때 혼동하지 않도록 주의하시거나 변수명을 three_days_ago 등으로 바꾸시는 걸 권합니다. 요약하면, 현재 가져오는 뉴스는 최근 3일치입니다.