Added trigger price
This commit is contained in:
@@ -153,7 +153,8 @@ class User_Main_Settings(Base):
|
||||
martingale_step = mapped_column(Integer(), default=1)
|
||||
maximal_quantity = mapped_column(Integer(), default=10)
|
||||
entry_order_type = mapped_column(String(10), default='Market')
|
||||
limit_order_price = mapped_column(Numeric(18, 15), nullable=True)
|
||||
limit_order_price = mapped_column(Numeric(18, 15), nullable=True, default=0)
|
||||
trigger_price = mapped_column(Numeric(18, 15), nullable=True, default=0)
|
||||
last_side = mapped_column(String(10), default='Buy')
|
||||
trading_start_stop = mapped_column(Integer(), default=0)
|
||||
|
||||
@@ -306,3 +307,10 @@ async def async_main():
|
||||
if not result.first():
|
||||
logger.info("Заполение таблицы последнего направления")
|
||||
await conn.execute(User_Main_Settings.__table__.insert().values(last_side=side))
|
||||
|
||||
order_type = ['Limit', 'Market']
|
||||
for typ in order_type:
|
||||
result = await conn.execute(select(User_Main_Settings).where(User_Main_Settings.entry_order_type == typ))
|
||||
if not result.first():
|
||||
logger.info("Заполение таблицы типов ордеров")
|
||||
await conn.execute(User_Main_Settings.__table__.insert().values(entry_order_type=typ))
|
||||
|
@@ -318,6 +318,7 @@ async def get_user_main_settings(tg_id):
|
||||
'maximal_quantity': user.maximal_quantity,
|
||||
'entry_order_type': user.entry_order_type,
|
||||
'limit_order_price': user.limit_order_price,
|
||||
'trigger_price': user.trigger_price,
|
||||
'martingale_step': user.martingale_step,
|
||||
'last_side': user.last_side,
|
||||
'trading_start_stop': user.trading_start_stop,
|
||||
@@ -438,6 +439,31 @@ async def update_entry_order_type(tg_id, order_type):
|
||||
await session.commit()
|
||||
|
||||
|
||||
async def update_trigger_price(tg_id, price):
|
||||
"""Обновить условную цену пользователя."""
|
||||
async with async_session() as session:
|
||||
await session.execute(
|
||||
update(UMS)
|
||||
.where(UMS.tg_id == tg_id)
|
||||
.values(trigger_price=str(price))
|
||||
)
|
||||
await session.commit()
|
||||
|
||||
async def get_trigger_price(tg_id):
|
||||
"""Получить условную цену пользователя как float, либо None."""
|
||||
async with async_session() as session:
|
||||
result = await session.execute(
|
||||
select(UMS.trigger_price)
|
||||
.where(UMS.tg_id == tg_id)
|
||||
)
|
||||
price = result.scalar_one_or_none()
|
||||
if price:
|
||||
try:
|
||||
return float(price)
|
||||
except ValueError:
|
||||
return None
|
||||
return None
|
||||
|
||||
async def get_limit_price(tg_id):
|
||||
"""Получить лимитную цену пользователя как float, либо None."""
|
||||
async with async_session() as session:
|
||||
|
Reference in New Issue
Block a user