Ccxt: Kraken-尝试获取最少订单时出现403禁止错误

创建于 2020-04-14  ·  7评论  ·  资料来源: ccxt/ccxt

你好,

自从此更新以来,Kraken集成似乎对我来说是坏的: https :
在提交中,“ fetchMinLimitOrder”已设置为true。
但是,Kraken具有一种保护机制,要求用户在其网站上完成验证码才能访问页面。 我认为启用此保护后,Kraken无法加载市场。

请告诉我我的想法是否错误以及是否可以解决。

谢谢,
亚历克斯

duplicate question

最有用的评论

@alextousss如上述Kroitor的回复所述,可以通过Kraken支持页面//support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-来检索Kraken的最小订单量。

将捕获来自Kraken支持页面的html代码,并将html标签<td class="wysiwyg-text-align-right">分解为一个数组,该数组用于导出最小订单。

我的短期修复(直到Kraken将最小订单量添加到REST API AssetPairs端点)是将html代码直接提供给ccxt / kraken.php文件中的fetch_min_order_amounts()函数。

代替$html = $this->zendeskGet205893708WhatIsTheMinimumOrderSize ();

我使用返回相关文本的函数从支持页面的文本定义了变量$ html。

我只是创建了以下函数,该函数返回了从kraken支持页面复制的相关html代码:

public function Minimum_Order_Size_Hard_Code(){

return '<td><strong>Base currency</strong></td>
<td class="wysiwyg-text-align-right"><strong>Order minimum</strong></td>
</tr>
<tr>
<td>Algorand</td>
<td class="wysiwyg-text-align-right">50 ALGO</td>
</tr>
<tr>
<td>Augur</td>
<td class="wysiwyg-text-align-right">0.3 REP</td>
</tr>
<tr>
<td>Basic Attention Token</td>
<td class="wysiwyg-text-align-right">50 BAT</td>
</tr>
<tr>
<td>Bitcoin</td>
<td class="wysiwyg-text-align-right">0.002 XBT</td>
</tr>
<tr>
<td>Bitcoin Cash</td>
<td class="wysiwyg-text-align-right">0.000002 BCH</td>
</tr>
<tr>
<td>Cardano</td>
<td class="wysiwyg-text-align-right">1 ADA</td>
</tr>
<tr>
<td>Chainlink</td>
<td class="wysiwyg-text-align-right">10 LINK</td>
</tr>
<tr>
<td>Cosmos</td>
<td class="wysiwyg-text-align-right">1 ATOM</td>
</tr>
<tr>
<td>DAI</td>
<td class="wysiwyg-text-align-right">10 DAI</td>
</tr>
<tr>
<td>Dash</td>
<td class="wysiwyg-text-align-right">0.03 DASH</td>
</tr>
<tr>
<td>Dogecoin</td>
<td class="wysiwyg-text-align-right">3000 XDG</td>
</tr>
<tr>
<td>EOS</td>
<td class="wysiwyg-text-align-right">3 EOS</td>
</tr>
<tr>
<td>Ethereum</td>
<td class="wysiwyg-text-align-right">0.02 ETH</td>
</tr>
<tr>
<td>Ethereum Classic</td>
<td class="wysiwyg-text-align-right">0.3 ETC</td>
</tr>
<tr>
<td>Gnosis</td>
<td class="wysiwyg-text-align-right">0.02 GNO</td>
</tr>
<tr>
<td>ICON</td>
<td class="wysiwyg-text-align-right">50 ICX</td>
</tr>
<tr>
<td>Lisk</td>
<td class="wysiwyg-text-align-right">10 LSK</td>
</tr>
<tr>
<td>Litecoin</td>
<td class="wysiwyg-text-align-right">0.1 LTC</td>
</tr>
<tr>
<td>Monero</td>
<td class="wysiwyg-text-align-right">0.1 XMR</td>
</tr>
<tr>
<td>Nano</td>
<td class="wysiwyg-text-align-right">10 NANO</td>
</tr>
<tr>
<td>OmiseGO</td>
<td class="wysiwyg-text-align-right">10 OMG</td>
</tr>
<tr>
<td>PAX Gold</td>
<td class="wysiwyg-text-align-right">0.01 PAXG</td>
</tr>
<tr>
<td>QTUM</td>
<td class="wysiwyg-text-align-right">0.1 QTUM</td>
</tr>
<tr>
<td>Ripple</td>
<td class="wysiwyg-text-align-right">30 XRP</td>
</tr>
<tr>
<td>Siacoin</td>
<td class="wysiwyg-text-align-right">5000 SC</td>
</tr>
<tr>
<td>Stellar Lumens</td>
<td class="wysiwyg-text-align-right">30 XLM</td>
</tr>
<tr>
<td>Tether</td>
<td class="wysiwyg-text-align-right">5 USDT</td>
</tr>
<tr>
<td>Tezos</td>
<td class="wysiwyg-text-align-right">1 XTZ</td>
</tr>
<tr>
<td>Tron</td>
<td class="wysiwyg-text-align-right">500 TRX</td>
</tr>
<tr>
<td>USD Coin</td>
<td class="wysiwyg-text-align-right">5 USDC</td>
</tr>
<tr>
<td>Watermelon</td>
<td class="wysiwyg-text-align-right">0.1 MLN</td>
</tr>
<tr>
<td>Waves</td>
<td class="wysiwyg-text-align-right">10 WAVES</td>
</tr>
<tr>
<td>Zcash</td>
<td class="wysiwyg-text-align-right">0.03 ZEC</td>
</tr>
<tr>
<td>Euro</td>
<td class="wysiwyg-text-align-right">10 EUR</td>
</tr>
<tr>
<td>US Dollar</td>
<td class="wysiwyg-text-align-right">10 USD</td>
</tr>
<tr>
<td>Great British Pound</td>
<td class="wysiwyg-text-align-right">10 GBP</td>
</tr>
</tbody>';
}

