파이썬을 활용한 포트폴리오 및 자동 매매 프로그램(1)

Park yong jun
March 26th, 2020 · 1 min read

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)
전략3 DATA 수집

EX) 중국 웹 크롤링

EX) 네이버금융, DART 웹크롤링

EX) 네이버금융, DART 웹크롤링

DART 악재 검색 코드
1pip install selenium
2from selenium import webdriver
3import time
4
5def 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 fail
28
29bl = BadNews_Finder(blue_1)
30blue = []
31for i in blue_1:
32 if i not in bl:
33 blue.append(i)
34
35blue

DATA 정제

  • 수집된 DATA를 PANDAS, NUMPY 등의 라이브러리를 사용하여 전처리 실시

DATA 분석 및 시각화

전략1

가치투자

전략2

심리적 저점 시각화

전략3

중국 관련 종목 상관계수

전략4 매매 프로그램

급등주 포착 알고리즘 및 UI구현

전략5 딥러닝 예측 결과

예측결과 분석

Strategy Verification(전략 검증)

  • 기대수익률리스크를 계산하여 전략 검증 및 비교
  • 구체적인 전략 별 분석 및 검증 결과는 별도로 포스팅할 예정

프로세스

수익률 예시

RISK 예시

RISK(MDD)

Read More