diff --git a/TurtleOnTime.py b/TurtleOnTime.py index fa602ba..365e9a6 100644 --- a/TurtleOnTime.py +++ b/TurtleOnTime.py @@ -336,40 +336,7 @@ class TurtleTrading(object): else: return False - def day_end(self): - """Save current state to YAML file at the end of the day""" - # Create state directory if not exists - state_dir = "state" - if not os.path.exists(state_dir): - os.makedirs(state_dir) - - # Generate filename with current date - today = datetime.now().strftime("%Y-%m-%d") - filename = os.path.join(state_dir, f"{today}.yaml") - - # Save state to YAML - state_data = { - "main_state": { - "user_email": self.user_email, - "email_events": self.email_events, - "turtles": [ - { - "TradeCode": t.TradeCode, - "type": t.type, - "riskcoe": t.riskcoe, - "Capital": t.Capital, - "cash": t.cash, - "TrigerTime": t.TrigerTime, - "BuyStates": [vars(bs) for bs in t.BuyStates], - "tradeslog": [vars(tl) for tl in t.tradeslog], - "BreakOutLog": [vars(bol) for bol in t.BreakOutLog] - } for t in self.turtles - ] - } - } - - with open(filename, 'w') as f: - yaml.dump(state_data, f) + class TurtleTrading_OnTime(object): ''' 实时监测主程序,可以处理多个turtle @@ -423,7 +390,42 @@ class TurtleTrading_OnTime(object): logging.basicConfig(level=logging.INFO) # Load previous state from YAML if exists self.load_previous_state() + + def day_end(self): + """Save current state to YAML file at the end of the day""" + # Create state directory if not exists + state_dir = "state" + if not os.path.exists(state_dir): + os.makedirs(state_dir) + # Generate filename with current date + today = datetime.now().strftime("%Y-%m-%d") + filename = os.path.join(state_dir, f"{today}.yaml") + + # Save state to YAML + state_data = { + "main_state": { + "user_email": self.user_email, + "email_events": self.email_events, + "turtles": [ + { + "TradeCode": t.TradeCode, + "type": t.type, + "riskcoe": t.riskcoe, + "Capital": t.Capital, + "cash": t.cash, + "TrigerTime": t.TrigerTime, + "BuyStates": [vars(bs) for bs in t.BuyStates], + "tradeslog": [vars(tl) for tl in t.tradeslog], + "BreakOutLog": [vars(bol) for bol in t.BreakOutLog] + } for t in self.turtles + ] + } + } + + with open(filename, 'w') as f: + yaml.dump(state_data, f) + def get_stocks_data(self): """获取实时股票、基金数据,不保存 """ @@ -844,6 +846,8 @@ class TurtleTrading_OnTime(object): for turtle in self.turtles: mysql_database.delete_table(f"{turtle.TradeCode}") turtle.get_ready(100) + + self.day_end() time.sleep(16.5*600)