51bitquant / binance_grid_trader

Binance_grid_trader is a grid strategy bot trading with Binance Spot and Binance Futures Exchange. you can use it to trade any pair in Binance Exchange. Binance_grid_trader是一个币安网格策略软件, 目前支持币安现货,USDT合约和币币合约。
MIT License
739 stars 261 forks source link

Adding Leverage to Futures Strategies #31

Open konradgthecoder opened 4 days ago

konradgthecoder commented 4 days ago

Hi All,

First off, amazing work here! It's amazing what the open source community can come up with :)

I'm wondering if anyone figured out how to extend this API to add the option to adjust leverage on positions?

It would be awesome if someone already figured this out as I'm still learning the codebase and am having trouble adjusting this parameter.

For now, I am adding these functions to the gateways. I call them right before adding the request from send_order:

    def change_leverage(self, symbol: str, leverage: int):
        """
        Change leverage for a specific symbol.
        """
        data = {
            "security": Security.SIGNED
        }

        params = {
            "symbol": symbol,
            "leverage": leverage
        }

        self.add_request(
            method="POST",
            path="/fapi/v1/leverage",
            callback=self.on_change_leverage,
            data=data,
            params=params
        )

    def on_change_leverage(self, data, request):
        """
        Callback for leverage change.
        """
        self.gateway.write_log(request.params)

Unfortunately I see my orders are created without leverage. Does anyone have any ideas how to implement this?

konradgthecoder commented 4 days ago

Some logs from my debugger:

Attempting to change leverage with params: {symbol: "NOTUSDT", leverage: 10}

these are the params I'm passing to add_request.