Reorganización en carpeta Bitget

This commit is contained in:
2025-06-17 19:34:12 +02:00
parent d93e7ddda5
commit acee84128f
4 changed files with 0 additions and 0 deletions

58
Bitget/conexion.py Normal file
View File

@ -0,0 +1,58 @@
import time
import hmac
import hashlib
import base64
import requests
import json
# === TUS CREDENCIALES ===
API_KEY = "bg_28730a088b4b71c307ed5773b84d8267"
API_SECRET = "f7e4872f828c99612df009c3641421fc41d9dfb9cfc56dce3311fdaae70f5b29"
PASSPHRASE = "cQTVzepB6KuFWgWLgCpB6kW84iiqJr3u"
BASE_URL = "https://api.bitget.com"
# === ENDPOINT DE PRUEBA (consulta de balances spot) ===
ENDPOINT = "/api/spot/v1/account/assets"
def get_timestamp():
return str(int(time.time() * 1000))
def sign_request(timestamp, method, endpoint, body=""):
message = f"{timestamp}{method}{endpoint}{body}"
signature = hmac.new(
API_SECRET.encode(), message.encode(), hashlib.sha256
).digest()
return base64.b64encode(signature).decode()
def get_auth_headers(method, endpoint, body=""):
timestamp = get_timestamp()
signature = sign_request(timestamp, method, endpoint, body)
return {
"ACCESS-KEY": API_KEY,
"ACCESS-SIGN": signature,
"ACCESS-TIMESTAMP": timestamp,
"ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json",
"locale": "en-US"
}
def probar_conexion_api():
url = f"{BASE_URL}{ENDPOINT}"
headers = get_auth_headers("GET", ENDPOINT)
print("🔐 Probando conexión con el endpoint de balances spot...")
try:
response = requests.get(url, headers=headers, timeout=10)
print(f"🧾 Status code: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("✅ Conexión exitosa. Respuesta:")
print(json.dumps(data, indent=2))
else:
print("⚠️ Algo salió mal. Respuesta:")
print(response.text)
except Exception as e:
print(f"❌ Error al conectar: {e}")
if __name__ == "__main__":
probar_conexion_api()

81
Bitget/future-record.sh Executable file
View File

@ -0,0 +1,81 @@
#!/bin/bash
# === CONFIGURACIÓN: Tus credenciales ===
API_KEY="bg_28730a088b4b71c307ed5773b84d8267"
API_SECRET="f7e4872f828c99612df009c3641421fc41d9dfb9cfc56dce3311fdaae70f5b29"
PASSPHRASE="cQTVzepB6KuFWgWLgCpB6kW84iiqJr3u"
# === ENDPOINT ===
METHOD="GET"
BASE_URL="https://api.bitget.com"
ENDPOINT="/api/v2/tax/future-record"
# === ARCHIVO SALIDA ===
OUTPUT_FILE="future-record-2025.csv"
> "$OUTPUT_FILE"
# === CABECERA CSV ===
echo '"id","symbol","marginCoin","futureTaxType","amount","fee","ts","fecha_gmt1"' > "$OUTPUT_FILE"
# === FUNCIONES ===
function timestamp() {
date -u -j -f "%Y-%m-%d" "$1" +"%s"
}
function build_request() {
local START_TS_MS="$1"
local END_TS_MS="$2"
local LIMIT=100
local QUERY_STRING="startTime=${START_TS_MS}&endTime=${END_TS_MS}&limit=${LIMIT}"
local FULL_URL="${BASE_URL}${ENDPOINT}?${QUERY_STRING}"
local TIMESTAMP=$(curl -s https://api.bitget.com/api/v2/public/time | jq -r '.data.serverTime')
local PREHASH="${TIMESTAMP}${METHOD}${ENDPOINT}?${QUERY_STRING}"
local SIGNATURE=$(echo -n "${PREHASH}" | openssl dgst -sha256 -hmac "${API_SECRET}" -binary | base64)
curl -s "${FULL_URL}" \
-H "ACCESS-KEY: ${API_KEY}" \
-H "ACCESS-SIGN: ${SIGNATURE}" \
-H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \
-H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \
-H "Content-Type: application/json" \
-H "locale: en-US"
}
# === BUCLE POR BLOQUES DE 30 DÍAS (máximo 90 permitido) ===
START_DATE="2025-01-01"
END_DATE="2025-05-01"
CURRENT_DATE="$START_DATE"
while [[ "$CURRENT_DATE" < "$END_DATE" ]]; do
NEXT_DATE=$(date -j -v+30d -f "%Y-%m-%d" "$CURRENT_DATE" +"%Y-%m-%d")
START_MS=$(($(timestamp "$CURRENT_DATE") * 1000))
END_MS=$(($(timestamp "$NEXT_DATE") * 1000))
echo "🔄 Consultando de $CURRENT_DATE a $NEXT_DATE..."
RESPONSE=$(build_request "$START_MS" "$END_MS")
echo "$RESPONSE" | jq -r '
if .code == "00000" and (.data | length > 0) then
.data[] | [
.id,
.symbol,
.marginCoin,
.futureTaxType,
.amount,
.fee,
.ts,
(.ts|tonumber/1000 | strflocaltime("%Y-%m-%d %H:%M:%S +0100"))
] | @csv
else
empty
end
' >> "$OUTPUT_FILE"
sleep 2
CURRENT_DATE="$NEXT_DATE"
done
echo "✅ Exportado como $OUTPUT_FILE"

81
Bitget/margin-record.sh Executable file
View File

@ -0,0 +1,81 @@
#!/bin/bash
# === CONFIGURACIÓN: Tus credenciales ===
API_KEY="bg_28730a088b4b71c307ed5773b84d8267"
API_SECRET="f7e4872f828c99612df009c3641421fc41d9dfb9cfc56dce3311fdaae70f5b29"
PASSPHRASE="cQTVzepB6KuFWgWLgCpB6kW84iiqJr3u"
# === ENDPOINT ===
METHOD="GET"
BASE_URL="https://api.bitget.com"
ENDPOINT="/api/v2/tax/margin-record"
# === ARCHIVO SALIDA ===
OUTPUT_FILE="margin-record-2025.csv"
> "$OUTPUT_FILE"
# === CABECERA CSV ===
echo '"id","coin","marginTaxType","amount","fee","balance","ts","fecha_gmt1"' > "$OUTPUT_FILE"
# === FUNCIONES ===
function timestamp() {
date -u -j -f "%Y-%m-%d" "$1" +"%s"
}
function build_request() {
local START_TS_MS="$1"
local END_TS_MS="$2"
local LIMIT=500
local QUERY_STRING="startTime=${START_TS_MS}&endTime=${END_TS_MS}&limit=${LIMIT}"
local FULL_URL="${BASE_URL}${ENDPOINT}?${QUERY_STRING}"
local TIMESTAMP=$(curl -s https://api.bitget.com/api/v2/public/time | jq -r '.data.serverTime')
local PREHASH="${TIMESTAMP}${METHOD}${ENDPOINT}?${QUERY_STRING}"
local SIGNATURE=$(echo -n "${PREHASH}" | openssl dgst -sha256 -hmac "${API_SECRET}" -binary | base64)
curl -s "${FULL_URL}" \
-H "ACCESS-KEY: ${API_KEY}" \
-H "ACCESS-SIGN: ${SIGNATURE}" \
-H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \
-H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \
-H "Content-Type: application/json" \
-H "locale: en-US"
}
# === BUCLE POR BLOQUES DE 30 DÍAS ===
START_DATE="2025-01-01"
END_DATE="2026-01-01"
CURRENT_DATE="$START_DATE"
while [[ "$CURRENT_DATE" < "$END_DATE" ]]; do
NEXT_DATE=$(date -j -v+30d -f "%Y-%m-%d" "$CURRENT_DATE" +"%Y-%m-%d")
START_MS=$(($(timestamp "$CURRENT_DATE") * 1000))
END_MS=$(($(timestamp "$NEXT_DATE") * 1000))
echo "🔄 Consultando de $CURRENT_DATE a $NEXT_DATE..."
RESPONSE=$(build_request "$START_MS" "$END_MS")
echo "$RESPONSE" | jq -r '
if .code == "00000" and (.data | length > 0) then
.data[] | [
.id,
.coin,
.marginTaxType,
.amount,
.fee,
.balance,
.ts,
(.ts|tonumber/1000 | strflocaltime("%Y-%m-%d %H:%M:%S +0100"))
] | @csv
else
empty
end
' >> "$OUTPUT_FILE"
sleep 2
CURRENT_DATE="$NEXT_DATE"
done
echo "✅ Exportado como $OUTPUT_FILE"

83
Bitget/spot-record.sh Executable file
View File

@ -0,0 +1,83 @@
#!/bin/bash
# === CONFIGURACIÓN: Tus credenciales ===
API_KEY="bg_28730a088b4b71c307ed5773b84d8267"
API_SECRET="f7e4872f828c99612df009c3641421fc41d9dfb9cfc56dce3311fdaae70f5b29"
PASSPHRASE="cQTVzepB6KuFWgWLgCpB6kW84iiqJr3u"
# === ENDPOINT ===
METHOD="GET"
BASE_URL="https://api.bitget.com"
ENDPOINT="/api/v2/tax/spot-record"
# === ARCHIVO SALIDA ===
OUTPUT_FILE="spot-record-2025.csv"
> "$OUTPUT_FILE"
# === CABECERA CSV ===
echo '"id","coin","spotTaxType","amount","fee","balance","ts","fecha_gmt1","bizOrderId"' > "$OUTPUT_FILE"
# === FUNCIONES ===
function timestamp() {
date -u -j -f "%Y-%m-%d" "$1" +"%s"
}
function build_request() {
local START_TS_MS="$1"
local END_TS_MS="$2"
local LIMIT=100
local QUERY_STRING="startTime=${START_TS_MS}&endTime=${END_TS_MS}&limit=${LIMIT}"
local FULL_URL="${BASE_URL}${ENDPOINT}?${QUERY_STRING}"
local TIMESTAMP=$(curl -s https://api.bitget.com/api/v2/public/time | jq -r '.data.serverTime')
local PREHASH="${TIMESTAMP}${METHOD}${ENDPOINT}?${QUERY_STRING}"
local SIGNATURE=$(echo -n "${PREHASH}" | openssl dgst -sha256 -hmac "${API_SECRET}" -binary | base64)
curl -s "${FULL_URL}" \
-H "ACCESS-KEY: ${API_KEY}" \
-H "ACCESS-SIGN: ${SIGNATURE}" \
-H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \
-H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \
-H "Content-Type: application/json" \
-H "locale: en-US"
}
# === BUCLE POR BLOQUES DE 30 DÍAS ===
START_DATE="2025-01-01"
END_DATE="2026-01-01"
CURRENT_DATE="$START_DATE"
while [[ "$CURRENT_DATE" < "$END_DATE" ]]; do
NEXT_DATE=$(date -j -v+30d -f "%Y-%m-%d" "$CURRENT_DATE" +"%Y-%m-%d")
START_MS=$(($(timestamp "$CURRENT_DATE") * 1000))
END_MS=$(($(timestamp "$NEXT_DATE") * 1000))
echo "🔄 Consultando de $CURRENT_DATE a $NEXT_DATE..."
RESPONSE=$(build_request "$START_MS" "$END_MS")
echo "$RESPONSE" | jq -r '
if .code == "00000" and (.data | length > 0) then
.data[] | [
.id,
.coin,
.spotTaxType,
.amount,
.fee,
.balance,
.ts,
(.ts|tonumber/1000 | strflocaltime("%Y-%m-%d %H:%M:%S +0100")),
.bizOrderId
] | @csv
else
empty
end
' >> "$OUTPUT_FILE"
sleep 2
CURRENT_DATE="$NEXT_DATE"
done
echo "✅ Exportado como $OUTPUT_FILE"