From 840675da5a2bc1d8b2290ebd6d8e5952f9a9d85f Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sat, 23 Aug 2025 22:47:09 +0900 Subject: [PATCH] init --- monitor.py => monitor_1h.py | 0 monitor_coin.py | 2 +- monitor_coin_1.py => monitor_coin_1h_1.py | 2 +- monitor_coin_2.py => monitor_coin_1h_2.py | 2 +- monitor_coin_ADA.py | 53 -------------------- monitor_coin_APE.py | 53 -------------------- monitor_coin_ARB.py | 53 -------------------- monitor_coin_BONK.py | 53 -------------------- monitor_coin_ENA.py | 53 -------------------- monitor_coin_HBAR.py | 53 -------------------- monitor_coin_KAIA.py | 53 -------------------- monitor_coin_LINK.py | 53 -------------------- monitor_coin_ONDO.py | 53 -------------------- monitor_coin_PENGU.py | 53 -------------------- monitor_coin_PEPE.py | 53 -------------------- monitor_coin_POL.py | 53 -------------------- monitor_coin_SAND.py | 59 ----------------------- monitor_coin_SEI.py | 53 -------------------- monitor_coin_SHIB.py | 53 -------------------- monitor_coin_STORJ.py | 53 -------------------- monitor_coin_SUI.py | 53 -------------------- monitor_coin_TON.py | 53 -------------------- monitor_coin_TRX.py | 53 -------------------- monitor_coin_UXLINK.py | 53 -------------------- monitor_coin_VIRTUAL.py | 53 -------------------- monitor_coin_WLD.py | 53 -------------------- monitor_coin_XLM.py | 53 -------------------- monitor_coin_XRP.py | 53 -------------------- monitor_processor.py | 4 +- monitor_stock.py | 2 +- simulation.py => simulation_1h.py | 2 +- 31 files changed, 7 insertions(+), 1285 deletions(-) rename monitor.py => monitor_1h.py (100%) rename monitor_coin_1.py => monitor_coin_1h_1.py (98%) rename monitor_coin_2.py => monitor_coin_1h_2.py (98%) delete mode 100644 monitor_coin_ADA.py delete mode 100644 monitor_coin_APE.py delete mode 100644 monitor_coin_ARB.py delete mode 100644 monitor_coin_BONK.py delete mode 100644 monitor_coin_ENA.py delete mode 100644 monitor_coin_HBAR.py delete mode 100644 monitor_coin_KAIA.py delete mode 100644 monitor_coin_LINK.py delete mode 100644 monitor_coin_ONDO.py delete mode 100644 monitor_coin_PENGU.py delete mode 100644 monitor_coin_PEPE.py delete mode 100644 monitor_coin_POL.py delete mode 100644 monitor_coin_SAND.py delete mode 100644 monitor_coin_SEI.py delete mode 100644 monitor_coin_SHIB.py delete mode 100644 monitor_coin_STORJ.py delete mode 100644 monitor_coin_SUI.py delete mode 100644 monitor_coin_TON.py delete mode 100644 monitor_coin_TRX.py delete mode 100644 monitor_coin_UXLINK.py delete mode 100644 monitor_coin_VIRTUAL.py delete mode 100644 monitor_coin_WLD.py delete mode 100644 monitor_coin_XLM.py delete mode 100644 monitor_coin_XRP.py rename simulation.py => simulation_1h.py (99%) diff --git a/monitor.py b/monitor_1h.py similarity index 100% rename from monitor.py rename to monitor_1h.py diff --git a/monitor_coin.py b/monitor_coin.py index a90b531..f1a476e 100644 --- a/monitor_coin.py +++ b/monitor_coin.py @@ -2,7 +2,7 @@ from datetime import datetime import time from config import * -from monitor import Monitor +from monitor_1h import Monitor class MonitorCoin (Monitor): """자산(코인/주식/ETF) 모니터링 및 매수 실행 클래스""" diff --git a/monitor_coin_1.py b/monitor_coin_1h_1.py similarity index 98% rename from monitor_coin_1.py rename to monitor_coin_1h_1.py index 5a9c80a..db44dd5 100644 --- a/monitor_coin_1.py +++ b/monitor_coin_1h_1.py @@ -2,7 +2,7 @@ from datetime import datetime import time from config import * -from monitor import Monitor +from monitor_1h import Monitor class MonitorCoin (Monitor): """자산(코인/주식/ETF) 모니터링 및 매수 실행 클래스""" diff --git a/monitor_coin_2.py b/monitor_coin_1h_2.py similarity index 98% rename from monitor_coin_2.py rename to monitor_coin_1h_2.py index 82fc69d..9eb62fe 100644 --- a/monitor_coin_2.py +++ b/monitor_coin_1h_2.py @@ -2,7 +2,7 @@ from datetime import datetime import time from config import * -from monitor import Monitor +from monitor_1h import Monitor class MonitorCoin (Monitor): """자산(코인/주식/ETF) 모니터링 및 매수 실행 클래스""" diff --git a/monitor_coin_ADA.py b/monitor_coin_ADA.py deleted file mode 100644 index df295a8..0000000 --- a/monitor_coin_ADA.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'ADA' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_APE.py b/monitor_coin_APE.py deleted file mode 100644 index ca9a095..0000000 --- a/monitor_coin_APE.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'APE' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_ARB.py b/monitor_coin_ARB.py deleted file mode 100644 index adc2bfb..0000000 --- a/monitor_coin_ARB.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'ARB' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_BONK.py b/monitor_coin_BONK.py deleted file mode 100644 index aa771c0..0000000 --- a/monitor_coin_BONK.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'BONK' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_ENA.py b/monitor_coin_ENA.py deleted file mode 100644 index 2b05d90..0000000 --- a/monitor_coin_ENA.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'ENA' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_HBAR.py b/monitor_coin_HBAR.py deleted file mode 100644 index 502b2db..0000000 --- a/monitor_coin_HBAR.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'HBAR' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_KAIA.py b/monitor_coin_KAIA.py deleted file mode 100644 index a0fc559..0000000 --- a/monitor_coin_KAIA.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'KAIA' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_LINK.py b/monitor_coin_LINK.py deleted file mode 100644 index 60b73ba..0000000 --- a/monitor_coin_LINK.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'LINK' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_ONDO.py b/monitor_coin_ONDO.py deleted file mode 100644 index 8ce4963..0000000 --- a/monitor_coin_ONDO.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'ONDO' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_PENGU.py b/monitor_coin_PENGU.py deleted file mode 100644 index 36a3be2..0000000 --- a/monitor_coin_PENGU.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'PENGU' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_PEPE.py b/monitor_coin_PEPE.py deleted file mode 100644 index 1a225fa..0000000 --- a/monitor_coin_PEPE.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'PEPE' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_POL.py b/monitor_coin_POL.py deleted file mode 100644 index 6b8c676..0000000 --- a/monitor_coin_POL.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'POL' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_SAND.py b/monitor_coin_SAND.py deleted file mode 100644 index 7c5ce19..0000000 --- a/monitor_coin_SAND.py +++ /dev/null @@ -1,59 +0,0 @@ -import pandas as pd -from dateutil.relativedelta import relativedelta -from datetime import datetime -import sqlite3 -import time -import requests -import json -from config import * - -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 = 'SAND' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_SEI.py b/monitor_coin_SEI.py deleted file mode 100644 index 4595303..0000000 --- a/monitor_coin_SEI.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'SEI' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_SHIB.py b/monitor_coin_SHIB.py deleted file mode 100644 index fcbde1a..0000000 --- a/monitor_coin_SHIB.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'SHIB' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_STORJ.py b/monitor_coin_STORJ.py deleted file mode 100644 index 8aabaaa..0000000 --- a/monitor_coin_STORJ.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'STORJ' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_SUI.py b/monitor_coin_SUI.py deleted file mode 100644 index b48d09c..0000000 --- a/monitor_coin_SUI.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'SUI' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_TON.py b/monitor_coin_TON.py deleted file mode 100644 index 7c45d1a..0000000 --- a/monitor_coin_TON.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'TON' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_TRX.py b/monitor_coin_TRX.py deleted file mode 100644 index 82d4d85..0000000 --- a/monitor_coin_TRX.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'TRX' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_UXLINK.py b/monitor_coin_UXLINK.py deleted file mode 100644 index 840b145..0000000 --- a/monitor_coin_UXLINK.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'UXLINK' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_VIRTUAL.py b/monitor_coin_VIRTUAL.py deleted file mode 100644 index 89c8bb6..0000000 --- a/monitor_coin_VIRTUAL.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'VIRTUAL' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_WLD.py b/monitor_coin_WLD.py deleted file mode 100644 index a468287..0000000 --- a/monitor_coin_WLD.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'WLD' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_XLM.py b/monitor_coin_XLM.py deleted file mode 100644 index 0f6dc88..0000000 --- a/monitor_coin_XLM.py +++ /dev/null @@ -1,53 +0,0 @@ -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 = 'XLM' - cooldown_file = './resources/coins_buy_'+symbol+'.json' - - MonitorCoin(cooldown_file).run_schedule(symbol) diff --git a/monitor_coin_XRP.py b/monitor_coin_XRP.py deleted file mode 100644 index 220c700..0000000 --- a/monitor_coin_XRP.py +++ /dev/null @@ -1,53 +0,0 @@ -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) diff --git a/monitor_processor.py b/monitor_processor.py index 73466e6..baea3d6 100644 --- a/monitor_processor.py +++ b/monitor_processor.py @@ -47,7 +47,7 @@ if __name__ == "__main__": # 모니터링할 스크립트 목록 scripts = [ - r"C:\workspace\AssetMonitor\monitor_coin_1.py", - r"C:\workspace\AssetMonitor\monitor_coin_2.py" + r"C:\workspace\AssetMonitor\monitor_coin_1h_1.py", + r"C:\workspace\AssetMonitor\monitor_coin_1h_2.py" ] monitor.monitor(scripts, interval=60) \ No newline at end of file diff --git a/monitor_stock.py b/monitor_stock.py index d7486da..07bd20e 100644 --- a/monitor_stock.py +++ b/monitor_stock.py @@ -5,7 +5,7 @@ import schedule from config import * import FinanceDataReader as fdr -from monitor import Monitor +from monitor_1h import Monitor class MonitorStock (Monitor): """자산(코인/주식/ETF) 모니터링 및 매수 실행 클래스""" diff --git a/simulation.py b/simulation_1h.py similarity index 99% rename from simulation.py rename to simulation_1h.py index 3b99d5d..6314c8d 100644 --- a/simulation.py +++ b/simulation_1h.py @@ -9,7 +9,7 @@ plt.rcParams['font.family'] ='AppleGothic' plt.rcParams['axes.unicode_minus'] =False from config import * -from monitor import Monitor +from monitor_1h import Monitor class Simulation: