Powershell: Script para comprobar precio Criptomonedas API Binance
Hoy vamos a usar Powershell para hablar de un tema controvertido, pero que como informáticos nos salpica de alguna u otra manera. No es otro que las criptomonedas.
La idea del artículo, es automatizar el proceso de revisión de las variaciones de una moneda, que son volátiles, para tener alertas personalizadas.
Para hacer todo esto, primero vamos a intentar explicar a grandes rasgos qué es una criptomoneda y por qué hay tanta revolución en todos los sectores sobre este “invento”.
¿Qué es una criptomoneda?
A grandes rasgos, podíamos hablar de criptomoneda, como una moneda digital, que nació para ser descentralizada (ni la emite ni la controla un país o una entidad bancaria). Sólo existe en Internet, y se almacena bajo monederos digitales. La seguridad de estas monedas digitales, reside en los algoritmos de seguridad que se utilizan para sus transacciones.
En la teoría, podrías usar una criptomoneda, para realizar tus pagos, en lugar del dinero tradicional.
La realidad, es que, ahora mismo es un sistema de especulación, donde la mayoría de financieros del mundo no quieren acercarse. Probablemente, por desconocimiento, incertidumbre y por ser un sistema en constante variación. Os pongo un ejemplo, el amigo Elon Musk mañana pone un “Twit” sobre una de estas criptomonedas, y el valor puede multiplicarse por 1000 de la noche a la mañana. Y a la semana volver a caer estrepitosamente.
¿Quién mide cuánto vale en dinero real una criptomoneda? Los propios inversores o usuarios, son los que colocando su dinero “real” al comprarla, hacen que el valor suba o no. No sé a vosotros, pero a mí me suena esto a las empresas de I+D, que igual no tienen nada en el mercado, pero hay inversores que ven el potencial e invierten en ellas. Luego igual no se llega a nada, pero el dinero invertido está ahí…
Sinceramente, esto parece como ir al bingo, colocas tu dinero, y salvo que lo recojas antes de calentarte para no perder todo, nunca sabes si va a arruinarte o vas a salir millonario. Pero esto, a una persona como yo, que no tiene las bases económicas para contratar ciertos productos bancarios, no me parece tan diferente como el resto de inversiones del mercado. Al menos aquí, te hablan de algoritmos y digitalización, esto me parece más familiar…
Para los que invertís a corto plazo, aunque seguro que existen apps, vamos a intentar tener un script de Powershell que nos facilite los datos de las criptomonedas cuando a nosotros nos interese.
Configurar API Binance
La mayor plataforma de intercambio de criptomonedas, actualmente, es Binance. Y dispone de una API que podemos utilizar para estos menesteres. Os dejo el enlace donde os explica como configurar la API desde vuestra cuenta personal, aunque yo utilizaré la API pública:
https://www.binance.com/es-LA/support/faq/360002502072
Y la documentación de la misma:
https://binance-docs.github.io/apidocs/spot/en/#general-info
Comandos básicos Powershell para consultar precio criptomonedas
Si queremos usar comandos básicos, directos, podemos extraer el precio de todas las criptomonedas con el siguiente comando:
1 |
Invoke-RestMethod -Uri https://api.binance.com/api/v3/ticker/price -Method get |
Si queréis saber el valor concreto en EUROS de una moneda, podéis hacerlo con el siguiente comando (Ejemplo: BITCOIN):
1 2 3 4 5 6 |
PS /Users/elblogdenegu> Invoke-RestMethod -Uri "https://api.binance.com/api/v3/ticker/price?symbol=BTCEUR" -Method get symbol price ------ ----- BTCEUR 48923.00000000 |
Os pongo otro ejemplo con ADA:
1 2 3 4 5 6 |
PS /Users/elblogdenegu> Invoke-RestMethod -Uri "https://api.binance.com/api/v3/ticker/price?symbol=ADAEUR" -Method get symbol price ------ ----- ADAEUR 1.93700000 |
Si queréis sólo el valor a euros sin cabeceras:
1 2 3 |
PS /Users/elblogdenegu> Invoke-RestMethod -Uri "https://api.binance.com/api/v3/ticker/price?symbol=ADAEUR" -Method get | Select-Object -ExpandProperty price 1.93200000 |
Script revisión criptomoneda en Powershell
A continuación os dejo un script de Powershell que os ayudará con:
- Log de toda la comprobación
- CSV con hora/fecha y datos del valor con respecto al EURO
- Podéis hacer que os mande un EMAIL con cierto valor
- O que si lo programáis en Windows, genere un Popup en vuestra sesión con los cambios pertinentes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
############################### ## RAUL UNZUE - ELBLOGDENEGU ## PRECIO CRIPTOMONEDA ############################## $Moneda = "ADA" ## LOG $Logfile = "/Users/elblogdenegu/Documents/criptomonedas.log" Start-Transcript -Path $Logfile -Append # FECHA Y HORA $date = Get-Date -Format "dd-MM-yyyy" $hora = Get-Date -Format "HH:mm:ss" # PRECIO EN EUROS DE ADA $ADA=Invoke-RestMethod -Uri "https://api.binance.com/api/v3/ticker/price?symbol=ADAEUR" -Method get | Select-Object -ExpandProperty price # COMPROBAR VALOR if ($ADA -ge 1) { echo "ADA a las $hora del día $date, vale $ADA €, que es mayor que 1 euro" # ENVIO CORREO DE INFO $emailSmtpServer = "smtp.servidor.com" $emailSmtpServerPort = "587" $emailSmtpUser = "email@dominio.com" $emailSmtpPass = "Introducir-Contraseña" $emailFrom = "email@dominio.com" $emailTo = "emaildestino@dominio.com" $emailcc="emaildestino2@dominio.com" $emailMessage = New-Object System.Net.Mail.MailMessage( $emailFrom , $emailTo ) $emailMessage.cc.add($emailcc) $emailMessage.Subject = "PRECIO DE ADA" $emailMessage.IsBodyHtml = $true #true or false depends $emailMessage.Body = "<h2>¡ADA tiene un valor mayor a 100€!</h2>" $emailMessage.Body += "El precio actual de ADA es de <FONT SIZE=6><strong>$ADA euros</strong></font>" $emailMessage.Body += "<p>Volveremos a comprobarlo nuevamente cada hora</p>" $SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort ) $SMTPClient.EnableSsl = $False $SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass ); $SMTPClient.Send( $emailMessage ) } else { echo "ADA a las $hora del día $date, vale $ADA €, que es menor que 1 euro" } # EXPORTAMOS A EXCEL $Output = New-Object -TypeName PSObject -Property @{ Moneda = $Moneda Precio = $ADA Hora = $hora Fecha = $date } | Select-Object Moneda,Precio,Hora,Fecha $Output | Export-Csv -NoTypeInformation -Path "/Users/elblogdenegu/Documents/criptomonedas-ADA.csv" -Append # POPUP EN SESION WINDOWS #if ($ADA -le 2) { #wlrmdr -s 25 -f 2 -t PRECIO ADA -m Atencion! El precio de ADA está muy bajo. ¡Deberías comprar! #} Stop-Transcript |
Programarlo en una tarea Windows, cada X minutos o horas, y luego podréis utilizar los datos para hacer estadísticas con el CSV que se genera:
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?