1oscon commited on
Commit
092d89b
·
verified ·
1 Parent(s): 4f897f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -5
app.py CHANGED
@@ -122,7 +122,6 @@ def 启动模拟(合约: str, 周期: str, 参数json: str):
122
  def 停止模拟():
123
  """
124
  点击“停止模拟”时调用
125
- 说明:这里只设置引擎停止处理信号(不强制关闭WS)。
126
  """
127
  global 引擎实例
128
  if 引擎实例 is None:
@@ -145,8 +144,7 @@ def 获取状态():
145
  with 状态锁:
146
  # 从引擎里读净值/回撤(如果有)
147
  try:
148
- if 运行状态["运行中"] and 引擎实例 is not None and 引擎实例.交易所 is not None:
149
- # 交易所.净值 会在引擎每根收盘时更新;此处只是读
150
  nv = float(getattr(引擎实例.交易所, "净值", 1.0) or 1.0)
151
  dd = float(getattr(引擎实例.交易所, "回撤", 0.0) or 0.0)
152
  运行状态["净值"] = nv
@@ -183,8 +181,12 @@ with gr.Blocks(title="模拟实盘(OKX 公共WS + 多策略引擎)") as demo
183
  停止按钮.click(fn=停止模拟, outputs=状态显示)
184
  刷新按钮.click(fn=获取状态, outputs=[状态显示, 日志显示])
185
 
186
- # 页面加载时运行一次,并在此后每 2 秒持续刷新
187
- demo.load(fn=获取状态, outputs=[状态显示, 日志显示], every=2)
 
 
 
 
188
 
189
  if __name__ == "__main__":
190
  demo.launch(server_name="0.0.0.0", server_port=7860)
 
122
  def 停止模拟():
123
  """
124
  点击“停止模拟”时调用
 
125
  """
126
  global 引擎实例
127
  if 引擎实例 is None:
 
144
  with 状态锁:
145
  # 从引擎里读净值/回撤(如果有)
146
  try:
147
+ if 运行状态["运行中"] and 引擎实例 is not None and hasattr(引擎实例, '交易所') and 引擎实例.交易所 is not None:
 
148
  nv = float(getattr(引擎实例.交易所, "净值", 1.0) or 1.0)
149
  dd = float(getattr(引擎实例.交易所, "回撤", 0.0) or 0.0)
150
  运行状态["净值"] = nv
 
181
  停止按钮.click(fn=停止模拟, outputs=状态显示)
182
  刷新按钮.click(fn=获取状态, outputs=[状态显示, 日志显示])
183
 
184
+ # 页面首次加载时,运行一次获取状态函数
185
+ demo.load(fn=获取状态, outputs=[状态显示, 日志显示])
186
+
187
+ # 创建一个隐藏的定时器,每 2 秒触发一次 tick 事件
188
+ timer = gr.Timer(2)
189
+ timer.tick(fn=获取状态, outputs=[状态显示, 日志显示])
190
 
191
  if __name__ == "__main__":
192
  demo.launch(server_name="0.0.0.0", server_port=7860)