From ce3b0fcda6098c12f3ad23a7b849dad082c9b74d Mon Sep 17 00:00:00 2001 From: gyz Date: Sun, 25 May 2025 22:29:35 +0800 Subject: [PATCH] =?UTF-8?q?states=E6=9B=B4=E6=96=B0=E5=88=B0turtletrading?= =?UTF-8?q?=5Fontime=20class?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TurtleOnTime.py | 74 ++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/TurtleOnTime.py b/TurtleOnTime.py index b199517..81eacea 100644 --- a/TurtleOnTime.py +++ b/TurtleOnTime.py @@ -335,40 +335,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 @@ -422,7 +389,42 @@ class TurtleTrading_OnTime(object): # 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): """获取实时股票、基金数据,不保存 """ @@ -843,7 +845,9 @@ class TurtleTrading_OnTime(object): for turtle in self.turtles: mysql_database.delete_table(f"{turtle.TradeCode}") turtle.get_ready(100) - time.sleep(16.5*600) + + self.day_end() + time.sleep(16.5*600) def monitor_all_turtles(self):