diff --git a/app/telegram/functions/risk_management_settings/settings.py b/app/telegram/functions/risk_management_settings/settings.py
index 859451e..86dcc82 100644
--- a/app/telegram/functions/risk_management_settings/settings.py
+++ b/app/telegram/functions/risk_management_settings/settings.py
@@ -14,6 +14,7 @@ class update_risk_management_settings(StatesGroup):
price_profit = State()
price_loss = State()
max_risk_deal = State()
+ commission_fee = State()
async def reg_new_user_default_risk_management_settings(id, message):
tg_id = id
@@ -25,10 +26,11 @@ async def main_settings_message(id, message, state):
text = f"""Риск менеджмент,
-- Процент изменения цены для фиксации прибыли: {data['price_profit']}%
-- Процент изменения цены для фиксации убытков: {data['price_loss']}%
-- Максимальный риск на сделку (в % от баланса): {data['max_risk_deal']}%
-"""
+ - Процент изменения цены для фиксации прибыли: {data.get('price_profit', 0)}%
+ - Процент изменения цены для фиксации убытков: {data.get('price_loss', 0)}%
+ - Максимальный риск на сделку (в % от баланса): {data.get('max_risk_deal', 0)}%
+ - Комиссия биржи для расчета процента фиксации прибыли: {data.get('commission_fee', 0)}%
+ """
await message.answer(text=text, parse_mode='html', reply_markup=inline_markup.risk_management_settings_markup)
async def price_profit_message(message, state):
@@ -107,4 +109,28 @@ async def state_max_risk_deal(message: Message, state):
else:
await message.answer(f'⛔️ Ошибка: ваше значение ({data['max_risk_deal']}%) или выше лимита (100) или вы вводите неверные символы')
- await main_settings_message(message.from_user.id, message, state)
\ No newline at end of file
+ await main_settings_message(message.from_user.id, message, state)
+
+
+async def commission_fee_message(message, state):
+ await state.set_state(update_risk_management_settings.commission_fee)
+ await message.answer(text="Введите процент комиссии биржи (например, 0.1):", parse_mode='html', reply_markup=None)
+
+@router_risk_management_settings.message(update_risk_management_settings.commission_fee)
+async def state_commission_fee(message: Message, state):
+ await state.update_data(commission_fee=message.text)
+ data = await state.get_data()
+ data_settings = await rq.get_user_risk_management_settings(message.from_user.id)
+
+ try:
+ val = float(data['commission_fee'])
+ if val < 0 or val > 100:
+ raise ValueError()
+ except Exception:
+ await message.answer("⛔️ Ошибка: введите корректный процент комиссии от 0 до 100")
+ return await commission_fee_message(message, state)
+
+ await rq.update_commission_fee(message.from_user.id, val)
+ await message.answer(f"✅ Изменено: {data_settings['commission_fee']}% → {data['commission_fee']}%")
+ await main_settings_message(message.from_user.id, message, state)
+ await state.clear()
\ No newline at end of file