Beispiel #1
0
    def place_new_order(self):
        bot_message = f"Added {self.symbol}{self.new_side} , \n{round(self.amount, 2)}, \n{round(float(self.my_ask), 5)},\n SL {round(float(self.my_sl), 5)} / TP {round(float(self.my_tp), 5)}"
        bot_sendtext(bot_message)
        print("\n", bot_message)
        self.order = self.main_direction

        reponse = Orders.my_order(
            client=self.bclient,
            symbol=f"{self.symbol.upper()}{self.new_side}USDT",
            side=1,
            amount=round(self.amount, 2))

        if reponse['error']:
            self.bot_ping = False
            logging.info(f"New order Error:\n {reponse}")
            bot_sendtext(f"New order Error:\n {reponse}")
        else:
            self.order_id = reponse['result']['orderId']
            logging.info(f"New order:\n {reponse}")
            dbrools.insert_history_new(data=reponse)
            self.order_price = self.my_bid
            data = {
                "symbol": f"{self.symbol}{self.new_side}",
                "amount": round(self.amount, 2),
                "price": self.my_ask,
                "direct": 'BUY',
                "result": 0,
                "date": f"{datetime.now().strftime('%d.%m.%Y')}"
            }
            dbrools.insert_history(data=data)
            self.order_time = time.time()
            self.place_tp_order()
Beispiel #2
0
    def close_sl_order(self):
        bot_message = f"QUIT {self.symbol.upper()}{self.new_side} , \n{round(self.amount, 2)}, \n{round(float(self.my_sl), 5)}, \n STOP LOSS ,\n SL {round(float(self.my_sl), 4)} / TP {round(float(self.my_tp), 4)}"
        bot_sendtext(bot_message)
        print("\n", bot_message)

        result = self.bclient.cancel_order(symbol=self.main_symbol.upper(),
                                           orderId=self.order_id)

        print("\n", result)

        data = {
            "symbol": f"{self.symbol}{self.new_side}",
            "amount": round(self.amount, 2),
            "price": self.my_sl,
            "direct": 'SELL',
            "result": 1,
            "date": f"{datetime.now().strftime('%d.%m.%Y')}"
        }
        dbrools.insert_history(data=data)

        reponse = Orders.my_order(client=self.bclient,
                                  symbol=self.main_symbol.upper(),
                                  side=2,
                                  amount=round(self.amount, 2))
        logging.info(f"QUIT order:\n {reponse}")
        dbrools.insert_history_new(data=reponse)

        if reponse['error']:
            self.bot_ping = False
            logging.info(f"New order Error:\n {reponse}")
            bot_sendtext(f"New order Error:\n {reponse}")
        else:
            self.my_Stoch = False
            self.my_RSI = False
            self.order = False
Beispiel #3
0
 def close_tp_order(self):
     bot_message = f"QUIT {self.symbol.upper()}{self.new_side} , \n{round(self.amount, 2)}, \n{round(float(self.my_tp), 5)}, \n TAKE PROFIT ,\n SL {round(float(self.my_sl), 4)} / TP {round(float(self.my_tp), 4)}"
     bot_sendtext(bot_message)
     print("\n", bot_message)
     data = {
         "symbol": f"{self.symbol}{self.new_side}",
         "amount": round(self.amount, 2),
         "price": self.my_tp,
         "direct": 'SELL',
         "result": 2,
         "date": f"{datetime.now().strftime('%d.%m.%Y')}"
     }
     dbrools.insert_history(data=data)
     self.my_Stoch = False
     self.my_RSI = False
     self.order = False
Beispiel #4
0
    def close_sl_order(self):
        bot_message = f"QUIT {self.symbol.upper()} ({self.new_side}), \n{round(self.amount, n_rools[self.symbol.upper()]['decimals'])}, \n{round(self.my_tp, n_rools[self.symbol.upper()]['price'])}, \n STOP LOSS"
        bot_sendtext(bot_message)
        print("\n", bot_message)
        data = {
            "symbol": f"{self.symbol} ({self.new_side})",
            "amount": round(self.amount,
                            n_rools[self.symbol.upper()]['decimals']),
            "price": round(self.my_sl, n_rools[self.symbol.upper()]['price']),
            "direct": 'SELL',
            "result": 1,
            "date": f"{datetime.now().strftime('%d.%m.%Y')}"
        }
        dbrools.insert_history(data=data)

        self.bclient.futures_cancel_order(symbol=f"{self.symbol.upper()}USDT",
                                          origClientOrderId=self.order_id_tp)
        self.my_Stoch = False
        self.my_RSI = False
        self.order = False
        self.order_id = False
