├── Order Example_1.ipynb
├── README.md
└── Order Example_2.ipynb
/Order Example_1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "id": "ca2a1b9c",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "from time import sleep\n",
11 | "import krakenex\n",
12 | "from pykrakenapi import KrakenAPI\n",
13 | "api = krakenex.API()\n",
14 | "kraken = KrakenAPI(api)\n",
15 | "\n",
16 | "api.load_key('KrakenPass.txt')\n",
17 | "\n",
18 | "while True:\n",
19 | " \n",
20 | " try:\n",
21 | " BTC = kraken.get_ticker_information('BTCUSD')\n",
22 | " except exception as e:\n",
23 | " print(f'Unable to obtain BTC data: {e}')\n",
24 | " \n",
25 | " if float(BTC['b'][0][0]) >= 57300.00:\n",
26 | " try:\n",
27 | " ETH = float((kraken.get_ticker_information('ETHUSD'))['a'][0][0]) + 2\n",
28 | " \n",
29 | " response = kraken.add_standard_order(pair='ETHUSD', type='buy', ordertype='limit', \n",
30 | " volume='0.007', price=ETH, validate=False)\n",
31 | " print(response)\n",
32 | " except exception as e:\n",
33 | " print(f'Error placing order {e}')\n",
34 | " \n",
35 | " sleep(3)\n",
36 | " \n",
37 | " check_order = kraken.query_orders_info(response['txid'][0])\n",
38 | " \n",
39 | " if check_order['status'][0] == 'open' or 'closed':\n",
40 | " print('Order completed sucessfully')\n",
41 | " break\n",
42 | " else:\n",
43 | " print('Order rejected')\n",
44 | " break\n",
45 | " else:\n",
46 | " print('Requirement not reached')\n",
47 | " \n",
48 | " sleep(30)"
49 | ]
50 | }
51 | ],
52 | "metadata": {
53 | "kernelspec": {
54 | "display_name": "Python 3",
55 | "language": "python",
56 | "name": "python3"
57 | },
58 | "language_info": {
59 | "codemirror_mode": {
60 | "name": "ipython",
61 | "version": 3
62 | },
63 | "file_extension": ".py",
64 | "mimetype": "text/x-python",
65 | "name": "python",
66 | "nbconvert_exporter": "python",
67 | "pygments_lexer": "ipython3",
68 | "version": "3.8.3"
69 | }
70 | },
71 | "nbformat": 4,
72 | "nbformat_minor": 5
73 | }
74 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Kraken-API---A-Complete-Guide-Algotrading101
2 |
3 | [Kraken API Guide](https://algotrading101.com/learn/kraken-api-guide/) code used in the article at Algotrading101 blog
4 |
5 | ## Table of contents
6 |
7 |
- What is the Kraken API?
- What is Kraken?
- Is Kraken API free?
- Why should I use Kraken API?
- Why shouldn’t I use the Kraken API?
- Is Kraken API available in my country?
- What are the alternatives to using Kraken API?
- What clients are available for the Kraken API?
- How to get started with Kraken API?
- How to get asset info with Kraken API?
- How to get Price Data on Kraken API?
- How to get historical data with Kraken API?
- How to access technical indicators such as the 20 SMA with the Kraken API?
- How to get Order Book data with Kraken API?
- How to execute a trade on ETH when BTC hits a certain price with the Kraken API?
- How to execute an ETH trade when BTC moves 5% in the last 5 minutes with the Kraken API?
- How to cancel orders with Kraken API?
- Can Kraken API be used in Google Sheets?
- Full code
8 |
9 | ---------
10 | ## Info
11 |
12 | | Author | Igor Radovanovic
13 | --- | ---
14 | | Published | April 6, 2021
15 |
--------------------------------------------------------------------------------
/Order Example_2.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": null,
6 | "id": "8b7dd717",
7 | "metadata": {},
8 | "outputs": [],
9 | "source": [
10 | "from time import sleep\n",
11 | "import krakenex\n",
12 | "from pykrakenapi import KrakenAPI\n",
13 | "api = krakenex.API()\n",
14 | "kraken = KrakenAPI(api)\n",
15 | "\n",
16 | "api.load_key('KrakenPass.txt')\n",
17 | "\n",
18 | "while True:\n",
19 | " \n",
20 | " try:\n",
21 | " BTC_old = float((kraken.get_ticker_information('BTCUSD'))['b'][0][0])\n",
22 | " except exception as e:\n",
23 | " print(f'Unable to obtain BTC data: {e}')\n",
24 | " \n",
25 | " sleep(60)\n",
26 | " \n",
27 | " try:\n",
28 | " BTC_new = float((kraken.get_ticker_information('BTCUSD'))['b'][0][0])\n",
29 | " except exception as e:\n",
30 | " print(f'Unable to obtain BTC data: {e}')\n",
31 | " \n",
32 | " percent = ((BTC_new - BTC_old)*100) / BTC_old\n",
33 | " \n",
34 | " if percent >= 5:\n",
35 | " try:\n",
36 | " ETH = float((kraken.get_ticker_information('ETHUSD'))['a'][0][0]) + 2\n",
37 | " \n",
38 | " response = kraken.add_standard_order(pair='ETHUSD', type='buy', ordertype='limit', \n",
39 | " volume='0.007', price=ETH, validate=False)\n",
40 | " print(response)\n",
41 | " except exception as e:\n",
42 | " print(f'Error placing order: {e}')\n",
43 | " \n",
44 | " sleep(3)\n",
45 | " \n",
46 | " check_order = kraken.query_orders_info(response['txid'][0])\n",
47 | " \n",
48 | " if check_order['status'][0] == 'open' or 'closed':\n",
49 | " print('Order completed sucessfully')\n",
50 | " break\n",
51 | " else:\n",
52 | " print('Order rejected')\n",
53 | " break\n",
54 | " else:\n",
55 | " print('Requirement not reached')"
56 | ]
57 | }
58 | ],
59 | "metadata": {
60 | "kernelspec": {
61 | "display_name": "Python 3",
62 | "language": "python",
63 | "name": "python3"
64 | },
65 | "language_info": {
66 | "codemirror_mode": {
67 | "name": "ipython",
68 | "version": 3
69 | },
70 | "file_extension": ".py",
71 | "mimetype": "text/x-python",
72 | "name": "python",
73 | "nbconvert_exporter": "python",
74 | "pygments_lexer": "ipython3",
75 | "version": "3.8.3"
76 | }
77 | },
78 | "nbformat": 4,
79 | "nbformat_minor": 5
80 | }
81 |
--------------------------------------------------------------------------------