예제 #1
0
        # Считаем, каким был бы 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:
예제 #2
0
                                .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