Askhat777 commited on
Commit
d036fb5
·
verified ·
1 Parent(s): 3c93954

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -26
app.py CHANGED
@@ -2670,34 +2670,41 @@ def render_ui():
2670
  confirm_reset = st.checkbox(
2671
  "Понимаю: это необратимо сотрет статистику/слоты. Если есть открытые LIVE-позиции, "
2672
  "сначала закрою их Panic Sell — сброс их НЕ продаст на бирже, только забудет в боте.",
2673
- value=False, key="confirm_full_reset",
2674
  )
2675
- if st.button(
2676
- "🔄 Сбросить всё и начать заново",
2677
- use_container_width=True,
2678
- disabled=state.is_running or not confirm_reset,
2679
- ):
2680
- has_open = any(not s.is_empty() for s in state.slots)
2681
- if has_open and not state.paper_trading:
2682
- st.error(
2683
- "Есть открытые LIVE-позиции в слотах. Сначала закрой их через Panic Sell — "
2684
- "иначе бот забудет про реальные монеты у тебя на балансе биржи."
2685
- )
2686
  else:
2687
- state.slots = [Slot(index=i) for i in range(state.num_slots)]
2688
- state.paper_trades = []
2689
- state.logs = []
2690
- state.total_profit = 0.0
2691
- state.trades_count = 0
2692
- state.market_snapshot = []
2693
- state.grading_positions = {}
2694
- state.last_full_screen_at = 0.0
2695
- state.last_autoscale_check_at = 0.0
2696
- state.recent_network_errors = []
2697
- state.status = "⏹ Остановлен (после сброса)"
2698
- state.save_persisted_state()
2699
- st.success("Готово статистика и слоты обнулены (в т.ч. в сохраненном состоянии). Можно запускать новый тест.")
2700
- st.rerun()
 
 
 
 
 
 
 
 
 
 
 
2701
 
2702
  st.divider()
2703
  st.markdown("**📐 Формула цены продажи (на слот)**")
 
2670
  confirm_reset = st.checkbox(
2671
  "Понимаю: это необратимо сотрет статистику/слоты. Если есть открытые LIVE-позиции, "
2672
  "сначала закрою их Panic Sell — сброс их НЕ продаст на бирже, только забудет в боте.",
2673
+ key="confirm_full_reset", # Убрали конфликтующий value=False
2674
  )
2675
+
2676
+ # Кнопка теперь всегда нажимается, защита находится внутри
2677
+ if st.button("🔄 Сбросить всё и начать заново", use_container_width=True):
2678
+ if state.is_running:
2679
+ st.warning("⚠️ Бот должен быть остановлен для сброса (нажмите 'Остановить портфель').")
2680
+ elif not confirm_reset:
2681
+ st.warning("⚠️ Сначала подтвердите сброс, поставив галочку выше.")
 
 
 
 
2682
  else:
2683
+ has_open = any(not s.is_empty() for s in state.slots)
2684
+ if has_open and not state.paper_trading:
2685
+ st.error(
2686
+ "Есть открытые LIVE-позиции в слотах. Сначала закрой их через Panic Sell — "
2687
+ "иначе бот забудет про реальные монеты у тебя на балансе биржи."
2688
+ )
2689
+ else:
2690
+ state.slots = [Slot(index=i) for i in range(state.num_slots)]
2691
+ state.paper_trades = []
2692
+ state.logs = []
2693
+ state.total_profit = 0.0
2694
+ state.trades_count = 0
2695
+ state.market_snapshot = []
2696
+ state.grading_positions = {}
2697
+ state.last_full_screen_at = 0.0
2698
+ state.last_autoscale_check_at = 0.0
2699
+ state.recent_network_errors = []
2700
+ state.status = "⏹ Остановлен (после сброса)"
2701
+ state.save_persisted_state()
2702
+
2703
+ # Снимаем галочку автоматически после успешного сброса
2704
+ st.session_state["confirm_full_reset"] = False
2705
+
2706
+ st.success("Готово — статистика и слоты обнулены (в т.ч. в сохраненном состоянии). Можно запускать новый тест.")
2707
+ st.rerun()
2708
 
2709
  st.divider()
2710
  st.markdown("**📐 Формула цены продажи (на слот)**")