mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-23 08:44:25 +01:00
Merge branch 'master' of https://github.com/bitfinexcom/bitfinex-api-py
This commit is contained in:
@@ -19,5 +19,9 @@ from .withdraw import Withdraw
|
||||
from .ticker import Ticker
|
||||
from .funding_ticker import FundingTicker
|
||||
from .ledger import Ledger
|
||||
from .funding_trade import FundingTrade
|
||||
from .margin_info import MarginInfo
|
||||
from .margin_info_base import MarginInfoBase
|
||||
from .movement import Movement
|
||||
|
||||
NAME = 'models'
|
||||
NAME = "models"
|
||||
|
||||
55
bfxapi/models/funding_trade.py
Normal file
55
bfxapi/models/funding_trade.py
Normal file
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
Module used to describe all of the different data types
|
||||
"""
|
||||
|
||||
class FundingTradeModel:
|
||||
"""
|
||||
Enum used to index the different values in a raw funding trade array
|
||||
"""
|
||||
ID = 0
|
||||
SYMBOL = 1
|
||||
MTS_CREATE = 2
|
||||
OFFER_ID = 3
|
||||
AMOUNT = 4
|
||||
RATE = 5
|
||||
PERIOD = 6
|
||||
|
||||
class FundingTrade:
|
||||
"""
|
||||
ID integer Offer ID
|
||||
SYMBOL string The currency of the offer (fUSD, etc)
|
||||
MTS_CREATE int Millisecond Time Stamp when the offer was created
|
||||
OFFER_ID int The ID of the offer
|
||||
AMOUNT float Amount the offer is for
|
||||
RATE float Rate of the offer
|
||||
PERIOD int Period of the offer
|
||||
"""
|
||||
|
||||
def __init__(self, tid, symbol, mts_create, offer_id, amount, rate, period):
|
||||
self.tid = tid
|
||||
self.symbol = symbol
|
||||
self.mts_create = mts_create
|
||||
self.offer_id = offer_id
|
||||
self.amount = amount
|
||||
self.rate = rate
|
||||
self.period = period
|
||||
|
||||
@staticmethod
|
||||
def from_raw_rest_trade(raw_trade):
|
||||
"""
|
||||
Generate a Ticker object from a raw ticker array
|
||||
"""
|
||||
# [[636040,"fUST",1574077528000,41237922,-100,0.0024,2,null]]
|
||||
return FundingTrade(
|
||||
raw_trade[FundingTradeModel.ID],
|
||||
raw_trade[FundingTradeModel.SYMBOL],
|
||||
raw_trade[FundingTradeModel.MTS_CREATE],
|
||||
raw_trade[FundingTradeModel.OFFER_ID],
|
||||
raw_trade[FundingTradeModel.AMOUNT],
|
||||
raw_trade[FundingTradeModel.RATE],
|
||||
raw_trade[FundingTradeModel.PERIOD]
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return "FundingTrade '{}' x {} @ {} for {} days".format(
|
||||
self.symbol, self.amount, self.rate, self.period)
|
||||
47
bfxapi/models/margin_info.py
Normal file
47
bfxapi/models/margin_info.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Module used to describe all of the different data types
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
class MarginInfoModel:
|
||||
"""
|
||||
Enum used to index the different values in a raw margin info array
|
||||
"""
|
||||
TRADABLE_BALANCE = 0
|
||||
GROSS_BALANCE = 1
|
||||
BUY = 2
|
||||
SELL = 3
|
||||
|
||||
class MarginInfo:
|
||||
"""
|
||||
SYMBOL string
|
||||
TRADABLE BALANCE float
|
||||
GROSS_BALANCE float
|
||||
BUY
|
||||
SELL
|
||||
"""
|
||||
|
||||
def __init__(self, symbol, tradable_balance, gross_balance, buy, sell):
|
||||
# pylint: disable=invalid-name
|
||||
self.symbol = symbol
|
||||
self.tradable_balance = tradable_balance
|
||||
self.gross_balance = gross_balance
|
||||
self.buy = buy
|
||||
self.sell = sell
|
||||
|
||||
@staticmethod
|
||||
def from_raw_margin_info(raw_margin_info):
|
||||
"""
|
||||
Generate a MarginInfo object from a raw margin info array
|
||||
"""
|
||||
symbol = raw_margin_info[1]
|
||||
tradable_balance = raw_margin_info[2][MarginInfoModel.TRADABLE_BALANCE]
|
||||
gross_balance = raw_margin_info[2][MarginInfoModel.GROSS_BALANCE]
|
||||
buy = raw_margin_info[2][MarginInfoModel.BUY]
|
||||
sell = raw_margin_info[2][MarginInfoModel.SELL]
|
||||
return MarginInfo(symbol, tradable_balance, gross_balance, buy, sell)
|
||||
|
||||
def __str__(self):
|
||||
return "Margin Info {} buy={} sell={} tradable_balance={} gross_balance={}" \
|
||||
"".format(self.symbol, self.buy, self.sell, self. tradable_balance, self. gross_balance)
|
||||
48
bfxapi/models/margin_info_base.py
Normal file
48
bfxapi/models/margin_info_base.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""
|
||||
Module used to describe all of the different data types
|
||||
"""
|
||||
|
||||
import datetime
|
||||
|
||||
class MarginInfoBaseModel:
|
||||
"""
|
||||
Enum used to index the different values in a raw margin info array
|
||||
"""
|
||||
USER_PL = 0
|
||||
USER_SWAPS = 1
|
||||
MARGIN_BALANCE = 2
|
||||
MARGIN_NET = 3
|
||||
MARGIN_MIN = 4
|
||||
|
||||
class MarginInfoBase:
|
||||
"""
|
||||
USER_PL float
|
||||
USER_SWAPS float
|
||||
MARGIN_BALANCE float
|
||||
MARGIN_NET float
|
||||
MARGIN_MIN float
|
||||
"""
|
||||
|
||||
def __init__(self, user_pl, user_swaps, margin_balance, margin_net, margin_min):
|
||||
# pylint: disable=invalid-name
|
||||
self.user_pl = user_pl
|
||||
self.user_swaps = user_swaps
|
||||
self.margin_balance = margin_balance
|
||||
self.margin_net = margin_net
|
||||
self.margin_min = margin_min
|
||||
|
||||
@staticmethod
|
||||
def from_raw_margin_info(raw_margin_info):
|
||||
"""
|
||||
Generate a MarginInfoBase object from a raw margin info array
|
||||
"""
|
||||
user_pl = raw_margin_info[1][MarginInfoBaseModel.USER_PL]
|
||||
user_swaps = raw_margin_info[1][MarginInfoBaseModel.USER_SWAPS]
|
||||
margin_balance = raw_margin_info[1][MarginInfoBaseModel.MARGIN_BALANCE]
|
||||
margin_net = raw_margin_info[1][MarginInfoBaseModel.MARGIN_NET]
|
||||
margin_min = raw_margin_info[1][MarginInfoBaseModel.MARGIN_MIN]
|
||||
return MarginInfoBase(user_pl, user_swaps, margin_balance, margin_net, margin_min)
|
||||
|
||||
def __str__(self):
|
||||
return "Margin Info Base user_pl={} user_swaps={} margin_balance={} margin_net={} margin_min={}" \
|
||||
"".format(self.user_pl, self.user_swaps, self.margin_balance, self.margin_net, self.margin_min)
|
||||
76
bfxapi/models/movement.py
Normal file
76
bfxapi/models/movement.py
Normal file
@@ -0,0 +1,76 @@
|
||||
"""
|
||||
Module used to describe movement data types
|
||||
"""
|
||||
|
||||
import time
|
||||
import datetime
|
||||
|
||||
class MovementModel:
|
||||
"""
|
||||
Enum used index the different values in a raw movement array
|
||||
"""
|
||||
|
||||
ID = 0
|
||||
CURRENCY = 1
|
||||
CURRENCY_NAME = 2
|
||||
MTS_STARTED = 5
|
||||
MTS_UPDATED = 6
|
||||
STATUS = 9
|
||||
AMOUNT = 12
|
||||
FEES = 13
|
||||
DESTINATION_ADDRESS = 16
|
||||
TRANSACTION_ID = 20
|
||||
|
||||
class Movement:
|
||||
|
||||
"""
|
||||
ID String Movement identifier
|
||||
CURRENCY String The symbol of the currency (ex. "BTC")
|
||||
CURRENCY_NAME String The extended name of the currency (ex. "BITCOIN")
|
||||
MTS_STARTED Date Movement started at
|
||||
MTS_UPDATED Date Movement last updated at
|
||||
STATUS String Current status
|
||||
AMOUNT String Amount of funds moved
|
||||
FEES String Tx Fees applied
|
||||
DESTINATION_ADDRESS String Destination address
|
||||
TRANSACTION_ID String Transaction identifier
|
||||
"""
|
||||
|
||||
def __init__(self, mid, currency, mts_started, mts_updated, status, amount, fees, dst_address, tx_id):
|
||||
self.id = mid
|
||||
self.currency = currency
|
||||
self.mts_started = mts_started
|
||||
self.mts_updated = mts_updated
|
||||
self.status = status
|
||||
self.amount = amount
|
||||
self.fees = fees
|
||||
self.dst_address = dst_address
|
||||
self.tx_id = tx_id
|
||||
|
||||
self.date = datetime.datetime.fromtimestamp(mts_started/1000.0)
|
||||
|
||||
|
||||
@staticmethod
|
||||
def from_raw_movement(raw_movement):
|
||||
"""
|
||||
Parse a raw movement object into a Movement object
|
||||
@return Movement
|
||||
"""
|
||||
|
||||
mid = raw_movement[MovementModel.ID]
|
||||
currency = raw_movement[MovementModel.CURRENCY]
|
||||
mts_started = raw_movement[MovementModel.MTS_STARTED]
|
||||
mts_updated = raw_movement[MovementModel.MTS_UPDATED]
|
||||
status = raw_movement[MovementModel.STATUS]
|
||||
amount = raw_movement[MovementModel.AMOUNT]
|
||||
fees = raw_movement[MovementModel.FEES]
|
||||
dst_address = raw_movement[MovementModel.DESTINATION_ADDRESS]
|
||||
tx_id = raw_movement[MovementModel.TRANSACTION_ID]
|
||||
|
||||
return Movement(mid, currency, mts_started, mts_updated, status, amount, fees, dst_address, tx_id)
|
||||
|
||||
def __str__(self):
|
||||
''' Allow us to print the Movement object in a pretty format '''
|
||||
text = "Movement <'{}' amount={} fees={} mts_created={} mts_updated={} status='{}' destination_address={} transaction_id={}>"
|
||||
return text.format(self.currency, self.amount, self.fees,
|
||||
self.mts_started, self.mts_updated, self.status, self.dst_address, self.tx_id)
|
||||
@@ -67,7 +67,7 @@ class OrderFlags:
|
||||
as flags
|
||||
"""
|
||||
HIDDEN = 64
|
||||
CLOSE = 12
|
||||
CLOSE = 512
|
||||
REDUCE_ONLY = 1024
|
||||
POST_ONLY = 4096
|
||||
OCO = 16384
|
||||
|
||||
Reference in New Issue
Block a user