devel #11
@@ -7,13 +7,12 @@ from aiogram.types import CallbackQuery, Message
|
|||||||
import app.telegram.keyboards.inline as kbi
|
import app.telegram.keyboards.inline as kbi
|
||||||
import database.request as rq
|
import database.request as rq
|
||||||
from app.bybit.get_functions.get_tickers import get_tickers
|
from app.bybit.get_functions.get_tickers import get_tickers
|
||||||
|
from app.bybit.get_functions.get_instruments_info import get_instruments_info
|
||||||
from app.bybit.profile_bybit import user_profile_bybit
|
from app.bybit.profile_bybit import user_profile_bybit
|
||||||
from app.bybit.set_functions.set_leverage import (
|
from app.bybit.set_functions.set_leverage import set_leverage
|
||||||
set_leverage,
|
|
||||||
set_leverage_to_buy_and_sell,
|
|
||||||
)
|
|
||||||
from app.bybit.set_functions.set_margin_mode import set_margin_mode
|
from app.bybit.set_functions.set_margin_mode import set_margin_mode
|
||||||
from app.bybit.set_functions.set_switch_position_mode import set_switch_position_mode
|
from app.helper_functions import safe_float
|
||||||
from app.telegram.states.states import ChangingTheSymbolState
|
from app.telegram.states.states import ChangingTheSymbolState
|
||||||
from logger_helper.logger_helper import LOGGING_CONFIG
|
from logger_helper.logger_helper import LOGGING_CONFIG
|
||||||
|
|
||||||
@@ -91,12 +90,7 @@ async def set_symbol(message: Message, state: FSMContext) -> None:
|
|||||||
await rq.create_user_additional_settings(tg_id=message.from_user.id)
|
await rq.create_user_additional_settings(tg_id=message.from_user.id)
|
||||||
return
|
return
|
||||||
|
|
||||||
trade_mode = additional_settings.trade_mode or "Merged_Single"
|
|
||||||
mode = 0 if trade_mode == "Merged_Single" else 3
|
|
||||||
margin_type = additional_settings.margin_type or "ISOLATED_MARGIN"
|
margin_type = additional_settings.margin_type or "ISOLATED_MARGIN"
|
||||||
leverage = "10"
|
|
||||||
leverage_to_buy = "10"
|
|
||||||
leverage_to_sell = "10"
|
|
||||||
ticker = await get_tickers(tg_id=message.from_user.id, symbol=symbol)
|
ticker = await get_tickers(tg_id=message.from_user.id, symbol=symbol)
|
||||||
|
|
||||||
if ticker is None:
|
if ticker is None:
|
||||||
@@ -105,6 +99,8 @@ async def set_symbol(message: Message, state: FSMContext) -> None:
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
instruments_info = await get_instruments_info(tg_id=message.from_user.id, symbol=symbol)
|
||||||
|
max_leverage = instruments_info.get("leverageFilter").get("maxLeverage")
|
||||||
req = await rq.set_user_symbol(tg_id=message.from_user.id, symbol=symbol)
|
req = await rq.set_user_symbol(tg_id=message.from_user.id, symbol=symbol)
|
||||||
|
|
||||||
if not req:
|
if not req:
|
||||||
@@ -118,45 +114,18 @@ async def set_symbol(message: Message, state: FSMContext) -> None:
|
|||||||
tg_id=message.from_user.id, message=message, state=state
|
tg_id=message.from_user.id, message=message, state=state
|
||||||
)
|
)
|
||||||
|
|
||||||
res = await set_switch_position_mode(
|
|
||||||
tg_id=message.from_user.id, symbol=symbol, mode=mode
|
|
||||||
)
|
|
||||||
if res == "You have an existing position, so position mode cannot be switched":
|
|
||||||
if mode == 0:
|
|
||||||
mode = 3
|
|
||||||
else:
|
|
||||||
mode = 0
|
|
||||||
await set_switch_position_mode(
|
|
||||||
tg_id=message.from_user.id, symbol=symbol, mode=mode
|
|
||||||
)
|
|
||||||
if trade_mode == "Merged_Single":
|
|
||||||
trade_mode = "Both_Sides"
|
|
||||||
else:
|
|
||||||
trade_mode = "Merged_Single"
|
|
||||||
await rq.set_trade_mode(tg_id=message.from_user.id, trade_mode=trade_mode)
|
|
||||||
|
|
||||||
await set_margin_mode(tg_id=message.from_user.id, margin_mode=margin_type)
|
await set_margin_mode(tg_id=message.from_user.id, margin_mode=margin_type)
|
||||||
|
|
||||||
if margin_type == "ISOLATED_MARGIN":
|
|
||||||
await set_leverage_to_buy_and_sell(
|
|
||||||
tg_id=message.from_user.id,
|
|
||||||
symbol=symbol,
|
|
||||||
leverage_to_buy=str(leverage_to_buy),
|
|
||||||
leverage_to_sell=str(leverage_to_sell),
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
await set_leverage(
|
await set_leverage(
|
||||||
tg_id=message.from_user.id, symbol=symbol, leverage=str(leverage)
|
tg_id=message.from_user.id, symbol=symbol, leverage=str(max_leverage)
|
||||||
)
|
)
|
||||||
|
|
||||||
await rq.set_leverage(tg_id=message.from_user.id, leverage=str(leverage))
|
await rq.set_leverage(tg_id=message.from_user.id, leverage=str(max_leverage))
|
||||||
await rq.set_leverage_to_buy_and_sell(
|
risk_percent = 100 / safe_float(max_leverage)
|
||||||
tg_id=message.from_user.id,
|
await rq.set_stop_loss_percent(
|
||||||
leverage_to_buy=str(leverage_to_buy),
|
tg_id=message.from_user.id, stop_loss_percent=risk_percent)
|
||||||
leverage_to_sell=str(leverage_to_sell),
|
|
||||||
)
|
|
||||||
await rq.set_limit_price(tg_id=message.from_user.id, limit_price=0)
|
|
||||||
await rq.set_trigger_price(tg_id=message.from_user.id, trigger_price=0)
|
await rq.set_trigger_price(tg_id=message.from_user.id, trigger_price=0)
|
||||||
|
await rq.set_order_quantity(tg_id=message.from_user.id, order_quantity=1.0)
|
||||||
|
|
||||||
await state.clear()
|
await state.clear()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
Reference in New Issue
Block a user