Stage 07.4.3.1 — trend strategy stabilization
This commit is contained in:
@@ -168,10 +168,16 @@ async def open_system_management(callback: CallbackQuery) -> None:
|
||||
@router.callback_query(F.data == "settings:auto")
|
||||
async def open_auto_settings(callback: CallbackQuery) -> None:
|
||||
AutoTradeRunner.set_current_screen("settings_auto")
|
||||
|
||||
if callback.message is None:
|
||||
await callback.answer("Сообщение не найдено", show_alert=True)
|
||||
return
|
||||
|
||||
AutoTradeRunner.unregister_screen(
|
||||
chat_id=callback.message.chat.id,
|
||||
message_id=callback.message.message_id,
|
||||
)
|
||||
|
||||
state = AutoTradeService().get_state()
|
||||
|
||||
strategy_map = {
|
||||
@@ -181,13 +187,15 @@ async def open_auto_settings(callback: CallbackQuery) -> None:
|
||||
}
|
||||
strategy = strategy_map.get(state.strategy or "", "—")
|
||||
risk = f"{state.risk_percent:.1f}%" if state.risk_percent is not None else "—"
|
||||
leverage = f"x{state.leverage:g}" if state.leverage is not None else "—"
|
||||
|
||||
text = (
|
||||
"<b>🤖 Автоторговля</b>\n\n"
|
||||
"<b>СИСТЕМА</b> · Настройки\n\n"
|
||||
f"Стратегия: {strategy}\n"
|
||||
f"Инструмент: {state.symbol}\n"
|
||||
f"Риск: {risk}\n\n"
|
||||
f"Риск: {risk}\n"
|
||||
f"Плечо: {leverage}\n\n"
|
||||
"Выберите настройку:"
|
||||
)
|
||||
|
||||
@@ -195,9 +203,10 @@ async def open_auto_settings(callback: CallbackQuery) -> None:
|
||||
builder.button(text="🧠 Стратегия", callback_data="settings:auto_strategy")
|
||||
builder.button(text="📈 Инструмент", callback_data="settings:auto_symbol")
|
||||
builder.button(text="🛡️ Риск", callback_data="settings:auto_risk")
|
||||
builder.button(text="⚙️ Плечо", callback_data="settings:auto_leverage")
|
||||
builder.button(text="⬅️ Назад", callback_data="system:management")
|
||||
builder.button(text="🤖 Автоторговля", callback_data="auto:home")
|
||||
builder.adjust(2, 1, 2)
|
||||
builder.adjust(2, 2, 2)
|
||||
|
||||
await callback.message.edit_text(text, reply_markup=builder.as_markup())
|
||||
await callback.answer()
|
||||
@@ -313,6 +322,46 @@ async def set_auto_risk(callback: CallbackQuery) -> None:
|
||||
await callback.answer("Риск обновлён")
|
||||
|
||||
|
||||
@router.callback_query(F.data == "settings:auto_leverage")
|
||||
async def open_auto_leverage_settings(callback: CallbackQuery) -> None:
|
||||
AutoTradeRunner.set_current_screen("settings_auto")
|
||||
|
||||
if callback.message is None:
|
||||
await callback.answer("Сообщение не найдено", show_alert=True)
|
||||
return
|
||||
|
||||
text = (
|
||||
"<b>⚙️ Плечо</b>\n\n"
|
||||
"<b>СИСТЕМА</b> · Настройки · Автоторговля\n\n"
|
||||
"Выберите плечо:"
|
||||
)
|
||||
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.button(text="x1", callback_data="settings:auto_leverage:1")
|
||||
builder.button(text="x2", callback_data="settings:auto_leverage:2")
|
||||
builder.button(text="x3", callback_data="settings:auto_leverage:3")
|
||||
builder.button(text="x5", callback_data="settings:auto_leverage:5")
|
||||
builder.button(text="x10", callback_data="settings:auto_leverage:10")
|
||||
builder.button(text="x20", callback_data="settings:auto_leverage:20")
|
||||
builder.button(text="⬅️ Назад", callback_data="settings:auto")
|
||||
builder.adjust(3, 3, 1)
|
||||
|
||||
await callback.message.edit_text(text, reply_markup=builder.as_markup())
|
||||
await callback.answer()
|
||||
|
||||
|
||||
@router.callback_query(F.data.startswith("settings:auto_leverage:"))
|
||||
async def set_auto_leverage(callback: CallbackQuery) -> None:
|
||||
leverage = float(callback.data.split(":", 2)[2])
|
||||
AutoTradeService().set_leverage(leverage)
|
||||
|
||||
if callback.message is not None:
|
||||
await open_auto_settings(callback)
|
||||
|
||||
AutoTradeRunner.set_current_screen("settings_auto")
|
||||
await callback.answer("Плечо обновлено")
|
||||
|
||||
|
||||
@router.callback_query(F.data == "settings:trade")
|
||||
async def open_trade_settings(callback: CallbackQuery) -> None:
|
||||
if callback.message is None:
|
||||
|
||||
Reference in New Issue
Block a user