然后在ccxt / kraken.php文件的fetch_min_order_amounts()函数中定义$ html变量,并调用上述函数:

public function fetch_min_order_amounts() {
$html =  $this->Minimum_Order_Size_Hard_Code();
...

此修复程序当然不是理想的,因为在更新ccxt时,解决方法将自动丢失,但它可以工作。 另外,此修复程序并不代表对代码进行实质性更改,可以轻松地将其添加到以后的任何更新中。

所有7条评论

之前已在此处报告过:

海妖的官方答案:

我们知道CCXT最近遇到的问题,当我们的支持页面的安全性更改阻止通过我们的支持页面检索最小订单量时。 我们的REST API开发人员正在将最小订购量添加到REST API AssetPairs端点,这将使最小订购量更加有效(更可靠)。 我们尚无此更新的预计可用日期,但是我会跟踪进度,并在有更多信息可用时通知您。

同时,您可以通过将fetchMinOrderAmounts选项设置为false来解决此问题。

exchange = ccxt.kraken({
    'enableRateLimit': True,
    'options': {  # ←--------------------- inside 'options' subkey
        'fetchMinOrderAmounts': False,  # ←---------- set to False 
    }
})

这样,您将有效地丢失有关最小限制的信息,但是其他功能将继续起作用。

让我知道这是否不能回答问题。

很抱歉,当您将我的问题标记为“重复”时,我只在“问题”选项卡中搜索了“ Kraken”(问题首页上没有提到Kraken)。

但是,是的,它证实了我的一切想法。 我通过回到我提到的提交之前的版本来修复生产系统。 从长远来看,我将禁用fetchMinOrderAmounts

感谢您的答复以及您对ccxt的广泛参与。
统一100个加密交易所的API并非易事,但您做得非常好。 脱下帽子。

@alextousss thx的反馈,非常感谢! 如有其他疑问,请不要犹豫。 它将使您保持最新状态,并在固定在Kraken侧时通知您。

@alextousss如上述Kroitor的回复所述,可以通过Kraken支持页面//support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-来检索Kraken的最小订单量。

将捕获来自Kraken支持页面的html代码,并将html标签<td class="wysiwyg-text-align-right">分解为一个数组,该数组用于导出最小订单。

我的短期修复(直到Kraken将最小订单量添加到REST API AssetPairs端点)是将html代码直接提供给ccxt / kraken.php文件中的fetch_min_order_amounts()函数。

代替$html = $this->zendeskGet205893708WhatIsTheMinimumOrderSize ();

我使用返回相关文本的函数从支持页面的文本定义了变量$ html。

我只是创建了以下函数,该函数返回了从kraken支持页面复制的相关html代码:

public function Minimum_Order_Size_Hard_Code(){

return '<td><strong>Base currency</strong></td>
<td class="wysiwyg-text-align-right"><strong>Order minimum</strong></td>
</tr>
<tr>
<td>Algorand</td>
<td class="wysiwyg-text-align-right">50 ALGO</td>
</tr>
<tr>
<td>Augur</td>
<td class="wysiwyg-text-align-right">0.3 REP</td>
</tr>
<tr>
<td>Basic Attention Token</td>
<td class="wysiwyg-text-align-right">50 BAT</td>
</tr>
<tr>
<td>Bitcoin</td>
<td class="wysiwyg-text-align-right">0.002 XBT</td>
</tr>
<tr>
<td>Bitcoin Cash</td>
<td class="wysiwyg-text-align-right">0.000002 BCH</td>
</tr>
<tr>
<td>Cardano</td>
<td class="wysiwyg-text-align-right">1 ADA</td>
</tr>
<tr>
<td>Chainlink</td>
<td class="wysiwyg-text-align-right">10 LINK</td>
</tr>
<tr>
<td>Cosmos</td>
<td class="wysiwyg-text-align-right">1 ATOM</td>
</tr>
<tr>
<td>DAI</td>
<td class="wysiwyg-text-align-right">10 DAI</td>
</tr>
<tr>
<td>Dash</td>
<td class="wysiwyg-text-align-right">0.03 DASH</td>
</tr>
<tr>
<td>Dogecoin</td>
<td class="wysiwyg-text-align-right">3000 XDG</td>
</tr>
<tr>
<td>EOS</td>
<td class="wysiwyg-text-align-right">3 EOS</td>
</tr>
<tr>
<td>Ethereum</td>
<td class="wysiwyg-text-align-right">0.02 ETH</td>
</tr>
<tr>
<td>Ethereum Classic</td>
<td class="wysiwyg-text-align-right">0.3 ETC</td>
</tr>
<tr>
<td>Gnosis</td>
<td class="wysiwyg-text-align-right">0.02 GNO</td>
</tr>
<tr>
<td>ICON</td>
<td class="wysiwyg-text-align-right">50 ICX</td>
</tr>
<tr>
<td>Lisk</td>
<td class="wysiwyg-text-align-right">10 LSK</td>
</tr>
<tr>
<td>Litecoin</td>
<td class="wysiwyg-text-align-right">0.1 LTC</td>
</tr>
<tr>
<td>Monero</td>
<td class="wysiwyg-text-align-right">0.1 XMR</td>
</tr>
<tr>
<td>Nano</td>
<td class="wysiwyg-text-align-right">10 NANO</td>
</tr>
<tr>
<td>OmiseGO</td>
<td class="wysiwyg-text-align-right">10 OMG</td>
</tr>
<tr>
<td>PAX Gold</td>
<td class="wysiwyg-text-align-right">0.01 PAXG</td>
</tr>
<tr>
<td>QTUM</td>
<td class="wysiwyg-text-align-right">0.1 QTUM</td>
</tr>
<tr>
<td>Ripple</td>
<td class="wysiwyg-text-align-right">30 XRP</td>
</tr>
<tr>
<td>Siacoin</td>
<td class="wysiwyg-text-align-right">5000 SC</td>
</tr>
<tr>
<td>Stellar Lumens</td>
<td class="wysiwyg-text-align-right">30 XLM</td>
</tr>
<tr>
<td>Tether</td>
<td class="wysiwyg-text-align-right">5 USDT</td>
</tr>
<tr>
<td>Tezos</td>
<td class="wysiwyg-text-align-right">1 XTZ</td>
</tr>
<tr>
<td>Tron</td>
<td class="wysiwyg-text-align-right">500 TRX</td>
</tr>
<tr>
<td>USD Coin</td>
<td class="wysiwyg-text-align-right">5 USDC</td>
</tr>
<tr>
<td>Watermelon</td>
<td class="wysiwyg-text-align-right">0.1 MLN</td>
</tr>
<tr>
<td>Waves</td>
<td class="wysiwyg-text-align-right">10 WAVES</td>
</tr>
<tr>
<td>Zcash</td>
<td class="wysiwyg-text-align-right">0.03 ZEC</td>
</tr>
<tr>
<td>Euro</td>
<td class="wysiwyg-text-align-right">10 EUR</td>
</tr>
<tr>
<td>US Dollar</td>
<td class="wysiwyg-text-align-right">10 USD</td>
</tr>
<tr>
<td>Great British Pound</td>
<td class="wysiwyg-text-align-right">10 GBP</td>
</tr>
</tbody>';
}

然后在ccxt / kraken.php文件的fetch_min_order_amounts()函数中定义$ html变量,并调用上述函数:

public function fetch_min_order_amounts() {
$html =  $this->Minimum_Order_Size_Hard_Code();
...

此修复程序当然不是理想的,因为在更新ccxt时,解决方法将自动丢失,但它可以工作。 另外,此修复程序并不代表对代码进行实质性更改,可以轻松地将其添加到以后的任何更新中。

@ mjoh090是的,当您确实需要该信息时,硬编码限制是解决此问题的方法之一。

从更广泛的角度来看,是否有可能使用“稳定模式”来禁用不依赖于官方和稳定API的那种功能? ccxt是否解析帮助页面以进行其他交换? 如果我没有记错的话,这个问题已经存在于收费中,这让我头疼不已。
如果您建造它,我会睡得更好;-)

@alextousss是的,总的来说,我们试图使所有“非官方”端点成为可选的,但是,派生交易所中可能仍然存在一些怪癖–会尽力清除所有这些。 我已为Kraken(在1.26.20中)将其关闭,因此默认情况下该选项现在false

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

jjhesk picture jjhesk  ·  3评论

shnhrrsn picture shnhrrsn  ·  3评论

hippylover picture hippylover  ·  3评论

Fcl69 picture Fcl69  ·  3评论

slideup-benni picture slideup-benni  ·  3评论