Ionomy

Imports and Params

[1]:
from Ionomy import Ionomy
from decouple import config

MARKET = 'btc-hive'
CURRENCY = 'hive'
BASE = 'btc'
TIME = 'day'
BTC_QUANTITY = 0.001
HIVE_QUANTITY = 100
LOW_RATE=0.00003
HIGH_RATE=0.00004
ADDRESS = 'memehub'

Instantiation

[2]:
ion = Ionomy(config('IONOMY_KEY'), config('IONOMY_SECRET'))

Public Endpoint Methods

Markets

[3]:
markets = ion.markets()
markets[0]
[3]:
{'market': 'btc-eth',
 'title': 'Bitcoin:Ethereum',
 'currencyBase': 'btc',
 'currencyMarket': 'eth',
 'orderMinSize': '0.00001000',
 'buyFee': '0.20000000',
 'sellFee': '0.20000000',
 'inMaintenance': False}

Currencies

[6]:
currencies = ion.currencies()
currencies[0]
[6]:
{'currency': 'dash',
 'title': 'Dash',
 'withdrawMinSize': '0.00100000',
 'withdrawFee': '0.00200000',
 'inMaintenance': False,
 'canDeposit': 1,
 'canWithdraw': 1}

Order Book

[11]:
order_book = ion.order_book(MARKET)
order_book["bids"][0]
[11]:
{'size': '207.00000000', 'price': '0.00003301'}

Market Summaries

[12]:
market_summaries = ion.market_summaries()
market_summaries[0]
[12]:
{'market': 'btc-eth',
 'high': '0.02150000',
 'low': '0.01900001',
 'volume': '0.31467562',
 'price': '0.01900001',
 'change': '-11.63',
 'baseVolume': '0.00597884',
 'bidsOpenOrders': '10',
 'bidsLastPrice': '0.01900003',
 'highestBid': '0.01900003',
 'asksOpenOrders': '14',
 'asksLastPrice': '0.02250000',
 'lowestAsk': '0.02250000'}

Market Summary

[14]:
market_summary = ion.market_summary(MARKET)
market_summary
[14]:
{'market': 'btc-hive',
 'high': '0.00003538',
 'low': '0.00003300',
 'volume': '3856.61483680',
 'price': '0.00003370',
 'change': '2.06',
 'baseVolume': '0.12996792',
 'bidsOpenOrders': '39',
 'bidsLastPrice': '0.00003301',
 'highestBid': '0.00003301',
 'asksOpenOrders': '47',
 'asksLastPrice': '0.00003447',
 'lowestAsk': '0.00003370'}

Market History

[15]:
market_history = ion.market_history(MARKET)
market_history[0]
[15]:
{'type': 'MARKET_BUY',
 'amount': '140.93003798',
 'price': '0.00003370',
 'total': '0.00474934',
 'createdAt': '2020-05-16T09:28:58Z'}

Market Endpoint Methods

Limit Buy/Sell Order

[3]:
order = ion.limit_buy(HIVE_QUANTITY, LOW_RATE, MARKET)
# order = ion.limit_sell(HIVE_QUANTITY, HIGH_RATE, MARKET)
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-3-8453aa1ba66a> in <module>
      1 order = ion.limit_buy(HIVE_QUANTITY, LOW_RATE, MARKET)
----> 2 order = ion.limit_sell(HIVE_QUANTITY, HIGH_RATE, MARKET)

/notebooks/packages/Ionomy/ionomy.py in limit_sell(self, amount, price, market)
     92             'price': f'{price:.8f}'
     93         }
---> 94         return self._request('market/sell-limit', params)
     95
     96     def cancel_order(self, orderId: str) -> bool:

/notebooks/packages/Ionomy/ionomy.py in _request(self, endpoint, params)
     47         data = json.loads(response.content)
     48         if not data['success']:
---> 49             raise Exception(data['message'])
     50         return data['data']
     51

Exception: 40017

Cancel Order

[9]:
success = ion.cancel_order(order['orderId'])
success
[9]:
True

Order Status

[8]:
order_status = ion.order_status(order['orderId'])
order_status
[8]:
{'orderId': '5ec1a9d18b196d3e336cf6d2',
 'status': 'OPEN',
 'market': 'btc-hive',
 'type': 'LIMIT_BUY',
 'amount': '100.00000000',
 'price': '0.00003000',
 'filled': '0.00000000',
 'opened': '2020-05-17T21:17:05Z',
 'closed': None}

Account Endpoint Methods

Open Orders

[4]:
open_orders = ion.open_orders(MARKET)
open_orders[0]
[4]:
[{'orderId': '5ec1a9d18b196d3e336cf6d2',
  'market': 'btc-hive',
  'type': 'LIMIT_BUY',
  'amount': '100.00000000',
  'price': '0.00003000',
  'filled': '0.00000000',
  'createdAt': '2020-05-17T21:17:05Z'}]

Balances

[18]:
balances = ion.balances()
balances[0]
[18]:
{'currency': 'btc', 'available': '0.11574671', 'reserved': '0.00000001'}

Balance

[19]:
balance = ion.balance(CURRENCY)
balance
[19]:
{'currency': 'hive', 'available': '0.54814539', 'reserved': '0.00000000'}

Deposit Address

[20]:
deposit_address = ion.deposit_address(CURRENCY)
deposit_address
[20]:
{'currency': 'hive', 'address': '5e8f6cd1a2a3e2080524eb42'}

Deposit History

[29]:
deposit_history = ion.deposit_history("Steem")
deposit_history["deposits"][0]
[29]:
{'transactionId': '5e8f6db5149be70cd35ab8e2',
 'state': 'PROCESSED',
 'currency': 'steem',
 'amount': '1.00000000',
 'createdAt': '2020-04-09T18:47:17Z'}

Withdrawal History

[25]:
withdrawal_history = ion.withdrawal_history(CURRENCY)
withdrawal_history[0]
[25]:
{'transactionId': '5e8f726da2a3e220e6566b72',
 'state': 'PROCESSED',
 'currency': 'hive',
 'amount': '7186.01000000',
 'feeAmount': '0.01000000',
 'createdAt': '2020-04-09T19:07:25Z'}