Trading bot de crypto-monnaies

27 février 2018 · 5 min de lecture

cryptocurrency

Vous l’avez remarqué, le cours des monnaies virtuelles ressemble à des montagnes russes. En effet, le prix est fixé uniquement sur l’offre et la demande. Pour en tirer profit, il y a deux possibilités : conserver la monnaie d’un projet auquel on croit sur le long terme, ou en tradant. Dans ce cas, il est possible d’automatiser certaines tâches d’achat/vente.

Avertissement

  • je ne suis pas expert en trading, je découvre le sujet par pure curiosité intellectuelle
  • je n’incite personne à investir dans les cryptomonnaies. C’est très volatile, non régulé et donc risqué
  • rien ne garantit que vous en sortirez gagnant
  • n’investissez que ce que vous pouvez perdre
  • le meilleur (ou le pire) pour la fin : si vous retirez vos gains, l’état prendra une grosse part de votre gâteau, jusqu’à 45% ! (1)

Le principe du trading

Le but est clairement de gagner de l’argent en surfant sur la vague du cours, quelle que soit la cryto-monnaie.

Le principe est simple, il faut : “Acheter bas, vendre haut”.

Il faut prendre en considération :

  • la commission du site d’échange.
  • c’est une activité à plein temps, de surveillance et d’analyse des cours, à moins de coder un “bot”.

Cas concret : prenons la courbe suivante qui décrit le cours d’une cryptomonnaie. Le temps est en abscisse et le prix en ordonnée.

xrp01
  1. vous achetez 100 unités à 0,766€, soit un investissement de 76,60€.
  2. vous vendez à 0,776€, vous obtenez : 100 x 0,776 = 77,60€
  3. vous rachetez à 0,746€ : 77,60 / 0,746, vous obtenez 104,02 unités
  4. vous vendez à 0,787€ : 104,02 x 0,787€ = 81,86€

Conclusion : vous avez fructifié 76,60€ en 81,86€.

Mais il y a un problème : dans cet exemple, nous connaissions à l’avance les points hauts et bas de la courbe. Nous avons travaillé à postériori. Hors, dans la “vraie vie”, on ne sait pas à l’avance si on a atteint le sommet ou le point le plus bas. Vous pourrez faire toutes les analyses de courbes possibles - et c’est toute une science - mais je n’y crois pas. C’est pour moi similaire à l’analyse prédictive ou la météo : des statisques, des probabilités, ou une intelligence artificielle ne prédiront jamais l’avenir.

Il faut donc vendre et acheter selon un pourcentage de hausse ou de baisse prédéfini. Et cette tâche peut être automatisée.

Un trading bot

Cas concret : reprenons la courbe précédente. Voici comment pourrait se comporter un bot de trading.

xrp02
  1. vous achetez 100 unités à 0,766€, soit un investissement de 76,60€. Vous lancez le bot (mais pas trop loin).
  2. le bot détecte une hausse du prix de 0,6% (définie arbitrairement), il vend : 0,771 x 100 = 77,10€
  3. le bot détecte une chute inférieure à -0,6%, il rachète : 77,10 / 0,765 = 100,78 unités
  4. le bot détecte une hausse du prix de 0,6%, il vend : 0,768 x 100,78 = 77,39€
  5. le bot détecte une chute supérieure à -0,6%, il rachète : 77,39 / 0,763 = 101,42 unités

Et ainsi de suite. Vous l’avez remarqué, les bénéfices sont minimes. Donc vous pouvez soit augmenter l’investissement, soit jouer sur les pourcentages qui déclenchent les achats/ventes.

Dans ce cas, notez que :

  • après une vente (à un point haut), le cours peut continuer de monter et ne jamais redescendre. On ne peut donc plus acheter moins cher. Il faudra alors réinvestir manuellement, par exemple dans une autre monnaie.
  • de la même façon, après un achat (à un point bas), le cours peut chuter sans cesse, il faudra alors être patient…

Un peu de code

Les sites d’échanges fournissent des API pour passer des ordres. Voici un exemple de code commenté en python, pour la plateforme Kraken. Il vous faudra créer un compte sur ce site pour obtenir une clé API. Celle-ci fera le lien avec votre compte.

# KRAKEN

# installation : sudo pip3 install krakenex
import krakenex

# récupérez vos clés API dans les paramètres du compte
kraken = krakenex.API(key='***', secret='***')

# récupération des soldes de vos comptes
json = kraken.query_private(method='Balance')
print(json['result']['ZEUR']) # affiche vos euros
print(json['result']['XXBT']) # affiche vos bitcoins
print(json['result']['XXRP']) # affiche vos ripples

# récupérer le prix d'achat du bitcoin (bid)
symbol = 'XXBT' # XXRP pour ripple, XLTC pour litecoin...
json = kraken.query_public('Ticker', 'pair='+symbol+'ZEUR')
print(json['result'][symbol+'ZEUR']['b'][0])

# acheter 0.01333088 bitcoin à 8365.1 euros
json = kraken.query_private('AddOrder', {'pair':'XBTZEUR', 'type':'buy', 'ordertype':'limit', 'volume':0.01333088, 'price':8365.1})
# affiche : {'txid': ['XXXXX-YYYYY-ZZZZZ'], 'descr': {'order': 'buy 0.01333088 XBTEUR @ limit 8365.1'}}
print(json['result'])

# vendre 0.01333088 bitcoin en euros
json = kraken.query_private('AddOrder', {'pair':'XBTZEUR', 'type':'sell', 'ordertype':'limit', 'volume':0.01333088, 'price':8445.0})
# affiche : {'txid': ['XXXXX-YYYYY-ZZZZZ'], 'descr': {'order': 'sell 0.01333088 XBTEUR @ limit 8445.0'}}
print(json['result'])

Conclusion

Vous savez maintenant pourquoi le cours des crypto-monnaies est si fluctuant : des milliers de bots achètent et vendent sans cesse, et comme le prix est basé uniquement sur l’offre et la demande, c’est le yoyo.

De plus, comme pour la bourse, des évènements extérieurs peuvent influencer les cours : annonce d’un partenariat, annonce d’une avancée technique, annonce du piratage d’un site d’échange…

Coder un bot de trading, c’est fun, mais ne comptez pas vous enrichir avec.

Le trading ne se limite pas à “acheter bas, vendre haut” mais ça, ce n’est pas mon rayon.

Références

(1) Imposition des cybermonnaies : une réponse de l’administration fiscale

PARTAGER

A LIRE EGALEMENT