states更新到turtletrading_ontime class

This commit is contained in:
gyz 2025-05-25 22:29:35 +08:00
parent 9bca280232
commit ce3b0fcda6

View File

@ -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
@ -423,6 +390,41 @@ 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,6 +845,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)