Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

Commit

Permalink
Add method.py
Browse files Browse the repository at this point in the history
  • Loading branch information
Masa-Ryu committed Dec 29, 2021
1 parent ea5e74a commit f94fcb5
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 3 deletions.
9 changes: 6 additions & 3 deletions ftx.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 = {
Expand Down
37 changes: 37 additions & 0 deletions methods.py
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit f94fcb5

Please sign in to comment.