Advertisement
Dante2333

Untitled

Dec 17th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. import time
  2. from collections import defaultdict
  3. from os import system
  4. import json
  5. import hmac
  6. import requests
  7. from requests import Request, Session
  8. from prettytable import PrettyTable
  9.  
  10. def clear():
  11.     _ = system('clear')
  12.  
  13. pares = [
  14.         {'secret': '', 'key': '','sub': 'main','id':""},
  15.         {'secret': '', 'key': '','sub': '','id':""},
  16.         {'secret': '', 'key': '','sub':'main','id':""},
  17.         {'secret': '', 'key': '','sub': 'main','id':""},
  18.         {'secret': '', 'key': '', 'sub': 'Battle Royale','id':''}]
  19.  
  20.  
  21. while True:
  22.     table = PrettyTable()
  23.     table.field_names = ["id", "Balance Total", "Futures", "Side", "Open Size","PnL", "Avg. Open Price"]
  24.     for par in pares:
  25.         ts = int(time.time() * 1000)
  26.         request = Request('GET', 'https://ftx.com/api/wallet/balances')
  27.         prepared = request.prepare()
  28.         signature_payload = f'{ts}{prepared.method}{prepared.path_url}'.encode()
  29.         signature = hmac.new(par['secret'].encode(), signature_payload, 'sha256').hexdigest()
  30.        
  31.  
  32.         request.headers[f'FTX-KEY'] = par['key']
  33.         request.headers[f'FTX-SIGN'] = signature
  34.         request.headers[f'FTX-TS'] = str(ts)
  35.         # Only include line if you want to access a subaccount
  36.         if par['sub']=='main':
  37.             pass
  38.         else:
  39.             request.headers[f'FTX-SUBACCOUNT'] = par['sub']
  40.        
  41.  
  42.         s = Session()
  43.         reply = s.send(request.prepare())
  44.         objeto = json.loads(reply.content)['result']
  45.         total = sum([x['usdValue'] for x in objeto])
  46.        
  47.        
  48.        #---------------------------------------------------
  49.         ts = int(time.time() * 1000)
  50.         request = Request('GET', 'https://ftx.com/api/positions')
  51.         prepared = request.prepare()
  52.         signature_payload = f'{ts}{prepared.method}{prepared.path_url}'.encode()
  53.         signature = hmac.new(par['secret'].encode(), signature_payload, 'sha256').hexdigest()
  54.  
  55.         request.headers[f'FTX-KEY'] = par['key']
  56.         request.headers[f'FTX-SIGN'] = signature
  57.         request.headers[f'FTX-TS'] = str(ts)
  58.         # Only include line if you want to access a subaccount
  59.  
  60.         if par['sub']=='main':
  61.             pass
  62.         else:
  63.             request.headers[f'FTX-SUBACCOUNT'] = par['sub']
  64.                                                        
  65.  
  66.         s = Session()
  67.         reply = s.send(request.prepare())
  68.         objeto = json.loads(reply.content)['result']
  69.  
  70.  
  71.         for x in objeto:
  72.             if x['size']!=0:
  73.                 table.add_row([par['id'], total, x['future'], x['side'], x['size'],x['unrealizedPnl'], abs((x['cost']/x['size']))])
  74.             else:
  75.                 pass
  76.     clear()
  77.     print(table)
  78.     time.sleep(15)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement