穩定幣和外匯費用表適用于外匯對(例如 EUR/USD)以及穩定幣作為基礎貨幣(例如 USDT/USD)的情況。當穩定幣僅作為報價貨幣(例如 BTC/DAI)時,將使用“交易”選項卡中的費用表。

所有保證金費用均在開倉和平倉時加收交易費。如需全面了解,請訪問以下鏈接:https://www.kraken.com/en-us/features/fee-schedule

圖片未包含全部信息。請訪問上面的鏈接。

最后,期貨費用表也遵循做市商-接受者費用制度,之前的非期貨訂單不適用。

為什么我應該使用 Kraken API?

為什么我不應該使用 Kraken API?

Kraken API 在我的國家/地區可用嗎?

以下國家的公民不能使用 Kraken:

使用 Kraken API 有哪些替代方案?

您可以使用其他更適合您需求的網站來替代 Kraken。以下是其中一些:

哪些客戶端可用于 Kraken API?

Kraken API 的可用客戶端如下:

如何開始使用 Kraken API?

為了開始使用 Kraken API,我們首先需要獲取允許訪問私有端點的 API 密鑰。這意味著我們需要一個帳戶,所以讓我們創建一個。

繼續以下鏈接并單擊右上角的“創建帳戶”按鈕:

https://www.kraken.com/en-us/

將出現一個新屏幕,您將在其中輸入您的電子郵件、用戶名和密碼,同時指定居住的國家。

之后,您將被要求通過 Kraken 的電子郵件確認您的帳戶激活。請務必這樣做。

完成后,您將被帶到主網站并受到歡迎。到達那里后,點擊右上角的您的姓名,然后轉到安全 -> API。

現在點擊添加密鑰并指定您的 API 密鑰可以做什么。您可以在三個類別(即資金、訂單和交易以及其他)上管理 API 密鑰。您還可以添加到期日期和查詢開始/結束日期。

對于本文,我將授予密鑰所有權限并生成它。

確保安全存儲您的密鑰,因為關閉窗口后私鑰將不再可見。現在我們有了所需的一切,我們可以開始探索 Kraken API。

為此,我們將使用pykrakenapi庫,該庫使用低級 krakenex python 包實現 Kraken API 方法。要安裝它,請使用以下命令:

pip install pykrakenapi

如何使用 Kraken API 獲取資產信息?

可以通過利用返回 pandas 數據框的函數通過其 API 獲取 Kraken 交易所上的可用資產get_asset_info。我們這樣稱呼它:

data = k.get_asset_info()
data

如果你想自己從 Kraken 獲取信息(不使用庫),你可以按照以下方式編寫請求:

