์๋ ํ์ธ์,
ํฌ๋ผ์ผ ํตํฉ์ด ์
๋ฐ์ดํธ ์ดํ ๋๋ฅผ ์ํด ๊นจ์ง ๊ฒ ๊ฐ๋ค : https://github.com/ccxt/ccxt/commit/89ee033e90c10b500c098ce3ed5a440c39c33dad#diff -5e85c8f10126d08bcbd8c3138002c7c0
์ปค๋ฐ์์ "fetchMinLimitOrder"๊ฐ true๋ก ์ค์ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ Kraken์๋ ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ก์ธ์คํ๊ธฐ ์ํด ์น ์ฌ์ดํธ์์ ๋ณด์ ๋ฌธ์๋ฅผ ์
๋ ฅํด์ผํ๋ ๋ณดํธ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค. ์ด ๋ณดํธ๊ฐ ํ์ฑํ๋๋ฉด Kraken์ ์์ฅ์๋ก๋ํ์ง ๋ชปํฉ๋๋ค.
๋ด ์๊ฐ์ด ํ๋ ธ๋ ์ง, ๊ทธ๋ฆฌ๊ณ ์์ ์ด ๊ฐ๋ฅํ์ง ์๋ ค์ฃผ์ธ์.
๊ฐ์ฌํฉ๋๋ค,
์๋ ์ค
์ด๊ฒ์ ์ด์ ์๋ณด๊ณ ๋์์ต๋๋ค.
Kraken์ ๊ณต์ ๋ต๋ณ :
์ฐ๋ฆฌ๋ ์ง์ ํ์ด์ง์ ๋ณด์ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ง์ ํ์ด์ง๋ฅผ ํตํด ์ต์ ์ฃผ๋ฌธ ํฌ๊ธฐ๋ฅผ ๊ฒ์ ํ ์ ์์์ ๋ 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์ ์ต์ ์ฃผ๋ฌธ ํฌ๊ธฐ๋ 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 ๋ค, ์ ํ์ ํ๋ ์ฝ๋ฉํ๋ ๊ฒ์ ์ ๋ณด๊ฐ ์ ๋ง๋ก ํ์ํ ๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ ๋๋ค.
๋ ๋์ ๊ด์ ์์ ๋ณผ ๋ ๊ณต์์ ์ด๊ณ ์์ ์ ์ธ 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๊ฐ ์ ๋ฐ์ดํธ๋๋ฉด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋์ผ๋ก ์์ค๋์ง๋ง ์๋ํ๋ฏ๋ก์ด ์์ ์ ๋ฌผ๋ก ์ด์์ ์ด์ง๋ ์์ต๋๋ค. ๋ํ์ด ์์ ์ฌํญ์ ์ฝ๋์ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ๋ด์ง ์์ผ๋ฉฐ ํฅํ ์ ๋ฐ์ดํธ์ ์ฝ๊ฒ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.