
Comment nous le faisions avant et comment nous le faisons maintenant !
Mercredi dernier, nous sommes passés de l'ancien système de calcul des prix au tout nouveau système. Les résultats ont été visibles immédiatement. Mais seulement pour un petit nombre de personnes. Nous nous sommes alors demandé comment un utilisateur moyen pouvait être au courant d'une telle mise à jour. C'est alors que nous nous sommes assis et avons décidé de partager notre savoir-faire.
Au début, nous expliquerons le processus de calcul qui était utilisé auparavant :
1. De chaque échange qui est listé sur coinpaprika, nous avons récupéré les marchés à partir de leur API. Chaque marché doit contenir 3 choses :
Nom du marché, Prix avec l'unité donnée et le volume sur 24h. Voici un exemple sur lequel nous allons travailler :

2. Pour chaque marché récupéré, nous avons calculé à la fois le prix et le volume en BTC et en USD. Pour ce calcul, nous avons utilisé prix calculé précédemment sur coinpaprika (à partir de l'itération précédente de l'algorithme). Pour simplifier, nous nous concentrerons uniquement sur le calcul de l'USD.
Le prix précédent de l'USDT pour l'USD était de 1,01.

3. Pour chaque marché donné, nous calculions également le prix de la deuxième devise de la paire.
Le prix précédent du LTC en USD était de 44,00.

4. De cette façon, nous avons déjà une liste complète du marché pour une pièce donnée, voici un exemple :
Pour les marchés de l'écran ci-dessus, le prix pour LTC/BTC a été calculé comme dans l'étape #2 et XRP/LTC comme dans l'étape #3 (Ici LTC est la deuxième devise de notre paire).
5. Après avoir eu un grand nombre de marchés avec des prix en USD, il est assez facile de calculer le prix global. Il s'agit de la moyenne pondérée de tous les marchés ayant un volume donné. De ce calcul, on exclut les valeurs aberrantes ou les marchés sans frais et sans transaction. exploitation minière. Le prix final est affiché sur la page principale et peut être utilisé pour la prochaine itération de l'algorithme.

Alors où était le problème ?
Il n'y en avait pas pour 98% de l'époque. Mais ils ont commencé à apparaître lorsque les mouvements sur le marché ont été plus volatils. Nous avons constaté à plusieurs reprises que le prix des BTC était différent de celui des autres sites de cotation. Par exemple, lors de chutes massives sur le marché, notre prix BTC/USD était plus élevé que sur le marché lui-même ou sur les plateformes des concurrents.
Quelle était l'origine du problème ?
Comme il est décrit dans les étapes #2 et #3, le prix ne dépend pas seulement de la situation actuelle sur le marché mais aussi du prix de la dernière itération de l'algorithme.
"Le prix précédent de USDT à USD était 1.01"
"Le prix précédent de LTC en USD était de 44.00"
Cet algorithme, pour calculer le prix actuel, devait connaître le prix de l'itération précédente, et ce prix était également calculé en corrélation avec l'itération précédente, etc... Cela entraînait une réaction lente de nos prix affichés aux mouvements volatils du marché.
Qu'est-ce qui a été modifié ?
Notre tentative de limiter ces dépendances a consisté à déterminer de nouveaux taux de conversion (prix de référence) des monnaies, dont ne tiennent compte que de l'état actuel de l'ensemble du marché.
Comment avons-nous réussi à le faire ?
Nous avons dû ramener le prix de chaque marché à l'unité commune, puis établir une moyenne pondérée - de cette façon, nous obtiendrons un taux de conversion qui couvre tous les marchés. Sur le site web, nous utilisons principalement des prix en USD et en BTC, nous allons donc convertir les prix dans ces unités. Il s'agit d'un processus en plusieurs étapes, dans lequel, à l'état initial, nous ne savons pas combien coûte une unité d'une devise donnée. Nous fixons un point de référence, qui est le bitcoin pour nous (les marchés BTC pour la plupart des devises sont généralement les plus liquides), pour lequel dans l'état initial nous calculons le prix en USD comme le prix moyen pondéré de tous les marchés BTC / USD. Ensuite, nous pouvons commencer à convertir chaque marché en prix BTC et USD :
1. Dans un premier temps, nous calculons les prix moyens des devises en utilisant uniquement les marchés BTC et FIAT (en les convertissant d'abord en USD au taux de change de https://openexchangerates.org/ et ensuite en BTC au taux de change moyen des marchés BTC / USD) - nous recevons ainsi des informations sur le coût moyen des BTC pour chaque devise.
2. Nous savons également maintenant combien l'USD coûte à chaque devise, car nous connaissons le convertisseur BTC / USD.
3. Certaines crypto-monnaies n'ont pas de marchés de BTC ou les marchés de BTC sont minoritaires par rapport au volume total, ce qui rend la moyenne calculée inexacte.
4. Dans l'étape suivante, nous utilisons donc tous les taux de conversion calculés précédemment pour calculer les nouveaux prix des crypto-monnaies en BTC et en USD. En répétant ces étapes plusieurs fois, nous avons des données calculées à partir de tous les marchés simultanément.
En utilisant cette méthode, le prix actuel dépend de ces quelques itérations de rapprochement des prix du marché en BTC et en USD plutôt que de toute la chaîne de prix historique.
Que pensez-vous de cette fonctionnalité ?
Consultez-le maintenant sur Coinpaprika et faites-nous le savoir !
N'oubliez pas de nous suivre sur :
Twitter : twitter.com/coinpaprika
Facebook : facebook.com/coinpaprika
Télégramme : t.me/coinpaprika