import requests
data1 = requests.get('https://api.kraken.com/0/public/Assets').json()
data1['result']
{'AAVE': {Caclass': 'currency',
'altname': 'AAVE',
'decimals': 10,
'display_decimals': 5},
'ADA': {'aclass': 'currency',
'altname': 'ADA',
'decimals': 8,
'display_decimals': 6},

現在讓我們獲取所有可交易資產對:

pairs = k.get_tradable_asset_pairs()
pairs

如何在 Kraken API 上獲取價格數據?

可以通過該函數獲取 Kraken 股票價格數據get_ticker_information。它還以 pandas 數據框的形式提供。

ticker = k.get_ticker_information('BTCUSD')
ticker.T

如您所見,一些響應類別以數組的形式出現。因此,我們需要熟悉響應:

索引 = 對名稱

a = 詢問數組(<價格>,<整手數量>,<手數量>)

b = 出價數組(<價格>,<整手數量>,<手數量>)

c = 最后交易結束數組(<價格>,<手數>)

v = 成交量數組(<今天>,<過去 24 小時>)

p = 成交量加權平均價格數組(<今天>,<過去 24 小時>)

t = 交易數量數組(<今天>,<過去 24 小時>)

l = 低數組(<今天>,<過去 24 小時>)

h = 高數組(<今天>,<過去 24 小時>)

o = 今日開盤價

如何使用 Kraken API 獲取歷史數據?

使用get_ohlc_data函數可以從 Kraken 獲取歷史數據。我們將要求以美元表示的 BTC 歷史每小時數據。

ohlc = k.get_ohlc_data('BTCUSD', interval=1440, ascending = True)
ohlc[0].head()

但是如果我們想創建一些像 20 SMA 這樣的指標怎么辦?

如何使用 Kraken API 訪問 20 SMA 等技術指標?

Kraken API 不提供指標,但可以通過多種方式創建指標。我們將使用簡單的 pandas 滾動功能來創建 20 SMA(簡單移動平均線)。

對于更高級的指標(例如 RSI),請務必查看 btalib 庫。現在,讓我們導入 pandas 并計算 20 SMA:

import pandas as pd

ohlc[0]['20 SMA'] = ohlc[0]['close'].rolling(20).mean()
ohlc[0].tail()

由于我們已經擁有制作漂亮的交互式圖表所需的所有數據,因此讓我們繼續創建一個。為此,我們將使用 plotly 庫:

import plotly.graph_objects as go
import plotly.express as px

fig = go.Figure(data=[go.Candlestick(x = ohlc[0].index,
open = ohlc[0]['open'],
high = ohlc[0]['high'],
low = ohlc[0]['low'],
close = ohlc[0]['close'],
),
go.Scatter(x=ohlc[0].index, y=ohlc[0]['20 SMA'], line=dict(color='purple', width=1))])

fig.show()

如何使用 Kraken API 獲取訂單簿數據?

使用該get_order_book函數可以從 Kraken 獲取訂單簿數據。訂單簿的深度最高可達 100,由count參數指定。

book = k.get_order_book('AAVEUSD', count = 20)
print(book[0].head())
print(book[1].head())

如果您希望通過索引值合并兩個子數據集(出價和要價),則可以使用 pandas 合并功能,如下所示:

df = pd.merge(book[0], book[1], left_index=True, right_index=True)
df = df.rename({"price_x":"Bid Price","volume_x":"Bid Amount", "time_x":"Bid Time",
"price_y":"Ask Price","volume_y":"Ask Amount", "time_y":"Ask Time"}, axis='columns')
df

當 BTC 達到某個價格時,如何使用 Kraken API 對 ETH 執行交易?

在第一個示例中,我將向您展示如何正確安全地啟動具有指定要求的訂單。我們想要做的是當 BTC 達到特定價格(例如 60,000 美元)時啟動 ETH 交易。

為了實現這一點,我們需要設置訂單基礎,然后創建一個循環來檢查價格水平是否被觸及。如果價格被觸及,我們將執行市價訂單。相反,我們將繼續循環。

當價格執行后,我們會等待幾秒鐘并檢查訂單是否真的已完成。這一額外步驟對于添加到您的交易策略中非常重要,因為交易所服務器可能會遇到一些問題。

現在邏輯已經設置好了,讓我們導入相關的庫并設置API:

from time import sleep
import krakenex
from pykrakenapi import KrakenAPI
api = krakenex.API()
kraken = KrakenAPI(api)

api.load_key('KrakenPass.txt')

注意這kraken.load_key部分——它會加載文本文件,您需要將 API 密鑰和 API 機密存儲在單獨的行中。現在是創建完整循環的時候了:

while True:

try:
BTC = kraken.get_ticker_information('BTCUSD')
except exception as e:
print(f'Unable to obtain BTC data: {e}')

if float(BTC['b'][0][0]) >= 57300.00:
try:
ETH = float((kraken.get_ticker_information('ETHUSD'))['a'][0][0]) + 2

response = kraken.add_standard_order(pair='ETHUSD', type='buy', ordertype='limit',
volume='0.007', price=ETH, validate=False)
print(response)
except exception as e:
print(f'Error placing order: {e}')

sleep(3)

check_order = kraken.query_orders_info(response['txid'][0])

if check_order['status'][0] == 'open' or 'closed':
print('Order completed sucessfully')
break
else:
print('Order rejected')
break
else:
print('Requirement not reached')

sleep(30)

如果您遇到困難或者需要任何幫助,只需輸入此命令:

help(KrakenAPI)

當 BTC 在過去 5 分鐘內波動 5% 時,如何使用 Kraken API 執行 ETH 交易?

主要任務是當 BTC 在過去 5 分鐘內波動 5% 時執行 ETH 交易。這意味著我們需要創建一個循環來獲取兩種加密貨幣的價格并計算兩者之間的百分比變化。

如果百分比變化小于 5%,程序將休眠 5 分鐘并再次計算百分比變化。如果百分比變化等于或大于 5%,則交易將執行。

交易執行后,我們將休眠幾秒鐘,然后檢查交易是否已完成。請記住,庫和 API 設置與上一個示例相同。

現在已經設置了邏輯,是時候編寫代碼了:

while True:

try:
BTC_old = float((kraken.get_ticker_information('BTCUSD'))['b'][0][0])
except Exception as e:
print(f'Unable to obtain BTC data: {e}')

sleep(60)

try:
BTC_new = float((kraken.get_ticker_information('BTCUSD'))['b'][0][0])
except Exception as e:
print(f'Unable to obtain BTC data: {e}')

percent = ((BTC_new - BTC_old)*100) / BTC_old

if percent >= 5:
try:
ETH = float((kraken.get_ticker_information('ETHUSD'))['a'][0][0]) + 2

response = kraken.add_standard_order(pair='ETHUSD', type='buy', ordertype='limit',
volume='0.007', price=ETH, validate=False)
print(response)
except Exception as e:
print(f'Error placing order: {e}')

sleep(3)

check_order = kraken.query_orders_info(response['txid'][0])

if check_order['status'][0] == 'open' or 'closed':
print('Order completed sucessfully')
break
else:
print('Order rejected')
break
else:
print('Requirement not reached')

如何使用 Kraken API 取消訂單?

如果您想使用 Kraken API 取消特定訂單,您將需要使用該cancel_open_order函數并傳入訂單 ID 作為txid參數。

k.cancel_open_order(self, txid, otp=None)

Kraken API 可以在 Google Sheets 中使用嗎?

是的!可以使用 API 連接器插件通過 Google Sheets 調用 Kraken API。為此,您需要從此處的 Google Workspace Marketplace 下載插件

安裝插件后,它會為您提供快速使用指南。如果您對該功能持懷疑態度,或者只是想在安裝前查看它,我可以幫助您。

打開 Google 電子表格并轉到附加組件 -> API 連接器 -> 打開。

在屏幕右側打開 API 連接器界面后,單擊“創建”按鈕并在 API URL 路徑中寫入您的 http 請求。

我將插入 Kraken API 資產 URL,將目標工作表設置為當前工作表,并在輸出選項下將報告樣式設置為緊湊。讓我們給請求命名并單擊“運行”以查看輸出的樣子:

如您所見,我們需要轉置此輸出,就像我們對 pandas 數據框所做的那樣。要在 Excel 中執行此操作,請單擊第一個資產,然后運行 Shift + Ctrl + 向右箭頭鍵快捷鍵以選擇所選資產右側的所有資產。

之后,單擊要轉置輸出的新單元格(在本例中為錯誤單元格),然后右鍵單擊 -> 選擇性粘貼 -> 粘貼轉置。

請隨意嘗試一些其他端點,例如:

Order Book:
https://api.kraken.com/0/public/Depth?pair=xbteur&count=20

Ticker:
https://api.kraken.com/0/public/Ticker?pair=xbtusd

上一篇:

Coinbase Pro API – 入門指南

下一篇:

Python調用Google Bard API 完整指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費