from datetime import datetime import time from monitor import Monitor class MonitorCoin (Monitor): """자산(코인/주식/ETF) 모니터링 및 매수 실행 클래스""" def __init__(self, cooldown_file: str = 'coins_buy_time.json') -> None: super().__init__(cooldown_file) def monitor_coins(self, symbol) -> None: print("[{}] {}".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'), symbol)) interval = 60 data = self.get_coin_some_data(symbol, interval) if data is not None and not data.empty: try: inverseData = self.inverse_data(data) recent_inverseData = self.check_point(symbol, inverseData) if recent_inverseData['point'].iloc[-1] != 1: return sell_success = self.sell_ticker(symbol, recent_inverseData) if not sell_success: return data = self.calculate_technical_indicators(data) recent_data = self.check_point(symbol, data) if recent_data['point'].iloc[-1] != 1: return buy_success = self.buy_ticker(symbol, recent_data) if not buy_success: return except Exception as e: print(f"Error processing data for {symbol}: {str(e)}") else: print(f"Data for {symbol} is empty or None.") time.sleep(0.5) return # ------------- Scheduler ------------- def run_schedule(self, ticker) -> None: while True: self.monitor_coins(symbol) time.sleep(1) if __name__ == "__main__": symbol = 'XRP' cooldown_file = './resources/coins_buy_'+symbol+'.json' MonitorCoin(cooldown_file).run_schedule(symbol)