Files
DeepCoin/monitor_coin.py
dsyoon 865a5c8680 init
2025-08-23 18:18:03 +09:00

56 lines
1.9 KiB
Python

from datetime import datetime
import time
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) -> None:
print("[{}] KRW COINs: {}".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'), ','.join(KR_COINS.keys())))
for symbol in KR_COINS:
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_buy_point(symbol, inverseData)
if recent_inverseData['sell_point'].iloc[-1] != 1:
continue
sell_success = self.sell_ticker(symbol, recent_inverseData)
if not sell_success:
continue
data = self.calculate_technical_indicators(data)
recent_data = self.check_buy_point(symbol, data)
if recent_data['buy_point'].iloc[-1] != 1:
continue
buy_success = self.buy_ticker(symbol, recent_data)
if not buy_success:
continue
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) -> None:
while True:
self.monitor_coins()
time.sleep(10)
if __name__ == "__main__":
KR_COINS.keys()
MonitorCoin().run_schedule()