📊 FXAlgo Cloud API – Entwicklerdokumentation

Willkommen bei der FXAlgo Cloud API.
Diese API ermöglicht es registrierten Nutzern, quantitative Analysen, Handelssignale und Portfolio-Kennzahlen programmgesteuert abzurufen. Jeden Tag zwischen 21:55 Uhr und 22:00 Uhr werden neue Signale veröffentlicht.

Die API ist REST-basiert, liefert JSON und wird über API-Keys authentifiziert.
Die Nutzung erfolgt credit-basiert. Credits werden vorab über Stripe erworben.


💰 Kostenstruktur & Credit-Verbrauch

Die Nutzung der FXAlgo Cloud API erfolgt credit-basiert. Die Anzahl der verbrauchten Credits hängt davon ab, wie die API aufgerufen wird.

Credit-Verbrauch pro Abruf

Zugriffsmethode Credit-Kosten pro API-Abruf
Nutzung über das Frontend (Web UI) 10 Credits
Direkter API-Zugriff über eigenen Code 5 Credits

Erläuterung

💡 Best Practice:
Für produktive Systeme, Trading-Bots oder Backtests empfiehlt sich der direkte API-Zugriff, um Credits effizient zu nutzen.

💳 Credits & Abrechnung (Stripe)

Bevor die API genutzt werden kann, müssen Credits erworben werden.

Ablauf

  1. Nutzer registriert sich im Frontend.
  2. Kauf von Credits über Stripe Checkout.
  3. Credits werden dem Benutzerkonto gutgeschrieben.
  4. Jeder API-Request verbraucht Credits.
  5. Bei fehlenden Credits wird ein Fehler zurückgegeben.
💡 Die konkrete Anzahl der verbrauchten Credits pro Request hängt vom Analyse-Typ ab.

🚀 Überblick


🔒 Sicherheit & Limits


🔐 Authentifizierung

Jeder API-Request muss einen gültigen API-Key enthalten.

Header

X-API-Key: <IHR_API_SCHLÜSSEL>
Accept: application/json
❌ Requests ohne oder mit ungültigem API-Key werden abgelehnt.

📌 Endpunkte

1️⃣ Alle Analysen des Nutzers abrufen

Ruft eine Liste aller Analysen ab, die dem authentifizierten Benutzer gehören.

Endpoint

GET /analyses

Credit-Verbrauch

Zugriffsmethode Credits
Frontend 10 Credits
Direkter API-Zugriff 5 Credits

ℹ️ Credits werden nur bei erfolgreicher Antwort abgezogen.

📥 Beispiel: cURL

curl -X GET \
  "https://fxalgo-backend-788396870370.europe-west3.run.app/api/v1/analyses" \
  -H "accept: application/json" \
  -H "X-API-Key: <IHR_API_SCHLÜSSEL>"

📤 Erfolgreiche Antwort (200)

Die API gibt ein Array von Analyse-Objekten zurück. Jeder Eintrag repräsentiert eine einzelne Analyse mit Basis-Metadaten.

[
  {
    "id": 369,
    "stock_symbol": "QQQ",
    "stock_name": "USTech100 Index",
    "analysis_timestamp": "2025-12-07 01:34:14",
    "analysis_type": "quant_select"
  },
  {
    "id": 349,
    "stock_symbol": "GLD",
    "stock_name": "Gold",
    "analysis_timestamp": "2025-12-14 14:37:08",
    "analysis_type": "quant_select"
  }
]

🧩 Feldbeschreibung

Feld Typ Beschreibung
id Integer Eindeutige ID der Analyse (wird für Detailabruf benötigt)
stock_symbol String Marktsymbol (z. B. GLD, BTCUSD, QQQ)
stock_name String Klarname des Marktes
analysis_timestamp String Zeitpunkt der Analyse-Erstellung (UTC)
analysis_type String Typ der Analyse (z. B. quant, quant_select, stock)

🔁 Weiterführender Schritt: Analyse-Details abrufen

Mit der id aus der Analysenübersicht kann anschließend die vollständige Analyse inklusive Signale, KPIs und Charts abgerufen werden:

GET /analyses/{analysis_id}
💡 Best Practices:

2️⃣ Details einer spezifischen Analyse abrufen

Ruft die vollständigen Analyseergebnisse inklusive Signalen, Equity-Kurven und KPIs ab.

Request

GET /analyses/{analysis_id}

📥 Beispiel: cURL

curl -X GET \
  "https://fxalgo-backend-788396870370.europe-west3.run.app/api/v1/analyses/<EINE_ANALYSE_ID>" \
  -H "accept: application/json" \
  -H "X-API-Key: <IHR_API_SCHLÜSSEL>"

🧠 Beispiel: Nutzung in Python

import requests
import json

BASE_URL = "https://fxalgo-backend-788396870370.europe-west3.run.app/api/v1"
API_KEY = "<IHR_API_SCHLÜSSEL>"
ANALYSIS_ID = 123

headers = {
    "accept": "application/json",
    "X-API-Key": API_KEY
}

response = requests.get(f"{BASE_URL}/analyses/{ANALYSIS_ID}", headers=headers)
data = response.json()

selected_systems = data.get("selected_systems_data", [])

for system in selected_systems:
    print(system["name"], system["signal"]["value"])

with open("analysis.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=2, ensure_ascii=False)

📦 Datenstruktur (Response)

🔹 Metadata

"metadata": {
  "analysis_type": "quantitative_selection",
  "stock_symbol": "GLD",
  "stock_name": "Gold",
  "stock_exchange": "AMEX",
  "stock_country": "america",
  "analysis_timestamp": "2025-11-20T02:04:54.960370"
}

🔹 Selected Systems (selected_systems_data)

Liste der ausgewählten Handelssysteme mit Performance-Metriken und aktuellem Signal.

{
  "name": "Equity_System12",
  "finalEquity": 1813685.81,
  "performancePercent": 81.36,
  "maxDrawdown": -7.00,
  "perfDdRatio": 11.62,
  "signal": {
    "value": "Flat",
    "type": "Long",
    "stopLoss": 1.1523,
    "takeProfitShort": 1.1523
  }
}

Signal-Felder

Feld Beschreibung
value Aktuelles Handelssignal (Long, Short, Flat)
type Richtung des Systems
stopLoss Stop-Loss Level
takeProfitShort Take-Profit Level
myRiskVol Positionsgröße / Risiko

🔹 Portfolio KPIs

"portfolio_kpis": {
  "total_return_pct": 29.53,
  "cagr_pct": 3.25,
  "sharpe_ratio": 1.37,
  "max_drawdown_ic_pct": -2.33,
  "win_rate_pct": 54.82,
  "profit_factor": 1.39
}

🔹 Charts & Marktdaten


⚠️ Fehlercodes

Status Bedeutung
401Ungültiger oder fehlender API-Key
402Nicht genügend Credits
404Analyse nicht gefunden
429Rate Limit überschritten
500Interner Serverfehler

📬 Support & Kontakt

Bei Fragen, Fehlern oder Feature-Requests:


✅ Zusammenfassung