develop #3

Open
Alex wants to merge 77 commits from Alex/stcs:develop into stable
40 changed files with 3584 additions and 710 deletions
Showing only changes of commit f09fe1d70b - Show all commits

View File

@@ -158,6 +158,8 @@ class User_Main_Settings(Base):
trading_mode = mapped_column(ForeignKey("trading_modes.mode")) trading_mode = mapped_column(ForeignKey("trading_modes.mode"))
margin_type = mapped_column(ForeignKey("margin_types.type")) margin_type = mapped_column(ForeignKey("margin_types.type"))
switch_mode_enabled = mapped_column(String(15), default="Выключен")
switch_state = mapped_column(String(10), default='Long')
size_leverage = mapped_column(Integer(), default=1) size_leverage = mapped_column(Integer(), default=1)
starting_quantity = mapped_column(Integer(), default=1) starting_quantity = mapped_column(Integer(), default=1)
martingale_factor = mapped_column(Integer(), default=1) martingale_factor = mapped_column(Integer(), default=1)
@@ -212,7 +214,7 @@ class User_Condition_Settings(Base):
tg_id = mapped_column(ForeignKey("user_telegram_id.tg_id")) tg_id = mapped_column(ForeignKey("user_telegram_id.tg_id"))
trigger = mapped_column(ForeignKey("triggers.trigger")) trigger = mapped_column(String(15), default='Ручной')
filter_time = mapped_column(String(25), default='???') filter_time = mapped_column(String(25), default='???')
filter_volatility = mapped_column(Boolean, default=False) filter_volatility = mapped_column(Boolean, default=False)
external_cues = mapped_column(Boolean, default=False) external_cues = mapped_column(Boolean, default=False)
@@ -309,7 +311,7 @@ async def async_main():
logger.info("Заполение таблицы типов маржи") logger.info("Заполение таблицы типов маржи")
await conn.execute(Margin_type.__table__.insert().values(type=type)) await conn.execute(Margin_type.__table__.insert().values(type=type))
triggers = ['Ручной', 'Автоматический', 'TradingView'] triggers = ['Ручной', 'Автоматический']
for trigger in triggers: for trigger in triggers:
result = await conn.execute(select(Trigger).where(Trigger.trigger == trigger)) result = await conn.execute(select(Trigger).where(Trigger.trigger == trigger))
if not result.first(): if not result.first():

View File

@@ -291,10 +291,10 @@ async def get_for_registration_margin_type():
return type return type
async def get_for_registration_trigger(): async def get_for_registration_trigger(tg_id):
"""Получить триггер по умолчанию.""" """Получить триггер по умолчанию."""
async with async_session() as session: async with async_session() as session:
trigger = await session.scalar(select(Trigger.trigger).where(Trigger.id == 1)) trigger = await session.scalar(select(UCS.trigger).where(tg_id == tg_id))
return trigger return trigger
@@ -308,6 +308,8 @@ async def get_user_main_settings(tg_id):
trading_mode = await session.scalar(select(UMS.trading_mode).where(UMS.tg_id == tg_id)) trading_mode = await session.scalar(select(UMS.trading_mode).where(UMS.tg_id == tg_id))
margin_mode = await session.scalar(select(UMS.margin_type).where(UMS.tg_id == tg_id)) margin_mode = await session.scalar(select(UMS.margin_type).where(UMS.tg_id == tg_id))
switch_mode_enabled = await session.scalar(select(UMS.switch_mode_enabled).where(UMS.tg_id == tg_id))
switch_state = await session.scalar(select(UMS.switch_state).where(UMS.tg_id == tg_id))
size_leverage = await session.scalar(select(UMS.size_leverage).where(UMS.tg_id == tg_id)) size_leverage = await session.scalar(select(UMS.size_leverage).where(UMS.tg_id == tg_id))
starting_quantity = await session.scalar(select(UMS.starting_quantity).where(UMS.tg_id == tg_id)) starting_quantity = await session.scalar(select(UMS.starting_quantity).where(UMS.tg_id == tg_id))
martingale_factor = await session.scalar(select(UMS.martingale_factor).where(UMS.tg_id == tg_id)) martingale_factor = await session.scalar(select(UMS.martingale_factor).where(UMS.tg_id == tg_id))
@@ -319,6 +321,8 @@ async def get_user_main_settings(tg_id):
data = { data = {
'trading_mode': trading_mode, 'trading_mode': trading_mode,
'margin_type': margin_mode, 'margin_type': margin_mode,
'switch_mode_enabled': switch_mode_enabled,
'switch_state': switch_state,
'size_leverage': size_leverage, 'size_leverage': size_leverage,
'starting_quantity': starting_quantity, 'starting_quantity': starting_quantity,
'martingale_factor': martingale_factor, 'martingale_factor': martingale_factor,
@@ -547,3 +551,27 @@ async def update_martingale_step(tg_id, step):
await session.execute(update(UMS).where(UMS.tg_id == tg_id).values(martingale_step=step)) await session.execute(update(UMS).where(UMS.tg_id == tg_id).values(martingale_step=step))
await session.commit() await session.commit()
async def update_switch_mode_enabled(tg_id, switch_mode):
"""Обновить режим переключения пользователя."""
async with async_session() as session:
await session.execute(update(UMS).where(UMS.tg_id == tg_id).values(switch_mode_enabled=switch_mode))
await session.commit()
async def update_switch_state(tg_id, switch_state):
"""Обновить состояние переключения пользователя."""
async with async_session() as session:
await session.execute(update(UMS).where(UMS.tg_id == tg_id).values(switch_state=switch_state))
await session.commit()
async def update_trigger(tg_id, trigger):
"""Обновить триггер пользователя."""
async with async_session() as session:
await session.execute(update(UCS).where(UCS.tg_id == tg_id).values(trigger=trigger))
await session.commit()