# -*- coding: utf-8 -*- import time import datetime # 데이터베이스(MYSQL) ---- from db import DB # 배치프로세스 (Cron) ---- from cron import Cron # 지표 ---- # 머신러닝 ---- # 헬퍼함수 ---- # base path # BASE_DIR = os.path.dirname(os.path.abspath(__file__)) + '/collectors' # Cron(scheduler) : 반복적인 작업(배치 프로세스)를 위한 클래스 => 지속적으로 추가되는 테이블 생성 및 데이터(크롤링) 저장 # Trader : 현재가를 기준으로 트레이딩하는 클래스 => 10초 마다 실행 # Analysis : 트레이더 클래스에서 현재가를 전달 받으면 진입할 지 안할 지를 리턴해주는 클래스 => 물타기 등 다양한 판단에 따른 거래를 위한 데이터 리턴 # Indicator : 기술적 관점에 따라 매매 포지션 상태값을 리턴 => 보조지표, 주 지표 분석(봉 패턴 등)을 활용 # Muchine : 머신러닝 기반(통계적 관점)에 따라 매매 포지션 상태값을 리턴 # App : 앱의 초기화 및 기본 셋업 클래스 => 인터페이스의 역할도 수행(실행된 프로세스 리스트 출력) class App: exchange_instance_list = {} count = 0 # for multi threading def __init__(self): # Set db cursor obj self.db = DB() # create default tables self.db.create_default_tables() # insert default data self.db.insert_default_tables() # set cron self.cron = Cron() # def __del__(self): return False # def start_batch_process(self): # t_cron = threading.Thread(target=self.cron.start) # t_cron.daemon = True # t_cron.start() # 금융 종목 추가 def add_new_exchange(self, finance, exchange): self.db.insert_finance_to_base(finance, exchange) # 배치 프로세스 실행 def start(self): self.cron.start() # self.start_batch_process() if __name__ == "__main__": print('Oh! my bot. Started.', datetime.datetime.now()) app = App() app.start() while True: time.sleep(3600)