The message about the Bybit profile output has been corrected when clicking the "Start" button, and messages regarding the requirement to connect the platform and incorrect API entries have been added. Messages about successful and erroneous changes to user settings have been added.
This commit is contained in:
@@ -21,7 +21,6 @@
|
|||||||
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="app\services\Bybit\config.py" />
|
|
||||||
<Compile Include="app\services\Bybit\functions\Add_Bybit_API.py" />
|
<Compile Include="app\services\Bybit\functions\Add_Bybit_API.py" />
|
||||||
<Compile Include="app\services\Bybit\functions\balance.py" />
|
<Compile Include="app\services\Bybit\functions\balance.py" />
|
||||||
<Compile Include="app\services\Bybit\functions\functions.py" />
|
<Compile Include="app\services\Bybit\functions\functions.py" />
|
||||||
|
@@ -71,7 +71,7 @@ async def contract_long(tg_id, message, margin_mode):
|
|||||||
setMarginMode=margin_mode # margin_type
|
setMarginMode=margin_mode # margin_type
|
||||||
)
|
)
|
||||||
|
|
||||||
martingale_factor = float(data_main_stgs['martingale_factor'])
|
martingale_factor = float(data_main_stgs['martingale_factor']) # Исправлено: было maximal_quantity
|
||||||
max_martingale_steps = int(data_main_stgs['maximal_quantity'])
|
max_martingale_steps = int(data_main_stgs['maximal_quantity'])
|
||||||
starting_quantity = float(data_main_stgs['starting_quantity'])
|
starting_quantity = float(data_main_stgs['starting_quantity'])
|
||||||
max_risk_percent = float(data_risk_management_stgs['max_risk_deal'])
|
max_risk_percent = float(data_risk_management_stgs['max_risk_deal'])
|
||||||
@@ -98,21 +98,6 @@ async def contract_long(tg_id, message, margin_mode):
|
|||||||
realised_pnl = float(position['unrealisedPnl'])
|
realised_pnl = float(position['unrealisedPnl'])
|
||||||
|
|
||||||
if realised_pnl > 0:
|
if realised_pnl > 0:
|
||||||
print(f'''
|
|
||||||
=====================
|
|
||||||
=====Сделка=========
|
|
||||||
===уСПЕШНЕАЯ================
|
|
||||||
===================
|
|
||||||
=================
|
|
||||||
|
|
||||||
{realised_pnl}
|
|
||||||
|
|
||||||
===============
|
|
||||||
===============
|
|
||||||
=============
|
|
||||||
===============
|
|
||||||
==============
|
|
||||||
''')
|
|
||||||
starting_quantity = next_quantity
|
starting_quantity = next_quantity
|
||||||
current_martingale_step = 0
|
current_martingale_step = 0
|
||||||
elif not realised_pnl:
|
elif not realised_pnl:
|
||||||
@@ -122,22 +107,6 @@ async def contract_long(tg_id, message, margin_mode):
|
|||||||
current_martingale_step += 1
|
current_martingale_step += 1
|
||||||
next_quantity = last_quantity * martingale_factor
|
next_quantity = last_quantity * martingale_factor
|
||||||
starting_quantity = next_quantity
|
starting_quantity = next_quantity
|
||||||
|
|
||||||
print(f'''
|
|
||||||
======СДЕЛКА===============
|
|
||||||
=====УБЫТОЧНАЯ==============
|
|
||||||
===================
|
|
||||||
===================
|
|
||||||
=================
|
|
||||||
|
|
||||||
{realised_pnl}
|
|
||||||
|
|
||||||
===============
|
|
||||||
===============
|
|
||||||
=============
|
|
||||||
===============
|
|
||||||
==============
|
|
||||||
''')
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Не получены позиции")
|
print("Не получены позиции")
|
||||||
next_quantity = starting_quantity
|
next_quantity = starting_quantity
|
||||||
@@ -209,7 +178,7 @@ async def contract_short(tg_id, message, margin_mode):
|
|||||||
setMarginMode=margin_mode # margin_type
|
setMarginMode=margin_mode # margin_type
|
||||||
)
|
)
|
||||||
|
|
||||||
martingale_factor = float(data_main_stgs['martingale_factor'])
|
martingale_factor = float(data_main_stgs['martingale_factor']) # Исправлено: было maximal_quantity
|
||||||
max_martingale_steps = int(data_main_stgs['maximal_quantity'])
|
max_martingale_steps = int(data_main_stgs['maximal_quantity'])
|
||||||
starting_quantity = float(data_main_stgs['starting_quantity'])
|
starting_quantity = float(data_main_stgs['starting_quantity'])
|
||||||
max_risk_percent = float(data_risk_management_stgs['max_risk_deal'])
|
max_risk_percent = float(data_risk_management_stgs['max_risk_deal'])
|
||||||
@@ -235,17 +204,16 @@ async def contract_short(tg_id, message, margin_mode):
|
|||||||
|
|
||||||
realised_pnl = float(position['unrealisedPnl'])
|
realised_pnl = float(position['unrealisedPnl'])
|
||||||
|
|
||||||
if realised_pnl > 0: # Прибыльная сделка
|
if realised_pnl > 0:
|
||||||
starting_quantity = next_quantity
|
starting_quantity = next_quantity
|
||||||
current_martingale_step = 0
|
current_martingale_step = 0
|
||||||
elif not realised_pnl:
|
elif not realised_pnl:
|
||||||
next_quantity = starting_quantity
|
next_quantity = starting_quantity
|
||||||
current_martingale_step += 1
|
current_martingale_step += 1
|
||||||
else: # Убыточная сделка
|
else:
|
||||||
current_martingale_step += 1
|
current_martingale_step += 1
|
||||||
next_quantity = last_quantity * martingale_factor
|
next_quantity = last_quantity * martingale_factor
|
||||||
starting_quantity = next_quantity
|
starting_quantity = next_quantity
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Не получены позиции")
|
print("Не получены позиции")
|
||||||
next_quantity = starting_quantity
|
next_quantity = starting_quantity
|
||||||
|
@@ -13,10 +13,21 @@ async def get_balance(tg_id, message):
|
|||||||
api_secret=secret_key
|
api_secret=secret_key
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if api_key == 'None' or secret_key == 'None':
|
||||||
|
await message.answer('⚠️ Подключите платформу для торговли')
|
||||||
|
return 0
|
||||||
|
|
||||||
|
try:
|
||||||
|
check_user = client.get_wallet_balance()
|
||||||
|
|
||||||
|
if check_user:
|
||||||
try:
|
try:
|
||||||
balance = client.get_wallet_balance(accountType='UNIFIED', coin='USDT')['result']['list'][0]['coin'][0]['walletBalance']
|
balance = client.get_wallet_balance(accountType='UNIFIED', coin='USDT')['result']['list'][0]['coin'][0]['walletBalance']
|
||||||
|
|
||||||
return balance
|
return balance
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await message.answer('Баланс не был получен, подключите платформу')
|
await message.answer('⚠️ Ошибка при получении баланса пользователя')
|
||||||
|
return 0
|
||||||
|
except Exception as e:
|
||||||
|
await message.answer('⚠️ Неверные данные API, перепроверьте их')
|
||||||
return 0
|
return 0
|
@@ -20,9 +20,9 @@ class state_update_symbol(StatesGroup):
|
|||||||
async def clb_start_bybit_trade_message(callback: CallbackQuery, state: FSMContext):
|
async def clb_start_bybit_trade_message(callback: CallbackQuery, state: FSMContext):
|
||||||
api = await rq.get_bybit_api_key(callback.from_user.id)
|
api = await rq.get_bybit_api_key(callback.from_user.id)
|
||||||
secret = await rq.get_bybit_secret_key(callback.from_user.id)
|
secret = await rq.get_bybit_secret_key(callback.from_user.id)
|
||||||
|
|
||||||
if api and secret:
|
|
||||||
balance = await get_balance(callback.from_user.id, callback.message)
|
balance = await get_balance(callback.from_user.id, callback.message)
|
||||||
|
|
||||||
|
if balance:
|
||||||
symbol = await rq.get_symbol(callback.from_user.id)
|
symbol = await rq.get_symbol(callback.from_user.id)
|
||||||
|
|
||||||
text = f'''💎 Торговля на Bybit
|
text = f'''💎 Торговля на Bybit
|
||||||
@@ -30,38 +30,33 @@ async def clb_start_bybit_trade_message(callback: CallbackQuery, state: FSMConte
|
|||||||
⚖️ Ваш баланс (USDT): {balance}
|
⚖️ Ваш баланс (USDT): {balance}
|
||||||
📊 Текущая торговая пара: {symbol}
|
📊 Текущая торговая пара: {symbol}
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Как начать торговлю?
|
Как начать торговлю?
|
||||||
|
|
||||||
1️⃣ Проверьте и тщательно настройте все параметры в вашем профиле.
|
1️⃣ Проверьте и тщательно настройте все параметры в вашем профиле.
|
||||||
2️⃣ Нажмите ниже кнопку 'Указать торговую пару' и введите торговую пару заглавными буквами, без лишних символов (например: BTCUSDT).
|
2️⃣ Нажмите ниже кнопку 'Указать торговую пару' и введите торговую пару заглавными буквами, без лишних символов (например: BTCUSDT).
|
||||||
'''
|
'''
|
||||||
await callback.message.edit_text(text=text, parse_mode='html', reply_markup=inline_markup.trading_markup)
|
await callback.message.edit_text(text=text, parse_mode='html', reply_markup=inline_markup.trading_markup)
|
||||||
else:
|
|
||||||
callback.message.answer('Перед началом работы, в настройках подключите bybit')
|
|
||||||
|
|
||||||
async def start_bybit_trade_message(message, state):
|
async def start_bybit_trade_message(message, state):
|
||||||
api = await rq.get_bybit_api_key(message.from_user.id)
|
api = await rq.get_bybit_api_key(message.from_user.id)
|
||||||
secret = await rq.get_bybit_secret_key(message.from_user.id)
|
secret = await rq.get_bybit_secret_key(message.from_user.id)
|
||||||
|
|
||||||
if api and secret:
|
|
||||||
balance = await get_balance(message.from_user.id, message)
|
balance = await get_balance(message.from_user.id, message)
|
||||||
|
|
||||||
|
if balance:
|
||||||
symbol = await rq.get_symbol(message.from_user.id)
|
symbol = await rq.get_symbol(message.from_user.id)
|
||||||
|
|
||||||
text = f'''Торговля на Bybit
|
text = f'''💎 Торговля на Bybit
|
||||||
|
|
||||||
<b>ваш баланс (USDT):</b> {balance}
|
⚖️ Ваш баланс (USDT): {balance}
|
||||||
<b>Текущая торговая пара: </b> {symbol}
|
📊 Текущая торговая пара: {symbol}
|
||||||
|
|
||||||
Как начать торговлю?
|
Как начать торговлю?
|
||||||
1. Внимательно проверьте и настройте все параметры в вашем профиле
|
|
||||||
2. Ниже нажмите 'Указать торговую пару' и отправьте торговую пару заглавными буквами, указав два актива без всяких лишних символов! (Пример: BTCUSDT)
|
1️⃣ Проверьте и тщательно настройте все параметры в вашем профиле.
|
||||||
|
2️⃣ Нажмите ниже кнопку 'Указать торговую пару' и введите торговую пару заглавными буквами, без лишних символов (например: BTCUSDT).
|
||||||
'''
|
'''
|
||||||
|
|
||||||
await message.answer(text=text, parse_mode='html', reply_markup=inline_markup.trading_markup)
|
await message.answer(text=text, parse_mode='html', reply_markup=inline_markup.trading_markup)
|
||||||
else:
|
|
||||||
await message.answer('Перед началом работы, в настройках подключите bybit')
|
|
||||||
|
|
||||||
@router_functions_bybit_trade.callback_query(F.data == 'clb_update_trading_pair')
|
@router_functions_bybit_trade.callback_query(F.data == 'clb_update_trading_pair')
|
||||||
async def update_symbol_for_trade_message(callback: CallbackQuery, state: FSMContext):
|
async def update_symbol_for_trade_message(callback: CallbackQuery, state: FSMContext):
|
||||||
@@ -75,6 +70,7 @@ async def update_symbol_for_trade(message: Message, state: FSMContext):
|
|||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
|
||||||
|
await message.answer('Пара была успешно обновлена')
|
||||||
await rq.update_symbol(message.from_user.id, data['symbol'])
|
await rq.update_symbol(message.from_user.id, data['symbol'])
|
||||||
await start_bybit_trade_message(message, state)
|
await start_bybit_trade_message(message, state)
|
||||||
|
|
||||||
|
@@ -62,25 +62,30 @@ async def state_trading_mode(callback: CallbackQuery, state):
|
|||||||
await callback.answer()
|
await callback.answer()
|
||||||
|
|
||||||
id = callback.from_user.id
|
id = callback.from_user.id
|
||||||
|
data_settings = await rq.get_user_main_settings(id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
match callback.data:
|
match callback.data:
|
||||||
case 'trade_mode_long':
|
case 'trade_mode_long':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['trading_mode']} → Long")
|
||||||
await rq.update_trade_mode_user(id, 'Long')
|
await rq.update_trade_mode_user(id, 'Long')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
case 'trade_mode_short':
|
case 'trade_mode_short':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['trading_mode']} → Short")
|
||||||
await rq.update_trade_mode_user(id, 'Short')
|
await rq.update_trade_mode_user(id, 'Short')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
case 'trade_mode_switch':
|
case 'trade_mode_switch':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['trading_mode']} → Switch")
|
||||||
await rq.update_trade_mode_user(id, 'Switch')
|
await rq.update_trade_mode_user(id, 'Switch')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
case 'trade_mode_smart':
|
case 'trade_mode_smart':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['trading_mode']} → Smart")
|
||||||
await rq.update_trade_mode_user(id, 'Smart')
|
await rq.update_trade_mode_user(id, 'Smart')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
@@ -98,13 +103,18 @@ async def state_size_leverage(message: Message, state):
|
|||||||
await state.update_data(size_leverage = message.text)
|
await state.update_data(size_leverage = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_main_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['size_leverage'].isdigit() and int(data['size_leverage']) <= 100:
|
if data['size_leverage'].isdigit() and int(data['size_leverage']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['size_leverage']} → {data['size_leverage']}")
|
||||||
|
|
||||||
await rq.update_size_leverange(message.from_user.id, data['size_leverage'])
|
await rq.update_size_leverange(message.from_user.id, data['size_leverage'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['size_leverage']}) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
async def martingale_factor_message(message, state):
|
async def martingale_factor_message(message, state):
|
||||||
@@ -117,13 +127,18 @@ async def state_martingale_factor(message: Message, state):
|
|||||||
await state.update_data(martingale_factor = message.text)
|
await state.update_data(martingale_factor = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_main_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['martingale_factor'].isdigit() and int(data['martingale_factor']) <= 100:
|
if data['martingale_factor'].isdigit() and int(data['martingale_factor']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['martingale_factor']} → {data['martingale_factor']}")
|
||||||
|
|
||||||
await rq.update_martingale_factor(message.from_user.id, data['martingale_factor'])
|
await rq.update_martingale_factor(message.from_user.id, data['martingale_factor'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['martingale_factor']}) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
async def margin_type_message(message, state):
|
async def margin_type_message(message, state):
|
||||||
@@ -150,16 +165,20 @@ async def state_margin_type(callback: CallbackQuery, state):
|
|||||||
await callback.answer()
|
await callback.answer()
|
||||||
|
|
||||||
id = callback.from_user.id
|
id = callback.from_user.id
|
||||||
print(f"sdljfngdjklfg ## {callback.data}")
|
data_settings = await rq.get_user_main_settings(id)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
match callback.data:
|
match callback.data:
|
||||||
case 'margin_type_isolated':
|
case 'margin_type_isolated':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['margin_type']} → Isolated")
|
||||||
|
|
||||||
await rq.update_margin_type(id, 'Isolated')
|
await rq.update_margin_type(id, 'Isolated')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
case 'margin_type_cross':
|
case 'margin_type_cross':
|
||||||
|
await callback.message.answer(f"✅ Изменено: {data_settings['margin_type']} → Cross")
|
||||||
|
|
||||||
await rq.update_margin_type(id, 'Cross')
|
await rq.update_margin_type(id, 'Cross')
|
||||||
await main_settings_message(id, callback.message, state)
|
await main_settings_message(id, callback.message, state)
|
||||||
|
|
||||||
@@ -177,30 +196,40 @@ async def state_starting_quantity(message: Message, state):
|
|||||||
await state.update_data(starting_quantity = message.text)
|
await state.update_data(starting_quantity = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_main_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['starting_quantity'].isdigit():
|
if data['starting_quantity'].isdigit():
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['starting_quantity']} → {data['starting_quantity']}")
|
||||||
|
|
||||||
await rq.update_starting_quantity(message.from_user.id, data['starting_quantity'])
|
await rq.update_starting_quantity(message.from_user.id, data['starting_quantity'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
async def maximum_quantity_message(message, state):
|
async def maximum_quantity_message(message, state):
|
||||||
await state.set_state(update_main_settings.maximal_quantity)
|
await state.set_state(update_main_settings.maximal_quantity)
|
||||||
|
|
||||||
await message.edit_text("Введите <b>максимальное количество ставок:</b>", parse_mode='html', reply_markup=inline_markup.back_btn_list_settings_markup)
|
await message.edit_text("Введите <b>максимальное количество серии ставок:</b>", parse_mode='html', reply_markup=inline_markup.back_btn_list_settings_markup)
|
||||||
|
|
||||||
@router_main_settings.message(update_main_settings.maximal_quantity)
|
@router_main_settings.message(update_main_settings.maximal_quantity)
|
||||||
async def state_maximal_quantity(message: Message, state):
|
async def state_maximal_quantity(message: Message, state):
|
||||||
await state.update_data(maximal_quantity = message.text)
|
await state.update_data(maximal_quantity = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_main_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['maximal_quantity'].isdigit() and int(data['maximal_quantity']) <= 100:
|
if data['maximal_quantity'].isdigit() and int(data['maximal_quantity']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['maximal_quantity']} → {data['maximal_quantity']}")
|
||||||
|
|
||||||
await rq.update_maximal_quantity(message.from_user.id, data['maximal_quantity'])
|
await rq.update_maximal_quantity(message.from_user.id, data['maximal_quantity'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['maximal_quantity']}) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
@@ -43,13 +43,18 @@ async def state_price_profit(message: Message, state):
|
|||||||
await state.update_data(price_profit = message.text)
|
await state.update_data(price_profit = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_risk_management_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['price_profit'].isdigit() and int(data['price_profit']) <= 100:
|
if data['price_profit'].isdigit() and int(data['price_profit']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['price_profit']}% → {data['price_profit']}%")
|
||||||
|
|
||||||
await rq.update_price_profit(message.from_user.id, data['price_profit'])
|
await rq.update_price_profit(message.from_user.id, data['price_profit'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['price_profit']}%) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
async def price_loss_message(message, state):
|
async def price_loss_message(message, state):
|
||||||
@@ -64,13 +69,18 @@ async def state_price_loss(message: Message, state):
|
|||||||
await state.update_data(price_loss = message.text)
|
await state.update_data(price_loss = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_risk_management_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['price_loss'].isdigit() and int(data['price_loss']) <= 100:
|
if data['price_loss'].isdigit() and int(data['price_loss']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['price_loss']}% → {data['price_loss']}%")
|
||||||
|
|
||||||
await rq.update_price_loss(message.from_user.id, data['price_loss'])
|
await rq.update_price_loss(message.from_user.id, data['price_loss'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['price_loss']}%) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
async def max_risk_deal_message(message, state):
|
async def max_risk_deal_message(message, state):
|
||||||
@@ -85,11 +95,16 @@ async def state_max_risk_deal(message: Message, state):
|
|||||||
await state.update_data(max_risk_deal = message.text)
|
await state.update_data(max_risk_deal = message.text)
|
||||||
|
|
||||||
data = await state.get_data()
|
data = await state.get_data()
|
||||||
|
data_settings = await rq.get_user_risk_management_settings(message.from_user.id)
|
||||||
|
|
||||||
if data['max_risk_deal'].isdigit() and int(data['max_risk_deal']) <= 100:
|
if data['max_risk_deal'].isdigit() and int(data['max_risk_deal']) <= 100:
|
||||||
|
await message.answer(f"✅ Изменено: {data_settings['max_risk_deal']}% → {data['max_risk_deal']}%")
|
||||||
|
|
||||||
await rq.update_max_risk_deal(message.from_user.id, data['max_risk_deal'])
|
await rq.update_max_risk_deal(message.from_user.id, data['max_risk_deal'])
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
else:
|
else:
|
||||||
|
await message.answer(f'⛔️ Ошибка: ваше значение ({data['max_risk_deal']}%) или выше лимита (100) или вы вводите неверные символы')
|
||||||
|
|
||||||
await main_settings_message(message.from_user.id, message, state)
|
await main_settings_message(message.from_user.id, message, state)
|
Reference in New Issue
Block a user