我试图在okex交换版本5上使用ccxt创建一个永久的限制订单。API正在成功地在现货交易所下订单(包括限制和市场),而不是在永久交换上。以下是我正在尝试的-
exchange_swap = ccxt.okex5({
'apiKey': credentials['okex']['apikey'],
'secret': credentials['okex']['secretkey'],
'password': credentials['okex']['password'],
'options': {
'defaultType': 'swap',
}
})
params = {
"test":True
}
order = exchange_swap.createLimitBuyOrder('XRP-USDT-SWAP',100,0.7)
错误信息-
ccxt.base.errors.BadRequest: okex5 {"code":"1","data":[{"clOrdId":"","ordId":"","sCode":"51000","sMsg":"Parameter posSide error ","tag":""}],"msg":""}
在搜索了这个错误之后,我在他们的文档中找到了-
Error message Http status code Error code
Parameter {0} error. 400 51000
文档链接- Okex v5
P.S -我可以通过交易仪表板把这个放在okex上,但不是通过API。我有足够的平衡来创造这个秩序。
整个错误信息是-
Traceback (most recent call last):
File "C:\Users\ishaa\Desktop\trading\Crypto Vibhor\Testing Files\ccxt_test.py", line 70, in
<module>
order = exchange_swap.createLimitBuyOrder('XRP-USDT-SWAP',100,0.7)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line 1983, in create_limit_buy_order
return self.create_order(symbol, 'limit', 'buy', amount, price, params)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\okex5.py", line 1287, in create_order
response = self.privatePostTradeOrder(self.extend(request, params))
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line 461, in inner
return entry(_self, **inner_kwargs)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line
486, in request
return self.fetch2(path, api, method, params, headers, body)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line 482, in fetch2
return self.fetch(request['url'], request['method'], request['headers'], request['body'])
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line 634, in fetch
self.handle_errors(http_status_code, http_status_text, url, method, headers, http_response, json_response, request_headers, request_body)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\okex5.py", line 2230, in handle_errors
self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
File "C:\Users\ishaa\Desktop\trading\tradingenv\lib\site-packages\ccxt\base\exchange.py", line 500, in throw_exactly_matched_exception
raise exact[string](message)
ccxt.base.errors.BadRequest: okex5 {"code":"1","data":
[{"clOrdId":"","ordId":"","sCode":"51000","sMsg":"Parameter posSide error
","tag":""}],"msg":""}
发布于 2022-05-15 08:04:45
错误消息是Parameter posSide error
,这意味着您在请求中发送的posSide
参数中有一个错误。
据我从您的代码中可以看到,您只提供了滴答、大小和价格,但缺少了posSide
参数。
与其他交易所不同的是,在Okex上,您可以为buy
或sell
为FUTURES
和SWAP
产品添加long
或short
,因此需要添加posSide
参数。
这是违反直觉的,我也花了一些时间才弄清楚。实际上,您可以同时使用buy
a long
和buy
a short
。您可以在Okex gui中试一试,看看它到底是如何工作的。
文档告诉我们,posSide
参数是:
另一个选项是禁用long/short
模式(默认设置)并使用net
模式。使用net
模式意味着不需要将posSide
参数添加到请求字符串中。
下面是到文档的链接,它解释了如何使用设置位置模式。
下面是一个工作示例,它包含两个请求的参数,用于限制阶,即设置tdMode
和posSide
。
import ccxt
exchange = ccxt.okex5({
'apiKey': '...',
'secret': '...',
'password': '...',
})
exchange.createLimitBuyOrder('XRP-USDT-SWAP', 100, 0.4,
{"tdMode": "cross", "posSide": "long"})
您可以阅读有关在ccxt 这里中设置自定义订单参数的更多信息。
https://stackoverflow.com/questions/67869339
复制相似问题