Open chedlykechaou opened 9 months ago
You can just add some functions that call the /papi endpoints as described in Binance API docs here: https://binance-docs.github.io/apidocs/pm/en/
To set up the endpoints, I added the following two private functions to the binance client:
PORTFOLIO_MARGIN_URL = 'https://papi.binance.com/papi'
PORTFOLIO_MARGIN_VERSION = 'v1'
def _create_portfolio_margin_api_uri(self, path: str, version: int = 1) -> str:
url = self.PORTFOLIO_MARGIN_URL
options = {1: self.PORTFOLIO_MARGIN_VERSION}
return url + '/' + options[version] + '/' + path
async def _request_portfolio_margin_api(self, method, path, signed=False, version: int = 1, **kwargs) -> Dict:
uri = self._create_portfolio_margin_api_uri(path, version)
Here are some examples of function calls to create and cancel orders:
async def pm_create_order(self, **params):
return await self._request_portfolio_margin_api('post', 'um/order', True, data=params)
async def pm_cancel_order(self, **params):
return await self._request_portfolio_margin_api('delete', 'um/order', True, data=params)
^ these functions are the same as for "normal" futures accounts without portfolio margin. The only difference is the endpoint /um/order
instead of /order
.
There are some things you need to be aware of though, such as that there is no endpoint for order modification on portfolio margin (you have to cancel existing order and place a new one instead).
Hope this helps!
I tried to switch to portfolio margin mode but the api functions won't work anymore.
Binance portfolio margin mode is slightly different and requires a few changes in the code.
Do you have any guidelines on how to modify code so it works??