소스파일은 github.com/galaxywiz/StockCrawler_py 에서 확인 가능합니다.

 

이제 봇까지 만들었으니 이 봇을 실행시켜 주는 시작점을 만들어 주도록 합시다.

Main 은 말 그대로 시작점이니, 봇을 셋팅 해서 만들어 준 다음 이 봇을 어떻게 굴리는지에 대해 보시면 좋을 거 같습니다.

 

main.py

### 라이브러리 설치
# python -m pip install --upgrade pip

### 필요 라이브러리들
# pip install pandas pandas-datareader dataframe
# pip install psutil requests schedule telepot yfinance beautifulsoup4 plotly  

### 딥러닝에 필요한 것들
# pip install tensorflow keras matplotlib astroid==2.2.5 pylint==2.3.1

### 윈도우에서 talib 설치시 아래 링크에서 파이썬 버젼에 맞는 (cpXX-amd64)로 다운 받아서 해줘야 한다.
# https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib
# pip install .\TA_Lib-0.4.19-cp38-cp38-win_amd64.whl

# 리눅스에선 그냥 
# pip install ta-lib
# 안될경우 리눅스에서 설치법
# $ wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
# $ tar -xvf ta-lib-0.4.0-src.tar.gz 
# $ cd ta-lib
# $ ./configure --prefix=/usr
# $ make

# 이 프로그램 설계
# 1. 웹에서 인기 있는 종목 수집 (거래량 순)
# 2. 웹에서 데이터 수집 (한국 주식 / 미국 주식)
# 3. 전략 테스팅 매수 / 매도 시스널 포착
# 4. 3에서 포착된 주식 차트 그리고 텔레그램으로 전송

import os
import time
import signal
import sys

import botConfig
from bot import Bot

def test(bot):
    bot.getStocksList()
    bot.checkStrategy()

def signalHandler(sig, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)
#-----------------------------------------
# 메인 함수 시작
if __name__ == '__main__':
    signal.signal(signal.SIGINT, signalHandler)
    
    usaBot = Bot(botConfig.USABotConfig())
    koreaBot = Bot(botConfig.KoreaBotConfig())

    test(usaBot)
    test(koreaBot)

    botList = []
    botList.append(usaBot)
    botList.append(koreaBot)

    while(True):
        now = time.localtime()
        if now.tm_wday < 6:  ## 일요일은 안함
            for bot in botList:
                bot.do()

        current = "%04d-%02d-%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)
        print("지금시간 : [%s]" % current)
        time.sleep(60)

    

28라인까지는 이 프로그램 돌리기 위한 셋팅이나 아이디어에 대해서 적어 놨습니다.

실제 함수는 47라인에서 시작합니다.

 

48라인 보시면 시그널SIGINT 이런 거 받아오는데 저게 뭐냐 면 이 프로그램이 돌다가 Ctrl + C 입력이 들어오면 어떻게 처리할 것인지를 정의한 코드 입니다. 42라인 함수를 실행하는데 보면 exit로 프로그램을 강제로 꺼주게 하죠.

50라인에서 봇을 세팅해서 만들어 주고, 56 list안에 봇들을 넣어줍니다.

 

이후 while(true)로 무한 루프를 돌면서 1분마다 한 번씩 bot 들을 실행시켜 줍니다.

실행하면 아래 화면처럼 나올 겁니다.

 

'재테크 > 주식 알람 시스템 만들기' 카테고리의 다른 글

10. Bot  (0) 2020.11.08
9. 머신 러닝에 대해서  (0) 2020.11.08
8-3. 단기 변동성 돌파 전략  (0) 2020.11.08
8-2. MACD 전략  (0) 2020.11.08
8-1. 골든 크로스 전략  (0) 2020.11.08

+ Recent posts