Beispiel #5
0
    def close_sl_order(self):
        my_order = self.bclient.get_order(
            symbol=f"{self.symbol.upper()}{self.new_side}USDT",
            orderId=self.order_id)

        if my_order['status'] == "FILLED":
            self.close_tp_order()
        elif my_order['status'] == "PARTIALLY_FILLED":
            bot_message = f"QUIT (PART){self.symbol.upper()}{self.new_side} , \n{round(self.amount, 2)}, \n{round(float(self.my_sl), 5)}, \n STOP LOSS ,\n SL {round(float(self.my_sl), 4)} / TP {round(float(self.my_tp), 4)}"
            bot_sendtext(bot_message)
            print("\n", bot_message)

            result = self.bclient.cancel_order(
                symbol=f"{self.symbol.upper()}{self.new_side}USDT",
                orderId=self.order_id)

            data = {
                "symbol": f"{self.symbol}{self.new_side}",
                "amount": round(self.amount, 2),
                "price": self.my_sl,
                "direct": 'SELL',
                "result": 1,
                "date": f"{datetime.now().strftime('%d.%m.%Y')}"
            }
            dbrools.insert_history(data=data)

            reponse = Orders.my_order(
                client=self.bclient,
                symbol=f"{self.symbol.upper()}{self.new_side}USDT",
                side=2,
                amount=round(
                    float(my_order['executedQty']) -
                    float(my_order['origQty']), 2))
            logging.info(f"QUIT order:\n {reponse}")
            dbrools.insert_history_new(data=reponse)

            if reponse['error']:
                self.bot_ping = False
                logging.info(f"New order Error:\n {reponse}")
                bot_sendtext(f"New order Error:\n {reponse}")
            else:
                self.my_Stoch = False
                self.my_RSI = False
                self.order = False
                self.order_id = False
        else:
            bot_message = f"QUIT {self.symbol.upper()}{self.new_side} , \n{round(self.amount, 2)}, \n{round(float(self.my_sl), 5)}, \n STOP LOSS ,\n SL {round(float(self.my_sl), 4)} / TP {round(float(self.my_tp), 4)}"
            bot_sendtext(bot_message)
            print("\n", bot_message)
            result = self.bclient.cancel_order(
                symbol=f"{self.symbol.upper()}{self.new_side}USDT",
                orderId=self.order_id)

            print("\n", result)

            data = {
                "symbol": f"{self.symbol}{self.new_side}",
                "amount": round(self.amount, 2),
                "price": self.my_sl,
                "direct": 'SELL',
                "result": 1,
                "date": f"{datetime.now().strftime('%d.%m.%Y')}"
            }
            dbrools.insert_history(data=data)

            reponse = Orders.my_order(
                client=self.bclient,
                symbol=f"{self.symbol.upper()}{self.new_side}USDT",
                side=2,
                amount=round(self.amount, 2))
            logging.info(f"QUIT order:\n {reponse}")
            dbrools.insert_history_new(data=reponse)

            if reponse['error']:
                self.bot_ping = False
                logging.info(f"New order Error:\n {reponse}")
                bot_sendtext(f"New order Error:\n {reponse}")
            else:
                self.my_Stoch = False
                self.my_RSI = False
                self.order = False
                self.order_id = False
Beispiel #6
0
    def place_new_order(self):

        if self.main_direction == 1:
            self.new_side = "LONG"
        else:
            self.new_side = "SHORT"

        self.order = self.main_direction

        reponse = Orders.my_order_future(
            client=self.bclient,
            symbol=f"{self.symbol.upper()}USDT",
            side=self.main_direction,
            amount=round(self.amount,
                         n_rools[self.symbol.upper()]["decimals"]))

        if reponse['error']:
            self.bot_ping = False
            logging.info(f"New order Error:\n {reponse}")
            bot_sendtext(f"New order Error:\n {reponse}")
        else:
            self.order_id = reponse['result']['orderId']
            logging.info(f"New order:\n {reponse}")
            dbrools.insert_history_new(data=reponse)

            time.sleep(1)

            my_orders = self.bclient.futures_get_order(
                symbol=f"{self.symbol.upper()}USDT", orderId=self.order_id)
            self.my_price = float(my_orders['avgPrice'])

            if self.order == 1:
                self.my_sl = self.my_price / 1.009
                self.my_tp = self.my_price * 1.022
            else:
                self.my_sl = self.my_price * 1.009
                self.my_tp = self.my_price / 1.022

            data = {
                "symbol":
                f"{self.symbol} ({self.new_side})",
                "side":
                f"{self.new_side}",
                "amount":
                round(self.amount, n_rools[self.symbol.upper()]["decimals"]),
                "price":
                float(
                    round(self.my_price,
                          n_rools[self.symbol.upper()]['price'])),
                "direct":
                'BUY',
                "result":
                0,
                "date":
                f"{datetime.now().strftime('%d.%m.%Y')}"
            }
            dbrools.insert_history(data=data)

            bot_message = f"Added {self.symbol} ({self.new_side}), \n{round(self.amount, n_rools[self.symbol.upper()]['decimals'])}, \n{round(self.my_price, n_rools[self.symbol.upper()]['price'])},\n SL {round(self.my_sl, n_rools[self.symbol.upper()]['price'])} / TP {round(self.my_tp, n_rools[self.symbol.upper()]['price'])}"
            bot_sendtext(bot_message)
            print("\n", bot_message)

            self.place_tp_order()