ccxt / ccxt

A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges
https://docs.ccxt.com
MIT License
32.52k stars 7.47k forks source link

Coins which differ from coinmarketcap.com #1853

Closed Codewyvern closed 6 years ago

Codewyvern commented 6 years ago

I noticed there are quite a few coins that differ from coinmarketcap, I was using cmc to get more info about each coin like the change in 3 different timeframes. But I came across 4 coins that have different symbols on the exchange compared to the cmc ones.

An example of binance: IOTA -> MIOTA NANO -> XRB BQX -> ??? YOYO -> YOYOW

Those are the only ones on binance it seems, but I only tested binance so far. How do you propose to handle this type of thing? I remember the ccxt manual mentioning it does some auto conversions somewhere, but clearly this issue persists and will continue to persist as new coins are added.

An idea would be to write a script which crawls every single exchange and tries to find each coin on coinmarketcap, if it doesn't find it then add it to a list for conversion and a human manually updates this file? Thats the best I can think of right now.

kroitor commented 6 years ago

Hi!

Thx for reporting! I will fix the conflicts/inconsistencies shortly and will update you here.

How do you propose to handle this type of thing?

The policy on symbol collisions is described here:

An idea would be to write a script which crawls every single exchange and tries to find each coin on coinmarketcap, if it doesn't find it then add it to a list for conversion and a human manually updates this file?

Yep, something like that will do the job, we are adding a tool for that to our tests as well. Thx for sharing your thoughts!

kroitor commented 6 years ago

Here's what we have:

IOTA vs MIOTA

Currencies: (test @ search-all-exchanges.js:92)

id     code   exchange       name  active  status  fee
------------------------------------------------------
IOTA   IOTA   binance
IOT    IOTA   bitfinex
tIOTA  IOTA   bitfinex2
MIOTA  MIOTA  coinmarketcap  IOTA  true    ok
IOTA   IOTA   gateio
IOTA   IOTA   okex

Don't know if we should change the coinmarketcap code here, or all other exchanges, as most of them use IOTA instead of MIOTA.

NANO vs XRB

id     code   exchange       name       active  status  fee
-----------------------------------------------------------
NANO   NANO   binance
NANOX  NANOX  coinmarketcap  Project-X  true    ok
NANO   NANO   okex
NANOX  NANOX  yobi
id   code  exchange       name  active  status  fee
----------------------------------------------------
XRB  XRB   bitz
XRB  XRB   coinmarketcap  Nano  true    ok
XRB  XRB   kucoin         Nano  true    ok      0.05

Will rename to XRB, where appropriate.

YOYO vs YOYOW

id     code   exchange       name   active  status  fee  type    payin  payout  transfer
----------------------------------------------------------------------------------------
YOYO   YOYO   binance
YOYOW  YOYOW  coinmarketcap  YOYOW  true    ok
YOYOW  YOYOW  hitbtc
YOYOW  YOYOW  hitbtc2        Yoyow  true    ok           crypto  true   true    true
YOYO   YOYO   okex

Will check if those are all Waves-tokens and will most likely rename to YOYOW.

BQX

Stands for Bitquence, not listed on coinmarketcap yet. Will probably leave it as is.

https://support.binance.com/hc/en-us/articles/115001659531--Binance-Lists-BQX

Codewyvern commented 6 years ago

Thanks for following up on this, this is just for binance or is this all the coins with problems? Yeah its a bit confusing what symbol to use, coinmarketcap is the number one coin tracker site, but if all exchanges use another common symbol then the coinmarketcap data is wrong. The only reason I am using coinmarketcap is because it has so much extra data compared to ccxt. For example I want to know hourly change% and total market cap in usd, so I am trying to combine both cmc data with the ccxt data in my scripts, sadly coinmarketcap doesn't even have all the coins on it so that's another pain to deal with.

Surf-N-Code commented 6 years ago

Sorry to dig this up.

BQC is now ETHOS. Can we put this into this as well? $this->commonCurrencies = array ( 'XBT' => 'BTC', 'BCC' => 'BCH', 'DRK' => 'DASH' );

kroitor commented 6 years ago

@Surf-N-Code i'll take a look into it shortly.