diff --git a/ftx.py b/ftx.py index 4891a1e..b1f1414 100644 --- a/ftx.py +++ b/ftx.py @@ -303,11 +303,12 @@ async def open_orders(self, market): return results async def order_history( - self, market, start_time=None, end_time=None, limit=None + self, market, side=None, start_time=None, end_time=None, limit=None ): """ :param market: str + :param side: str :param start_time: int :param end_time: int :param limit: int # max 5000 @@ -317,6 +318,8 @@ async def order_history( params = { 'market': market } + if side is not None: + params['side'] = side if limit is not None: params['limit'] = limit if start_time is not None: @@ -444,7 +447,7 @@ async def place_trigger_order( results = await self._requests('post', path, params) return results - async def order_stats(self, order_id): + async def order_status(self, order_id): path = f'/orders/{order_id}' results = await self._requests('get', path) return results @@ -705,7 +708,7 @@ async def ws(self, subscribe, channel_name, market_name): :param subscribe: str # subscribe, unsubscribe :param channel_name: str # orderbook, trades, ticker - :param market_name: str # e.g.)BTC-PERP + :param market_name: str # e.g. BTC-PERP :return: """ params = { diff --git a/methods.py b/methods.py new file mode 100644 index 0000000..1ae638d --- /dev/null +++ b/methods.py @@ -0,0 +1,37 @@ +from FTXwraper.ftx import FTX + + +class FTXMethods(FTX): + def __init__(self, account_name, api_file=None): + super().__init__(account_name, api_file) + + async def authentication(self): + res = await self.account_information() + return res['success'] + + async def get_price(self, market: str, side: str) -> float: + res = await self.market() + for _ in res: + if _['name'] == market: + if side == 'buy' or side == 'long': + return _['ask'] + elif side == 'sell' or side == 'short': + return _['bid'] + else: + raise ValueError('side is wrong') + + async def get_position(self, market: str) -> float: + res = await self.positions() + for _ in res: + if _['future'] == market: + return _['netSize'] + else: + return 0 + + async def get_free_balance(self, market): + balance = await self.balances() + for _ in balance: + if _['coin'] == market: + return _['free'], _['usdValue'] + else: + return 0, 0