beem.market¶
-
class
beem.market.
Market
(base=None, quote=None, blockchain_instance=None, **kwargs)¶ Bases:
dict
This class allows to easily access Markets on the blockchain for trading, etc.
Parameters: Returns: Blockchain Market
Return type: dictionary with overloaded methods
Instances of this class are dictionaries that come with additional methods (see below) that allow dealing with a market and its corresponding functions.
This class tries to identify two assets as provided in the parameters in one of the following forms:
base
andquote
are valid assets (according tobeem.asset.Asset
)base:quote
separated with:
base/quote
separated with/
base-quote
separated with-
Note
Throughout this library, the
quote
symbol will be presented first (e.g.STEEM:SBD
withSTEEM
being the quote), while thebase
only refers to a secondary asset for a trade. This means, if you callbeem.market.Market.sell()
orbeem.market.Market.buy()
, you will sell/buy only quote and obtain/pay only base.-
accountopenorders
(account=None, raw_data=False)¶ Returns open Orders
Parameters: - account (Account) – Account name or instance of Account to show orders for in this market
- raw_data (bool) – (optional) returns raw data if set True, or a list of Order() instances if False (defaults to False)
-
static
btc_usd_ticker
(verbose=False)¶ Returns the BTC/USD price from bitfinex, gdax, kraken, okcoin and bitstamp. The mean price is weighted by the exchange volume.
-
buy
(price, amount, expiration=None, killfill=False, account=None, orderid=None, returnOrderId=False)¶ Places a buy order in a given market
Parameters: - price (float) – price denoted in
base
/quote
- amount (number) – Amount of
quote
to buy - expiration (number) – (optional) expiration time of the order in seconds (defaults to 7 days)
- killfill (bool) – flag that indicates if the order shall be killed if it is not filled (defaults to False)
- account (string) – Account name that executes that order
- returnOrderId (string) – If set to “head” or “irreversible” the call will wait for the tx to appear in the head/irreversible block and add the key “orderid” to the tx output
Prices/Rates are denoted in ‘base’, i.e. the SBD_STEEM market is priced in STEEM per SBD.
Example: in the SBD_STEEM market, a price of 300 means a SBD is worth 300 STEEM
Note
All prices returned are in the reversed orientation as the market. I.e. in the STEEM/SBD market, prices are SBD per STEEM. That way you can multiply prices with 1.05 to get a +5%.
Warning
Since buy orders are placed as limit-sell orders for the base asset, you may end up obtaining more of the buy asset than you placed the order for. Example:
- You place and order to buy 10 SBD for 100 STEEM/SBD
- This means that you actually place a sell order for 1000 STEEM in order to obtain at least 10 SBD
- If an order on the market exists that sells SBD for cheaper, you will end up with more than 10 SBD
- price (float) – price denoted in
-
cancel
(orderNumbers, account=None, **kwargs)¶ Cancels an order you have placed in a given market. Requires only the “orderNumbers”.
Parameters: orderNumbers (int, list) – A single order number or a list of order numbers
-
get_string
(separator=':')¶ Return a formated string that identifies the market, e.g.
STEEM:SBD
Parameters: separator (str) – The separator of the assets (defaults to :
)
-
static
hive_btc_ticker
()¶ Returns the HIVE/BTC price from bittrex and upbit. The mean price is weighted by the exchange volume.
-
hive_usd_implied
()¶ Returns the current HIVE/USD market price
-
market_history
(bucket_seconds=300, start_age=3600, end_age=0, raw_data=False)¶ Return the market history (filled orders).
Parameters: - bucket_seconds (int) – Bucket size in seconds (see returnMarketHistoryBuckets())
- start_age (int) – Age (in seconds) of the start of the window (default: 1h/3600)
- end_age (int) – Age (in seconds) of the end of the window (default: now/0)
- raw_data (bool) – (optional) returns raw data if set True
Example:
{ 'close_sbd': 2493387, 'close_steem': 7743431, 'high_sbd': 1943872, 'high_steem': 5999610, 'id': '7.1.5252', 'low_sbd': 534928, 'low_steem': 1661266, 'open': '2016-07-08T11:25:00', 'open_sbd': 534928, 'open_steem': 1661266, 'sbd_volume': 9714435, 'seconds': 300, 'steem_volume': 30088443 }
-
market_history_buckets
()¶
-
orderbook
(limit=25, raw_data=False)¶ Returns the order book for SBD/STEEM market.
Parameters: limit (int) – Limit the amount of orders (default: 25) Sample output (raw_data=False):
{ 'asks': [ 380.510 STEEM 460.291 SBD @ 1.209669 SBD/STEEM, 53.785 STEEM 65.063 SBD @ 1.209687 SBD/STEEM ], 'bids': [ 0.292 STEEM 0.353 SBD @ 1.208904 SBD/STEEM, 8.498 STEEM 10.262 SBD @ 1.207578 SBD/STEEM ], 'asks_date': [ datetime.datetime(2018, 4, 30, 21, 7, 24, tzinfo=<UTC>), datetime.datetime(2018, 4, 30, 18, 12, 18, tzinfo=<UTC>) ], 'bids_date': [ datetime.datetime(2018, 4, 30, 21, 1, 21, tzinfo=<UTC>), datetime.datetime(2018, 4, 30, 20, 38, 21, tzinfo=<UTC>) ] }
Sample output (raw_data=True):
{ 'asks': [ { 'order_price': {'base': '8.000 STEEM', 'quote': '9.618 SBD'}, 'real_price': '1.20225000000000004', 'steem': 4565, 'sbd': 5488, 'created': '2018-04-30T21:12:45' } ], 'bids': [ { 'order_price': {'base': '10.000 SBD', 'quote': '8.333 STEEM'}, 'real_price': '1.20004800192007677', 'steem': 8333, 'sbd': 10000, 'created': '2018-04-30T20:29:33' } ] }
Note
Each bid is an instance of class:beem.price.Order and thus carries the keys
base
,quote
andprice
. From those you can obtain the actual amounts for sale
-
recent_trades
(limit=25, raw_data=False)¶ Returns the order book for a given market. You may also specify “all” to get the orderbooks of all markets.
Parameters: - limit (int) – Limit the amount of orders (default: 25)
- raw_data (bool) – when False, FilledOrder objects will be returned
Sample output (raw_data=False):
[ (2018-04-30 21:00:54+00:00) 0.267 STEEM 0.323 SBD @ 1.209738 SBD/STEEM, (2018-04-30 20:59:30+00:00) 0.131 STEEM 0.159 SBD @ 1.213740 SBD/STEEM, (2018-04-30 20:55:45+00:00) 0.093 STEEM 0.113 SBD @ 1.215054 SBD/STEEM, (2018-04-30 20:55:30+00:00) 26.501 STEEM 32.058 SBD @ 1.209690 SBD/STEEM, (2018-04-30 20:55:18+00:00) 2.108 STEEM 2.550 SBD @ 1.209677 SBD/STEEM, ]
Sample output (raw_data=True):
[ {'date': '2018-04-30T21:02:45', 'current_pays': '0.235 SBD', 'open_pays': '0.194 STEEM'}, {'date': '2018-04-30T21:02:03', 'current_pays': '24.494 SBD', 'open_pays': '20.248 STEEM'}, {'date': '2018-04-30T20:48:30', 'current_pays': '175.464 STEEM', 'open_pays': '211.955 SBD'}, {'date': '2018-04-30T20:48:30', 'current_pays': '0.999 STEEM', 'open_pays': '1.207 SBD'}, {'date': '2018-04-30T20:47:54', 'current_pays': '0.273 SBD', 'open_pays': '0.225 STEEM'}, ]
Note
Each bid is an instance of
beem.price.Order
and thus carries the keysbase
,quote
andprice
. From those you can obtain the actual amounts for sale
-
sell
(price, amount, expiration=None, killfill=False, account=None, orderid=None, returnOrderId=False)¶ Places a sell order in a given market
Parameters: - price (float) – price denoted in
base
/quote
- amount (number) – Amount of
quote
to sell - expiration (number) – (optional) expiration time of the order in seconds (defaults to 7 days)
- killfill (bool) – flag that indicates if the order shall be killed if it is not filled (defaults to False)
- account (string) – Account name that executes that order
- returnOrderId (string) – If set to “head” or “irreversible” the call will wait for the tx to appear in the head/irreversible block and add the key “orderid” to the tx output
Prices/Rates are denoted in ‘base’, i.e. the SBD_STEEM market is priced in STEEM per SBD.
Example: in the SBD_STEEM market, a price of 300 means a SBD is worth 300 STEEM
Note
All prices returned are in the reversed orientation as the market. I.e. in the STEEM/SBD market, prices are SBD per STEEM. That way you can multiply prices with 1.05 to get a +5%.
- price (float) – price denoted in
-
static
steem_btc_ticker
()¶ Returns the STEEM/BTC price from bittrex, binance, huobi and upbit. The mean price is weighted by the exchange volume.
-
steem_usd_implied
()¶ Returns the current STEEM/USD market price
-
ticker
(raw_data=False)¶ Returns the ticker for all markets.
Output Parameters:
latest
: Price of the order last filledlowest_ask
: Price of the lowest askhighest_bid
: Price of the highest bidsbd_volume
: Volume of SBDsteem_volume
: Volume of STEEMhbd_volume
: Volume of HBDhive_volume
: Volume of HIVEpercent_change
: 24h change percentage (in %)
Note
Market is HIVE:HBD and prices are HBD per HIVE!
Sample Output:
{ 'highest_bid': 0.30100226633322913, 'latest': 0.0, 'lowest_ask': 0.3249636958897082, 'percent_change': 0.0, 'sbd_volume': 108329611.0, 'steem_volume': 355094043.0 }
-
trade_history
(start=None, stop=None, intervall=None, limit=25, raw_data=False)¶ Returns the trade history for the internal market
This function allows to fetch a fixed number of trades at fixed intervall times to reduce the call duration time. E.g. it is possible to receive the trades from the last 7 days, by fetching 100 trades each 6 hours.
When intervall is set to None, all trades are received between start and stop. This can take a while.
Parameters: - start (datetime) – Start date
- stop (datetime) – Stop date
- intervall (timedelta) – Defines the intervall
- limit (int) – Defines how many trades are fetched at each intervall point
- raw_data (bool) – when True, the raw data are returned
-
trades
(limit=100, start=None, stop=None, raw_data=False)¶ Returns your trade history for a given market.
Parameters: - limit (int) – Limit the amount of orders (default: 100)
- start (datetime) – start time
- stop (datetime) – stop time
-
volume24h
(raw_data=False)¶ Returns the 24-hour volume for all markets, plus totals for primary currencies.
Sample output:
{ "STEEM": 361666.63617, "SBD": 1087.0 }