Récupérer le prix d’une crypto sur Binance en PowerShell

Binance API

Intro

Il y a quelques semaines je me suis replongé dans le merveilleux monde des cryptos ! vous savez ce monde ou les milliardaires peuvent devenir millionnaire en seulement quelques jours comme dirait CM ^^

Et en tant qu’admin Windows à la pointe (oui oui!) je suis souvent sur PowerShell. Du coup un gros problème se pose ! Comment suivre l’état de mon wallet Binance tout en travaillant dans mon terminal ?

Et bien la réponse en un mot : API !

Binance dispose d’une API REST et ça c’est merveilleux car bien évidement on peut s’y connecter très facilement avec PowerShell et les possibilités offertes par l’exchange sont nombreuses !

Dans ce premier article on va utiliser l’API publique. C’est à dire, nul besoin de compte/clé/secret, tout le monde peut interroger le endpoint public pour par exemple récupérer le prix d’une paire comme BTC/EUR.

après une lecture rapide de la documentation, je pose mon cahier des charges :

  • Récupérer le prix d’une paire
  • Récupérer les infos de mon compte avec la liste des assets (quantité/prix/valeur)
  • Passer un ordre d’achat ou de vente en mode LIMIT ou MARKET

Bon, en bonne habitude (ou pas) je commence par chercher si quelqu’un à déjà fait ça ^^ et il se trouve que… OUI. Je vous laisse lire le très bon travail de Yann ICI

Forcement je teste ce qu’il a fait et il y a quand même quelques problèmes en PowerShell 7 je précise ;). Je décide donc de prendre sont taf comme base pour mon projet de module, car oui j’ai pas précisé mais le but final est de sortir un module PowerShell 7 pour le mettre dispo sur la PSGallery 🙂

On commence quand ?

Pour commencer on utilise la commande native de PowerShell qui récupère tous les prix :

Invoke-RestMethod -Uri https://api.binance.com/api/v3/ticker/price -Method get

Ensuite on peut cibler une paire en particulier :

Invoke-RestMethod -Uri "https://api.binance.com/api/v3/ticker/price?symbol=BTCEUR" -Method get

Et puis en reprenant le travail de Yann ^^, on supprime la conversion JSON qui ne sert à rien… et on fait une petite fonction :

<#
.SYNOPSIS
Retourne le prix d'une paire ou des toutes les paires

.PARAMETER Symbol
Indique le prix d'une paire précise
        
.PARAMETER Decimal
Le nombre de décimale dans le prix retourné

.EXAMPLE
.\Get-Price.ps1 -Symbol BTCEUR

.EXAMPLE
$Liste = .\Get-Price.ps1
$Liste | Where-Object Symbol -Like "BTC*"

.EXAMPLE
.\Get-Price.ps1 -Symbol BTTUSDT -Decimal 5
#>

[cmdletbinding()]
param(
    [Parameter(Mandatory = $false)] 
    [string]$Symbol,

    [Parameter(Mandatory = $false)]
    [ValidateSet(0, 1, 2, 3, 4, 5, 6, 7, 8)]
    [string]$Decimal = 3
)

BEGIN {
    if ($PSBoundParameters.ContainsKey('Symbol')) {
        $URL = "https://api.binance.com/api/v3/ticker/price?symbol=" + $Symbol
    }
    else {
        $URL = "https://api.binance.com/api/v3/ticker/price"
    }
}
    
PROCESS {
    $Ticker = Invoke-RestMethod -Uri $URL -Method get
}

END {
    if ($PSBoundParameters.ContainsKey('Symbol')) {
        return [math]::Round($Ticker.Price, $Decimal)
    }
    else {
        return $Ticker
    }
}

Ce qui donne :

Voilà 🙂 vous pouvez maintenant check le prix de la crypto que vous suivez entre deux PSSession ^^

Et la suite ?

La prochaine fois, on rentre dans le vrai !

On récupère une clé/secret depuis notre compte et on visualise en temps réél le solde et le nombre de cryptos que nous avons dans notre wallet et dans le terminal bien sur ^^

Zalman VE500

Voila un outil indispensable que tout technicien doit avoir avec lui, c’est ce boitier qui contient un HDD/SSD et avec le quel on va pouvoir tout simplement booter sur l’image disque que l’on souhaite (ISO, IMG). d’autres options sont aussi présentes comme la sélection du mode HDD, VCD ou les deux ainsi que le cryptage du disque et le verrouillage en écriture.

On en parle sur le blog !

Vous aimerez aussi...

Laisser un commentaire

%d blogueurs aiment cette page :