veox@localhost% ./print-available-balances.py
# Wed Oct 18 19:17:11 2017
EUR <snip>
XBT 0.0144076056
<snip>
Note the balance.
veox@localhost% ./add-order.py
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
/home/veox/src/python3-krakenex/examples/add-order.py in <module>()
31
32 if __name__ == '__main__':
---> 33 main()
/home/veox/src/python3-krakenex/examples/add-order.py in main()
21 before = now()
22 response = k.query_private('AddOrder', {'pair': 'XMRXBT', 'type': 'buy', 'ordertype': 'limit',
---> 23 'price': '0.01175', 'volume': '1', 'userref': '0'})
24 after = now()
25
/home/veox/.local/lib/python3.6/site-packages/krakenex/api.py in query_private(self, method, data)
167 }
168
--> 169 return self._query(urlpath, data, headers)
170
171 def _nonce(self):
/home/veox/.local/lib/python3.6/site-packages/krakenex/api.py in _query(self, urlpath, data, headers)
120
121 if self.response.status_code not in (200, 201, 202):
--> 122 self.response.raise_for_status()
123
124 return self.response.json()
/usr/lib/python3.6/site-packages/requests/models.py in raise_for_status(self)
933
934 if http_error_msg:
--> 935 raise HTTPError(http_error_msg, response=self)
936
937 def close(self):
HTTPError: 502 Server Error: Bad Gateway for url: https://api.kraken.com/0/private/AddOrder
The query failed with a HTTP 502 error.
veox@localhost% ./print-available-balances.py
# Wed Oct 18 19:19:31 2017
EUR <snip>
XBT 0.0144076056
<snip>
Balance remains same as before.
veox@localhost% ./print-available-balances.py
# Wed Oct 18 19:19:44 2017
EUR <snip>
XBT 0.0026576056
<snip>
Several seconds later, the query that 502'ed has gone through!
The general approach is non-graceful: should be reusing the session, i.e. should have a single script. Not sure if that would hinder the demonstration, though.