これは以前にここで報告されています:
クラーケンの公式回答:
サポートページのセキュリティ変更により、サポートページから最小注文サイズを取得できなくなったときにCCXTで発生した最近の問題を認識しています。 私たちのRESTAPI開発者は、最小注文サイズを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を統合するのは簡単な作業ではありませんが、あなたはそれを素晴らしく行いました。 脱帽。
フィードバックのための@alextousssthx 、本当に感謝します! ご不明な点がございましたら、お気軽にお問い合わせください。 最新の状態に保ち、Kraken側で修正されたときに通知します。
@alextousss上記のKroitorの応答に示されているように、Krakenの最小注文サイズはKrakenサポートページ( https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-)から取得され
Krakenサポートページのhtmlコードがキャプチャされ、htmlタグ<td class="wysiwyg-text-align-right">
が、最小次数を導出するために使用される配列に展開されます。
私の短期的な修正(KrakenがREST API AssetPairsエンドポイントに最小注文サイズを追加するまで)は、ccxt / kraken.phpファイルのfetch_min_order_amounts()関数にhtmlコードを直接提供することでした。
$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はい、制限をハードコーディングすることは、本当にその情報が必要な場合に、この問題を回避する方法の1つです。
より広い観点から、公式で安定したAPIに依存しないその種の機能を無効にする「安定モード」を持つことは可能でしょうか? ccxtは他の取引所のヘルプページを解析していますか? 私がよく覚えていて、私に大きな頭痛を引き起こしたならば、この問題はすでに有料で存在していました。
あなたがそれを造れば、私はより良い睡眠をとるでしょう;-)
@alextousssはい、一般的に、すべての「非公式」エンドポイントをオプションにしようとしていますが、派生した交換にまだいくつかの癖が残っている可能性があります-すべてをクリーンアップするために最善を尽くします。 Kraken(1.26.20)ではオフにしたので、オプションはデフォルトでfalse
ました。
最も参考になるコメント
@alextousss上記のKroitorの応答に示されているように、Krakenの最小注文サイズはKrakenサポートページ( https://support.kraken.com/hc/en-us/articles/205893708-What-is-the-minimum-)から取得され
Krakenサポートページのhtmlコードがキャプチャされ、htmlタグ
<td class="wysiwyg-text-align-right">
が、最小次数を導出するために使用される配列に展開されます。私の短期的な修正(KrakenがREST API AssetPairsエンドポイントに最小注文サイズを追加するまで)は、ccxt / kraken.phpファイルのfetch_min_order_amounts()関数にhtmlコードを直接提供することでした。
$html = $this->zendeskGet205893708WhatIsTheMinimumOrderSize ();
代わりに関連するテキストを返す関数を使用して、サポートページのテキストで変数$ htmlを定義しました。
krakenサポートページからコピーされた関連するhtmlコードを返す次の関数を作成しただけです。
次に、上記の関数を呼び出して、ccxt / kraken.phpファイルのfetch_min_order_amounts()関数で$ html変数を定義します。
もちろん、この修正は理想的ではありません。ccxtが更新されると回避策が自動的に失われるためですが、機能します。 また、この修正はコードの重要な変更を表すものではなく、将来の更新に簡単に追加できます。