forked from kodorvan/stcs
When adjusting the leverage, the SL changes according to the criteria. In place of the position mode, there is now a trading mode. All unnecessary functions are also removed.
This commit is contained in:
@@ -21,7 +21,7 @@ router_additional_settings = Router(name="additional_settings")
|
||||
|
||||
@router_additional_settings.callback_query(F.data == "trade_mode")
|
||||
async def settings_for_trade_mode(
|
||||
callback_query: CallbackQuery, state: FSMContext
|
||||
callback_query: CallbackQuery, state: FSMContext
|
||||
) -> None:
|
||||
"""
|
||||
Handles the 'trade_mode' callback query.
|
||||
@@ -40,9 +40,9 @@ async def settings_for_trade_mode(
|
||||
await state.clear()
|
||||
await callback_query.message.edit_text(
|
||||
text="Выберите режим торговли:\n\n"
|
||||
"Лонг - все сделки серии открываются на покупку.\n"
|
||||
"Шорт - все сделки серии открываются на продажу.\n"
|
||||
"Свитч - направление каждой сделки серии меняется по переменно.\n",
|
||||
"Лонг - все сделки серии открываются на покупку.\n"
|
||||
"Шорт - все сделки серии открываются на продажу.\n"
|
||||
"Свитч - направление каждой сделки серии меняется по переменно.\n",
|
||||
reply_markup=kbi.trade_mode,
|
||||
)
|
||||
logger.debug(
|
||||
@@ -123,8 +123,8 @@ async def switch_side_start(callback_query: CallbackQuery, state: FSMContext) ->
|
||||
await state.clear()
|
||||
await callback_query.message.edit_text(
|
||||
text="Выберите направление первой сделки серии:\n\n"
|
||||
"По направлению - сделка открывается в направлении последней сделки предыдущей серии.\n"
|
||||
"Противоположно - сделка открывается в противоположном направлении последней сделки предыдущей серии.\n",
|
||||
"По направлению - сделка открывается в направлении последней сделки предыдущей серии.\n"
|
||||
"Противоположно - сделка открывается в противоположном направлении последней сделки предыдущей серии.\n",
|
||||
reply_markup=kbi.switch_side,
|
||||
)
|
||||
logger.debug(
|
||||
@@ -142,7 +142,9 @@ async def switch_side_start(callback_query: CallbackQuery, state: FSMContext) ->
|
||||
)
|
||||
|
||||
|
||||
@router_additional_settings.callback_query(lambda c: c.data == "switch_direction" or c.data == "switch_opposite")
|
||||
@router_additional_settings.callback_query(
|
||||
lambda c: c.data == "switch_direction" or c.data == "switch_opposite"
|
||||
)
|
||||
async def switch_side_handler(callback_query: CallbackQuery, state: FSMContext) -> None:
|
||||
"""
|
||||
Handles callback queries related to switch side selection.
|
||||
@@ -194,7 +196,7 @@ async def switch_side_handler(callback_query: CallbackQuery, state: FSMContext)
|
||||
|
||||
@router_additional_settings.callback_query(F.data == "margin_type")
|
||||
async def settings_for_margin_type(
|
||||
callback_query: CallbackQuery, state: FSMContext
|
||||
callback_query: CallbackQuery, state: FSMContext
|
||||
) -> None:
|
||||
"""
|
||||
Handles the 'margin_type' callback query.
|
||||
@@ -213,8 +215,8 @@ async def settings_for_margin_type(
|
||||
await state.clear()
|
||||
await callback_query.message.edit_text(
|
||||
text="Выберите тип маржи:\n\n"
|
||||
"Примечание: Если у вас есть открытые позиции, то маржа примениться ко всем позициям",
|
||||
reply_markup=kbi.margin_type
|
||||
"Примечание: Если у вас есть открытые позиции, то маржа примениться ко всем позициям",
|
||||
reply_markup=kbi.margin_type,
|
||||
)
|
||||
logger.debug(
|
||||
"Command margin_type processed successfully for user: %s",
|
||||
@@ -503,12 +505,12 @@ async def set_leverage_handler(message: Message, state: FSMContext) -> None:
|
||||
|
||||
if instruments_info is not None:
|
||||
min_leverage = (
|
||||
safe_float(instruments_info.get("leverageFilter").get("minLeverage"))
|
||||
or 1
|
||||
safe_float(instruments_info.get("leverageFilter").get("minLeverage"))
|
||||
or 1
|
||||
)
|
||||
max_leverage = (
|
||||
safe_float(instruments_info.get("leverageFilter").get("maxLeverage"))
|
||||
or 100
|
||||
safe_float(instruments_info.get("leverageFilter").get("maxLeverage"))
|
||||
or 100
|
||||
)
|
||||
|
||||
if leverage_float > max_leverage or leverage_float < min_leverage:
|
||||
@@ -553,7 +555,8 @@ async def set_leverage_handler(message: Message, state: FSMContext) -> None:
|
||||
)
|
||||
risk_percent = 100 / safe_float(leverage_float)
|
||||
await rq.set_stop_loss_percent(
|
||||
tg_id=message.from_user.id, stop_loss_percent=risk_percent)
|
||||
tg_id=message.from_user.id, stop_loss_percent=risk_percent
|
||||
)
|
||||
logger.info(
|
||||
"User %s set leverage: %s", message.from_user.id, leverage_float
|
||||
)
|
||||
@@ -767,9 +770,14 @@ async def set_martingale_factor(message: Message, state: FSMContext) -> None:
|
||||
martingale_factor_value_float = safe_float(martingale_factor_value)
|
||||
|
||||
if martingale_factor_value_float < 0.1 or martingale_factor_value_float > 10:
|
||||
await message.answer(text="Ошибка: коэффициент мартингейла должен быть в диапазоне от 0.1 до 10")
|
||||
logger.debug("User %s input invalid (not in range 0.1 to 10): %s", message.from_user.id,
|
||||
martingale_factor_value_float)
|
||||
await message.answer(
|
||||
text="Ошибка: коэффициент мартингейла должен быть в диапазоне от 0.1 до 10"
|
||||
)
|
||||
logger.debug(
|
||||
"User %s input invalid (not in range 0.1 to 10): %s",
|
||||
message.from_user.id,
|
||||
martingale_factor_value_float,
|
||||
)
|
||||
return
|
||||
|
||||
req = await rq.set_martingale_factor(
|
||||
@@ -878,7 +886,10 @@ async def set_max_bets_in_series(message: Message, state: FSMContext) -> None:
|
||||
)
|
||||
return
|
||||
|
||||
if safe_float(max_bets_in_series_value) < 1 or safe_float(max_bets_in_series_value) > 100:
|
||||
if (
|
||||
safe_float(max_bets_in_series_value) < 1
|
||||
or safe_float(max_bets_in_series_value) > 100
|
||||
):
|
||||
await message.answer(
|
||||
"Ошибка: число должно быть в диапазоне от 1 до 100.",
|
||||
reply_markup=kbi.back_to_additional_settings,
|
||||
|
Reference in New Issue
Block a user