Nuevos Get USDT-EUR usando precio medio
This commit is contained in:
@ -1,30 +1,34 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# === Configuración ===
|
# === CONFIGURACIÓN ===
|
||||||
COIN_ID="tether"
|
COIN_ID="tether"
|
||||||
VS_CURRENCY="eur"
|
VS_CURRENCY="eur"
|
||||||
OUTPUT="usdt-eur-2025.csv"
|
OUTPUT="usdt-eur-2025.csv"
|
||||||
|
|
||||||
# Timestamps: 2025-01-01 00:00:00 a 2026-01-01 00:00:00 (en segundos UTC)
|
# Timestamps UNIX para 2025-01-01 → 2026-01-01
|
||||||
FROM_TIMESTAMP=$(date -j -f "%Y-%m-%d" "2025-01-01" +"%s") # macOS
|
FROM_TIMESTAMP=$(date -j -f "%Y-%m-%d" "2025-01-01" +"%s")
|
||||||
TO_TIMESTAMP=$(date -j -f "%Y-%m-%d" "2026-01-01" +"%s")
|
TO_TIMESTAMP=$(date -j -f "%Y-%m-%d" "2026-01-01" +"%s")
|
||||||
|
|
||||||
# === Llamada API CoinGecko ===
|
# === Llamada API ===
|
||||||
URL="https://api.coingecko.com/api/v3/coins/$COIN_ID/market_chart/range?vs_currency=$VS_CURRENCY&from=$FROM_TIMESTAMP&to=$TO_TIMESTAMP"
|
URL="https://api.coingecko.com/api/v3/coins/$COIN_ID/market_chart/range?vs_currency=$VS_CURRENCY&from=$FROM_TIMESTAMP&to=$TO_TIMESTAMP"
|
||||||
|
echo "📡 Llamando a CoinGecko..."
|
||||||
echo "📡 Consultando CoinGecko..."
|
|
||||||
RESPONSE=$(curl -s "$URL")
|
RESPONSE=$(curl -s "$URL")
|
||||||
|
|
||||||
# === Procesar respuesta ===
|
# === CSV: cabecera ===
|
||||||
echo "date,usdt_eur" > "$OUTPUT"
|
echo "date_utc,date_gmt1,usdt_eur" > "$OUTPUT"
|
||||||
|
|
||||||
|
# === Procesar respuesta JSON ===
|
||||||
echo "$RESPONSE" | jq -c '.prices[]' | while read -r entry; do
|
echo "$RESPONSE" | jq -c '.prices[]' | while read -r entry; do
|
||||||
ts=$(echo "$entry" | jq '.[0]')
|
ts_ms=$(echo "$entry" | jq '.[0]')
|
||||||
price=$(echo "$entry" | jq '.[1]')
|
price=$(echo "$entry" | jq '.[1]')
|
||||||
|
|
||||||
# Convertir timestamp ms → fecha UTC
|
# UTC (timestamp → fecha UTC)
|
||||||
date=$(date -j -u -r "$((ts/1000))" +"%Y-%m-%d")
|
date_utc=$(date -u -r "$((ts_ms/1000))" "+%Y-%m-%d %H:%M:%S")
|
||||||
echo "$date,$price"
|
|
||||||
|
# GMT+1
|
||||||
|
date_gmt1=$(TZ=Europe/Madrid date -r "$((ts_ms/1000))" "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
echo "$date_utc,$date_gmt1,$price"
|
||||||
done | sort | uniq -f0 >> "$OUTPUT"
|
done | sort | uniq -f0 >> "$OUTPUT"
|
||||||
|
|
||||||
echo "✅ Guardado en $OUTPUT"
|
echo "✅ Exportado como $OUTPUT"
|
||||||
|
|||||||
@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import requests
|
|
||||||
import pandas as pd
|
|
||||||
from datetime import datetime
|
|
||||||
import time
|
|
||||||
|
|
||||||
# === Configuración ===
|
|
||||||
coin = "tether"
|
|
||||||
vs_currency = "eur"
|
|
||||||
start_date = datetime(2025, 1, 1)
|
|
||||||
end_date = datetime(2026, 1, 1)
|
|
||||||
|
|
||||||
# === Convertir a timestamps UNIX en segundos ===
|
|
||||||
from_ts = int(start_date.timestamp())
|
|
||||||
to_ts = int(end_date.timestamp())
|
|
||||||
|
|
||||||
# === URL de CoinGecko ===
|
|
||||||
url = f"https://api.coingecko.com/api/v3/coins/{coin}/market_chart/range"
|
|
||||||
params = {
|
|
||||||
"vs_currency": vs_currency,
|
|
||||||
"from": from_ts,
|
|
||||||
"to": to_ts
|
|
||||||
}
|
|
||||||
|
|
||||||
print("📡 Solicitando datos a CoinGecko...")
|
|
||||||
response = requests.get(url, params=params)
|
|
||||||
if response.status_code != 200:
|
|
||||||
print("❌ Error en la solicitud:", response.status_code)
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
data = response.json()
|
|
||||||
prices = data.get("prices", [])
|
|
||||||
|
|
||||||
# === Convertir a DataFrame ===
|
|
||||||
df = pd.DataFrame(prices, columns=["timestamp_ms", "usdt_eur"])
|
|
||||||
df["timestamp"] = pd.to_datetime(df["timestamp_ms"], unit="ms")
|
|
||||||
df["date"] = df["timestamp"].dt.date
|
|
||||||
|
|
||||||
# === Agrupar por fecha y tomar el primer valor de cada día ===
|
|
||||||
df_daily = df.groupby("date").first().reset_index()[["date", "usdt_eur"]]
|
|
||||||
|
|
||||||
# === Guardar CSV ===
|
|
||||||
output_file = "usdt-eur-2025.csv"
|
|
||||||
df_daily.to_csv(output_file, index=False)
|
|
||||||
print(f"✅ Exportado como {output_file} ({len(df_daily)} días)")
|
|
||||||
30
usdt-eur.sh
30
usdt-eur.sh
@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
OUTPUT="usdt-eur-2025.csv"
|
|
||||||
> "$OUTPUT"
|
|
||||||
echo '"date","usdt_eur"' > "$OUTPUT"
|
|
||||||
|
|
||||||
START_DATE="2025-01-01"
|
|
||||||
END_DATE="2025-01-31"
|
|
||||||
CURRENT_DATE="$START_DATE"
|
|
||||||
|
|
||||||
while [[ "$CURRENT_DATE" < "$END_DATE" ]]; do
|
|
||||||
# Formatear fecha como DD-MM-YYYY (requerido por CoinGecko)
|
|
||||||
FORMATTED=$(date -j -f "%Y-%m-%d" "$CURRENT_DATE" "+%d-%m-%Y")
|
|
||||||
|
|
||||||
echo "🔄 Consultando precio para $CURRENT_DATE..."
|
|
||||||
|
|
||||||
PRICE=$(curl -s "https://api.coingecko.com/api/v3/coins/tether/history?date=${FORMATTED}&localization=false" \
|
|
||||||
| jq -r '.market_data.current_price.eur // empty')
|
|
||||||
|
|
||||||
if [[ -n "$PRICE" ]]; then
|
|
||||||
echo "\"$CURRENT_DATE\",\"$PRICE\"" >> "$OUTPUT"
|
|
||||||
else
|
|
||||||
echo "\"$CURRENT_DATE\",\"N/A\"" >> "$OUTPUT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CURRENT_DATE=$(date -j -v+1d -f "%Y-%m-%d" "$CURRENT_DATE" "+%Y-%m-%d")
|
|
||||||
sleep 2 # Evita ser bloqueado por CoinGecko
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "✅ Exportado como $OUTPUT"
|
|
||||||
Reference in New Issue
Block a user