# Считаем, каким был бы stop-loss, если применить к нему % curr_rate_applied = (curr_rate/100) * (settings['stop_loss_perc']*multiplier+100) if settings['strategy'] == "Long": # Выбрана стратегия Long, пытаемся продать монеты как можно выгоднее if curr_rate > settings['stop_loss_fixed']: print("Текущая цена выше цены Stop-Loss") if curr_rate_applied > settings['stop_loss_fixed']: print("Пора изменять stop-loss, новое значение {sl:0.8f}".format(sl=curr_rate_applied)) settings['stop_loss_fixed'] = curr_rate_applied else: # Текущая цена ниже или равна stop loss, продажа по рынку res = bot.createOrder( symbol=settings['symbol'], recvWindow=15000, side='SELL', type='MARKET', quantity=settings['amount'] ) print('Результат создания ордера', res) if 'orderId' in res: # Создание ордера прошло успешно, выход break else: # Выбрана стратегия Short, пытаемся купить монеты как можно выгоднее if curr_rate < settings['stop_loss_fixed']: print("Текущая цена ниже stop-loss") if curr_rate_applied < settings['stop_loss_fixed']: print("Пора изменять stop-loss, новое значение {sl:0.8f}".format(sl=curr_rate_applied)) settings['stop_loss_fixed'] = curr_rate_applied else:
.format(trade_am=(need_price * has_amount), min_am=float(CURR_LIMITS['filters'][3] ['minNotional']))) log.debug( 'Sell order calculated: number {amount: 0.8f}, rate: {rate: 0.8f}' .Format(amount=sell_amount, rate=need_price)) # We send a command to create an order with calculated parameters new_order = bot.createOrder( symbol=orders_info[order]['order_pair'], recvWindow=5000, side='SELL', type='LIMIT', timeInForce='GTC', # Good Till Cancel quantity="{quantity: 0.{precision} f}".format( quantity=sell_amount, precision=CURR_LIMITS['baseAssetPrecision']), price="{price: 0.{precision} f}".format( price=need_price, precision=CURR_LIMITS['baseAssetPrecision']), newOrderRespType='FULL') # If the order was created without errors, write the data to the database if 'orderId' in new_order: log.info( "A sell order has been created {new_order}". format(new_order=new_order)) cursor.execute( """ UPDATE orders SET