PLANNING(기획)
- 국내 및 해외주식을 분석하여 다양한 중기 또는 단기 전략 구성(포트폴리오)
- 다양한 전략을 구성하여 고객 맞춤 추천 서비스 및 자동 매매 프로그램 구현 목표
- 대규모 DATA 분석과 시각화, 자동 매매 프로그램 구현이 가능한 파이썬 사용
전략 | 기간 | 내용 |
전략1 | 중기 | 재무제표 크롤링 및 악재 검색 알고리즘, 기본적 분석 |
전략2 | 중기 OR 단기 | 포괄손익계산서 기반 성장형 우량주 선정, 지지선을 활용한 심리적 저점 알고리즘 |
전략3 | 단기 | 중국 웹 사이트 크롤링, 중국 TREND 파악하여 관련주 포착 |
전략4 | 일 OR 주 | 급등주 포착 알고리즘, 자동 매매 프로그램 구현 |
전략5 | - | 약 2000개 상장 종목의 다음날 주가 예측, 딥러닝, LSTM(Long Shot Term Memory) |
DATA 수집
- YAHOO FINANCE의 주가 DATA 수집(python::Finance Data Reader 라이브러리)
- DART, 네이버금융, 중국 사이트 등 웹크롤링(python::selenium 라이브러리)
- 키움 OPEN API를 사용하여 DATA 수집(pycharm)
1pip install selenium2from selenium import webdriver3import time45def BadNews_Finder(CODE):6 badnews = ['유상증자','감자','신주인수권부사채','전환사채','교환사채','불성실', '관리종목', '비적정', '횡령', '배임']7 dart = "http://dart.fss.or.kr/dsab002/main.do"8 driver = webdriver.Chrome("c:/data/chromedriver.exe")9 driver.get(dart)10 time.sleep(2)11 fail = []12 pass_ = []13 for code in CODE:14 driver.find_element_by_id('textCrpNm').clear() # 검색창 빈칸 만들기15 driver.find_element_by_id('textCrpNm').send_keys(code) # 검색창에 종목코드 입력16 driver.find_element_by_xpath('//*[@id="date6"]').click()17 for bn in badnews:18 driver.find_element_by_id('reportName').send_keys(bn) # 상세검색창에 악재 입력19 driver.find_element_by_xpath('//*[@id="searchpng"]').click()20 time.sleep(3)21 # 스크롤링 시작22 req = driver.page_source # 현재 페이지 소스 저장23 soup = BeautifulSoup(req, 'html.parser')24 if (len(soup.select("div .page_list")[0].text.strip()) > 0): #or (len(soup.select("div .page_list")) != 0): # 악재가 검색되면?25 fail.append(code)26 driver.find_element_by_id('reportName').clear()27 return fail2829bl = BadNews_Finder(blue_1)30blue = []31for i in blue_1:32 if i not in bl:33 blue.append(i)3435blue
DATA 정제
- 수집된 DATA를 PANDAS, NUMPY 등의 라이브러리를 사용하여 전처리 실시
DATA 분석 및 시각화
Strategy Verification(전략 검증)
- 기대수익률과 리스크를 계산하여 전략 검증 및 비교
- 구체적인 전략 별 분석 및 검증 결과는 별도로 포스팅할 예정