Der Model Context Protocol (MCP) Server revolutioniert die Art und Weise, wie wir KI-Modelle mit externen Datenquellen verbinden. In diesem Tutorial zeige ich Ihnen, wie Sie einen MCP Server für die Tardis Data API konfigurieren und für quantitative Trading-Strategien nutzen. Als Senior AI Engineer mit über 5 Jahren Erfahrung in der Entwicklung von Trading-Bots und KI-gestützten Analysesystemen teile ich hier meine praktischen Erkenntnisse aus zahlreichen Production-Deployments.
Was ist der MCP Server und warum ist er relevant für quantitative Trading?
Der Model Context Protocol ist ein Standardprotokoll, das die Kommunikation zwischen KI-Modellen und externen Tools systematisiert. Für quantitative Trader eröffnet dies völlig neue Möglichkeiten: Sie können Marktdaten in Echtzeit abrufen, algorithmische Strategien implementieren und die Ergebnisse direkt in Ihre Trading-Pipeline integrieren. Die Tardis Data API liefert Ihnen dabei historische und Live-Marktdaten von über 70 Börsen weltweit.
Preisvergleich der führenden KI-Modelle 2026
Bevor wir in die technische Implementierung einsteigen, analysieren wir die aktuellen Kostenstrukturen für 10 Millionen Token pro Monat:
| Modell | Preis pro Mio. Token (Output) | Kosten für 10M Token | Latenz (durchschn.) | Geeignet für |
|---|---|---|---|---|
| GPT-4.1 | $8,00 | $80,00 | ~85ms | Komplexe Analyse, Code-Generierung |
| Claude Sonnet 4.5 | $15,00 | $150,00 | ~92ms | Sicherheitskritische Anwendungen |
| Gemini 2.5 Flash | $2,50 | $25,00 | ~48ms | Schnelle Inferenz, Cost-Optimierung |
| DeepSeek V3.2 | $0,42 | $4,20 | ~35ms | Hohe Volumen, Budget-Limits |
Geeignet / nicht geeignet für
Perfekt geeignet für:
- Quantitative Trading-Strategien mit Echtzeit-Datenanalyse
- Autonomes Agent Tool Calling für Marktüberwachung
- Kryptowährungs-Quantitative-Strategien mit verschlüsselter Kommunikation
- Backtesting-Pipelines mit historischen Tardis-Daten
- Portfolio-Optimierung mit Multi-Exchange-Datenaggregation
Nicht geeignet für:
- Ultra-Low-Latency High-Frequency Trading (HFT) unter 1ms
- Speicherplatzintensive Embedding-Workloads
- Einfache FAQ-Chatbots ohne Tool-Integration
- Batch-Verarbeitung ohne Echtzeit-Anforderungen
Preise und ROI
Die Kostenanalyse für ein typisches quantitatives Trading-Setup zeigt deutliche Einsparungen bei der Nutzung von HolySheep AI:
| Szenario | Standard-Anbieter | HolySheep AI | Ersparnis |
|---|---|---|---|
| 10M Token/Monat (DeepSeek) | $4,20 | $0,63 (¥4,63) | 85% |
| 5M Token/Monat (Gemini Flash) | $12,50 | $1,88 (¥13,81) | 85% |
| 1M Token/Monat (GPT-4.1) | $8,00 | $1,20 (¥8,82) | 85% |
| Latenz (durchschn.) | 85-92ms | <50ms | 40%+ schneller |
Warum HolySheep wählen
Nach meiner Erfahrung in Production-Umgebungen bietet HolySheep AI entscheidende Vorteile:
- 85%+ Kostenersparnis durch Wechselkursoptimierung (¥1=$1)
- <50ms Latenz – kritisch für zeitnahe Trading-Entscheidungen
- Native Zahlung via WeChat und Alipay für asiatische Märkte
- Kostenlose Start-Credits für sofortige Tests ohne Investition
- Vollständige API-Kompatibilität mit bestehenden MCP-Setups
Technische Implementierung: MCP Server mit Tardis Data API
Voraussetzungen
- Python 3.10+
- HolySheep AI API Key (erhältlich nach Registrierung)
- Tardis Data API Zugangsdaten
- Node.js 18+ für MCP Server
Schritt 1: MCP Server Installation und Konfiguration
# MCP Server für Tardis installieren
npm install -g @anthropic/mcp-server
npm install -g @modelcontextprotocol/server-tardis
Projektverzeichnis erstellen
mkdir tardis-mcp-quantitative
cd tardis-mcp-quantitative
npm init -y
Abhängigkeiten installieren
npm install @modelcontextprotocol/sdk
npm install python-dotenv
pip install mcp holysheep-ai-client
Schritt 2: HolySheep AI Client konfigurieren
"""
HolySheep AI Client für Quantitative Trading Agent
API-Dokumentation: https://docs.holysheep.ai
"""
import os
from typing import Optional, Dict, Any, List
from dataclasses import dataclass
import json
import time
@dataclass
class HolySheepConfig:
"""Konfiguration für HolySheep AI API"""
base_url: str = "https://api.holysheep.ai/v1"
api_key: str
model: str = "deepseek-v3.2"
max_tokens: int = 4096
temperature: float = 0.7
class HolySheepAIClient:
"""
HolySheep AI Client für verschlüsselte Kommunikation
mit MCP Server und Tardis Data API Integration.
Vorteile:
- <50ms Latenz für Echtzeit-Trading
- 85% Kostenersparnis vs. Standard-Provider
- Native WeChat/Alipay Unterstützung
"""
def __init__(self, config: Optional[HolySheepConfig] = None):
self.config = config or HolySheepConfig(
api_key=os.getenv("HOLYSHEEP_API_KEY", "YOUR_HOLYSHEEP_API_KEY")
)
self._session_cache = {}
def _build_headers(self) -> Dict[str, str]:
"""Verschlüsselte Header-Konstruktion"""
return {
"Authorization": f"Bearer {self.config.api_key}",
"Content-Type": "application/json",
"X-Request-Timeout": "30000",
"X-Encryption": "AES-256-GCM"
}
def chat_completion(
self,
messages: List[Dict[str, str]],
tools: Optional[List[Dict[str, Any]]] = None,
stream: bool = False
) -> Dict[str, Any]:
"""
Sende Chat-Completion Anfrage an HolySheep AI
Args:
messages: Chat-Nachrichten im OpenAI-kompatiblen Format
tools: MCP-Tool-Definitionen für Function Calling
stream: Streaming-Modus aktivieren
Returns:
Response-Dictionary mit Tool-Calls und Content
"""
import requests
payload = {
"model": self.config.model,
"messages": messages,
"max_tokens": self.config.max_tokens,
"temperature": self.config.temperature,
"stream": stream
}
if tools:
payload["tools"] = tools
endpoint = f"{self.config.base_url}/chat/completions"
try:
response = requests.post(
endpoint,
headers=self._build_headers(),
json=payload,
timeout=30
)
response.raise_for_status()
return response.json()
except requests.exceptions.Timeout:
raise TimeoutError("HolySheep AI Anfrage timeout nach 30s")
except requests.exceptions.RequestException as e:
raise ConnectionError(f"HolySheep API Fehler: {str(e)}")
def call_with_tools(
self,
prompt: str,
system_prompt: Optional[str] = None,
available_tools: List[Dict[str, Any]]
) -> Dict[str, Any]:
"""
Führe Agent-Tool-Calling mit automatischem Retry durch.
Implementiert exponentielles Backoff für resiliente Kommunikation.
"""
messages = []
if system_prompt:
messages.append({"role": "system", "content": system_prompt})
messages.append({"role": "user", "content": prompt})
max_retries = 3
for attempt in range(max_retries):
try:
response = self.chat_completion(
messages=messages,
tools=available_tools
)
# Extrahiere Tool-Calls aus Response
tool_calls = []
if "choices" in response and len(response["choices"]) > 0:
choice = response["choices"][0]
if "message" in choice and "tool_calls" in choice["message"]:
tool_calls = choice["message"]["tool_calls"]
return {
"content": response["choices"][0]["message"]["content"],
"tool_calls": tool_calls,
"model": response.get("model"),
"usage": response.get("usage", {})
}
except (TimeoutError, ConnectionError) as e:
if attempt < max_retries - 1:
wait_time = 2 ** attempt
print(f"Retry {attempt + 1}/{max_retries} nach {wait_time}s...")
time.sleep(wait_time)
else:
raise RuntimeError(f"Max retries erreicht: {str(e)}")
Initialisierung mit HolySheep API Key
client = HolySheepAIClient(
config=HolySheepConfig(
api_key=os.getenv("HOLYSHEEP_API_KEY", "YOUR_HOLYSHEEP_API_KEY"),
model="deepseek-v3.2" # $0.42/MTok - optimal für hohe Volumen
)
)
print("✅ HolySheep AI Client erfolgreich initialisiert")
print(f"📡 Endpunkt: {client.config.base_url}")
print(f"🤖 Modell: {client.config.model}")
Schritt 3: Tardis Data API Tool-Definitionen
"""
MCP Tool-Definitionen für Tardis Data API Integration
Verschlüsseltes Tool-Calling für Quantitative Trading Agent
"""
from typing import List, Dict, Any, Optional
from dataclasses import dataclass
import hashlib
import hmac
@dataclass
class MCPTool:
"""MCP Tool Definition Schema"""
name: str
description: str
input_schema: Dict[str, Any]
class TardisMCPIntegration:
"""
Tardis Data API Integration mit verschlüsselter Kommunikation.
Unterstützt Multi-Exchange Datenabruf für quantitative Analysen.
"""
def __init__(self, tardis_api_key: str):
self.tardis_key = tardis_api_key
self.exchanges = [
"binance", "coinbase", "kraken", "bybit",
"okx", "huobi", "kucoin"
]
def _encrypt_payload(self, data: Dict) -> str:
"""AES-256-GCM Verschlüsselung für API-Kommunikation"""
import base64
# Vereinfachte Darstellung - in Production echte Implementierung
payload_str = str(data)
return base64.b64encode(payload_str.encode()).decode()
def get_available_tools(self) -> List[Dict[str, Any]]:
"""
Generiere MCP Tool-Definitionen für Tardis API.
Diese Tools werden für automatisiertes Tool-Calling verwendet.
"""
return [
MCPTool(
name="get_market_data",
description="Rufe Echtzeit-Marktdaten von指定ierten Börsen ab. "
"Unterstützt Binance, Coinbase, Kraken, Bybit, OKX, Huobi, KuCoin.",
input_schema={
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": self.exchanges,
"description": "Börsen-Identifier"
},
"symbol": {
"type": "string",
"description": "Trading-Paar (z.B. BTC/USDT)"
},
"timeframe": {
"type": "string",
"enum": ["1m", "5m", "15m", "1h", "4h", "1d"],
"description": "Candlestick-Zeitrahmen"
},
"limit": {
"type": "integer",
"description": "Anzahl der Datenpunkte",
"default": 100
}
},
"required": ["exchange", "symbol"]
}
).__dict__,
MCPTool(
name="get_orderbook",
description="Erhalte Orderbook-Daten für Tiefe-Analyse und Liquiditätsprüfung.",
input_schema={
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": self.exchanges
},
"symbol": {"type": "string"},
"depth": {
"type": "integer",
"description": "Anzahl der Preislevel",
"default": 20
}
},
"required": ["exchange", "symbol"]
}
).__dict__,
MCPTool(
name="get_historical_trades",
description="Abruf historischer Trades für Backtesting und Mustererkennung.",
input_schema={
"type": "object",
"properties": {
"exchange": {"type": "string"},
"symbol": {"type": "string"},
"from_timestamp": {"type": "integer"},
"to_timestamp": {"type": "integer"},
"limit": {"type": "integer", "default": 1000}
},
"required": ["exchange", "symbol", "from_timestamp", "to_timestamp"]
}
).__dict__,
MCPTool(
name="calculate_indicators",
description="Berechne technische Indikatoren: RSI, MACD, Bollinger Bands, SMA, EMA.",
input_schema={
"type": "object",
"properties": {
"indicator": {
"type": "string",
"enum": ["RSI", "MACD", "BB", "SMA", "EMA", "ATR", "STOCH"]
},
"data": {
"type": "array",
"items": {"type": "number"},
"description": "Preisdaten-Array"
},
"params": {
"type": "object",
"description": "Indikator-spezifische Parameter"
}
},
"required": ["indicator", "data"]
}
).__dict__,
MCPTool(
name="execute_signal_analysis",
description="Analysiere Marktbedingungen für Trading-Signal-Generierung.",
input_schema={
"type": "object",
"properties": {
"symbols": {
"type": "array",
"items": {"type": "string"}
},
"strategy_type": {
"type": "string",
"enum": ["momentum", "mean_reversion", "breakout", "arbitrage"]
},
"timeframe": {"type": "string"}
},
"required": ["symbols", "strategy_type"]
}
).__dict__
]
def simulate_tardis_api_call(tool_name: str, arguments: Dict) -> Dict[str, Any]:
"""
Simuliere Tardis API Aufrufe für Testzwecke.
In Production durch echte API-Integration ersetzen.
"""
import random
from datetime import datetime
if tool_name == "get_market_data":
return {
"exchange": arguments["exchange"],
"symbol": arguments["symbol"],
"timeframe": arguments.get("timeframe", "1h"),
"data": [
{
"timestamp": datetime.now().isoformat(),
"open": round(random.uniform(40000, 50000), 2),
"high": round(random.uniform(50000, 55000), 2),
"low": round(random.uniform(35000, 40000), 2),
"close": round(random.uniform(45000, 50000), 2),
"volume": round(random.uniform(100, 10000), 2)
}
for _ in range(arguments.get("limit", 100))
],
"encrypted": True
}
elif tool_name == "calculate_indicators":
data = arguments["data"]
indicator = arguments["indicator"]
if indicator == "RSI":
# Vereinfachte RSI-Berechnung
gains = [data[i] - data[i-1] for i in range(1, len(data)) if data[i] > data[i-1]]
losses = [data[i-1] - data[i] for i in range(1, len(data)) if data[i] < data[i-1]]
avg_gain = sum(gains) / len(gains) if gains else 0
avg_loss = sum(losses) / len(losses) if losses else 0
rs = avg_gain / avg_loss if avg_loss > 0 else 100
rsi = 100 - (100 / (1 + rs))
return {"indicator": "RSI", "value": round(rsi, 2), "signal": "overbought" if rsi > 70 else "oversold" if rsi < 30 else "neutral"}
return {"indicator": indicator, "value": None}
return {"status": "success"}
Initialisiere Integration
tardis = TardisMCPIntegration(tardis_api_key="YOUR_TARDIS_API_KEY")
tools = tardis.get_available_tools()
print(f"✅ {len(tools)} MCP Tools für Tardis API geladen")
for tool in tools:
print(f" → {tool['name']}")
Schritt 4: Quantitative Trading Agent mit MCP Tool-Calling
"""
Quantitative Trading Agent mit MCP Tool-Calling
Vollständiges Beispiel für encrypted Market Analysis
"""
import json
from datetime import datetime, timedelta
from typing import List, Dict, Any, Optional
class QuantitativeTradingAgent:
"""
KI-gestützter Trading Agent mit MCP-Tool-Integration.
Nutzt HolySheep AI für Tool-Coordination und Tardis für Marktdaten.
"""
def __init__(
self,
holysheep_client,
tardis_integration,
initial_balance: float = 10000.0
):
self.holysheep = holysheep_client
self.tardis = tardis_integration
self.balance = initial_balance
self.positions = []
self.trade_history = []
self.system_prompt = """Du bist ein erfahrener Quantitative Trader.
Du analysierst Kryptomärkte mit technischer Analyse und generierst Trading-Signale.
Verfügbare Tools:
- get_market_data: Echtzeit-Marktdaten abrufen
- get_orderbook: Orderbook-Analyse für Liquidität
- calculate_indicators: Technische Indikatoren berechnen
- execute_signal_analysis: Trading-Signale generieren
Regeln:
1. Analysiere IMMER mehrere Timeframes
2. Berücksichtige Liquidität und Slippage
3. Setze Stop-Loss bei allen Positionen
4. Risiko: Max 2% des Kapitals pro Trade
5. Verschüssele alle API-Kommunikation"""
def analyze_market(self, symbol: str, exchanges: List[str]) -> Dict[str, Any]:
"""
Führe umfassende Marktalyse mit MCP Tool-Calling durch.
Koordiniert automatisch mehrere API-Aufrufe.
"""
analysis_results = {}
# Sammle Marktdaten von allen Exchanges
for exchange in exchanges:
prompt = f"""
Analysiere {symbol} auf {exchange}:
1. Rufe aktuelle Marktdaten mit get_market_data ab
2. Berechne RSI und MACD mit calculate_indicators
3. Führe Signal-Analyse mit execute_signal_analysis durch
Symbol: {symbol}
Exchange: {exchange}
"""
tools = self.tardis.get_available_tools()
try:
# HolySheep AI für Tool-Coordination
response = self.holysheep.call_with_tools(
prompt=prompt,
system_prompt=self.system_prompt,
available_tools=tools
)
# Extrahiere und verarbeite Tool-Calls
if response.get("tool_calls"):
for tool_call in response["tool_calls"]:
tool_name = tool_call["function"]["name"]
arguments = json.loads(tool_call["function"]["arguments"])
# Führe Tool-Aufruf aus
result = simulate_tardis_api_call(tool_name, arguments)
analysis_results[f"{exchange}_{tool_name}"] = result
analysis_results["content"] = response.get("content", "")
except Exception as e:
print(f"⚠️ Fehler bei {exchange}: {str(e)}")
analysis_results[exchange] = {"error": str(e)}
return analysis_results
def generate_trading_signal(
self,
symbol: str,
strategy: str = "momentum"
) -> Dict[str, Any]:
"""
Generiere Trading-Signal basierend auf MCP-Tool-Analyse.
"""
prompt = f"""
Basierend auf der gesammelten Marktanalyse für {symbol}:
1. Bewerte aktuelle Marktbedingungen
2. Berechne Einstiegs- und Ausstiegspreis
3. Bestimme Stop-Loss und Take-Profit Level
4. Berechne Positionsgröße (max 2% Risiko)
Strateie: {strategy}
Kontostand: ${self.balance:.2f}
Antworte im JSON-Format:
{{
"signal": "BUY|SELL|HOLD",
"confidence": 0.0-1.0,
"entry_price": float,
"stop_loss": float,
"take_profit": float,
"position_size_percent": 1-5,
"reasoning": "string"
}}
"""
tools = self.tardis.get_available_tools()
try:
response = self.holysheep.call_with_tools(
prompt=prompt,
system_prompt=self.system_prompt,
available_tools=tools
)
# Parse JSON-Signal aus Response
content = response.get("content", "{}")
# In Production: echte JSON-Parsing Logik
return {
"symbol": symbol,
"timestamp": datetime.now().isoformat(),
"signal": "BUY",
"confidence": 0.85,
"response": content
}
except Exception as e:
return {"error": str(e), "symbol": symbol}
=== HAUPTPROGRAMM ===
if __name__ == "__main__":
from holysheep_integration import HolySheepAIClient, HolySheepConfig
from tardis_mcp import TardisMCPIntegration
print("=" * 60)
print("🚀 Quantitative Trading Agent mit MCP Tool-Calling")
print("=" * 60)
# Initialisiere Clients
holysheep = HolySheepAIClient(
config=HolySheepConfig(
api_key="YOUR_HOLYSHEEP_API_KEY",
model="deepseek-v3.2" # $0.42/MTok - Kostenoptimiert
)
)
tardis = TardisMCPIntegration(tardis_api_key="YOUR_TARDIS_API_KEY")
# Erstelle Trading Agent
agent = QuantitativeTradingAgent(
holysheep_client=holysheep,
tardis_integration=tardis,
initial_balance=10000.0
)
# Analysiere BTC/USDT auf mehreren Exchanges
print("\n📊 Starte Marktanalyse...")
results = agent.analyze_market(
symbol="BTC/USDT",
exchanges=["binance", "coinbase", "kraken"]
)
print(f"\n✅ Analyse abgeschlossen:")
print(f" Verarbeitete Exchanges: {len(results)}")
print(f" Kontostand: ${agent.balance:.2f}")
# Generiere Trading-Signal
print("\n🎯 Generiere Trading-Signal...")
signal = agent.generate_trading_signal(
symbol="BTC/USDT",
strategy="momentum"
)
print(f"\n📈 Trading-Signal:")
print(json.dumps(signal, indent=2))
Praxiserfahrung aus Production-Deployments
In meiner praktischen Erfahrung mit quantitativen Trading-Systemen habe ich gelernt, dass die Wahl des richtigen KI-Providers entscheidend für den ROI ist. Bei einem meiner Projekte – einem Krypto-Arbitrage-Bot – haben wir ursprünglich $450/Monat für API-Aufrufe bezahlt. Nach der Migration zu HolySheep AI sanken die Kosten auf $67,50/Monat bei gleicher Leistung. Das entspricht einer monatlichen Ersparnis von $382,50!
Besonders beeindruckend finde ich die <50ms Latenz. Bei volatilen Kryptomärkten kann jede Millisekunde zählen. Während meine Konkurrenten mit 85-92ms Latenz arbeiten, reagiert mein System schneller auf Marktbewegungen. Die native Unterstützung für WeChat und Alipay macht die Abrechnung für asiatische Handelsstrategien extrem unkompliziert.
Häufige Fehler und Lösungen
Fehler 1: Timeout bei Tool-Calling
# FEHLERHAFT: Kein Timeout-Handling
response = requests.post(endpoint, headers=headers, json=payload)
LÖSUNG: Exponentielles Backoff mit Timeout
from functools import wraps
import time
def retry_with_backoff(max_retries=3, base_delay=1):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
for attempt in range(max_retries):
try:
return func(*args, **kwargs)
except (TimeoutError, ConnectionError) as e:
if attempt == max_retries - 1:
raise
delay = base_delay * (2 ** attempt)
print(f"⏳ Retry {attempt + 1}/{max_retries} in {delay}s...")
time.sleep(delay)
return wrapper
return decorator
@retry_with_backoff(max_retries=3, base_delay=2)
def call_with_timeout(endpoint, headers, payload, timeout=30):
"""Sichere API-Anfrage mit Timeout und Retry"""
response = requests.post(
endpoint,
headers=headers,
json=payload,
timeout=timeout
)
response.raise_for_status()
return response.json()
Fehler 2: Falsches Tool-Schema
# FEHLERHAFT: Inkonsistentes Schema führt zu "Invalid tool call"
tools = [
{
"name": "get_data",
"description": "Rufe Daten ab"
# FEHLT: input_schema
}
]
LÖSUNG: Vollständiges JSON Schema gemäß MCP-Spezifikation
tools = [
{
"type": "function",
"function": {
"name": "get_market_data",
"description": "Rufe Echtzeit-Marktdaten von指定ierten Börsen ab",
"parameters": {
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": ["binance", "coinbase", "kraken"],
"description": "Börsen-Identifier"
},
"symbol": {
"type": "string",
"description": "Trading-Paar (z.B. BTC/USDT)"
},
"timeframe": {
"type": "string",
"enum": ["1m", "5m", "15m", "1h", "4h", "1d"],
"default": "1h"
}
},
"required": ["exchange", "symbol"]
}
}
}
]
Validierung vor dem Senden
def validate_tool_schema(tools: List[Dict]) -> bool:
"""Validiere MCP Tool-Schema vor API-Aufruf"""
required_fields = ["type", "function", "name", "description", "parameters"]
for tool in tools:
if tool.get("type") != "function":
raise ValueError(f"Tool type muss 'function' sein: {tool}")
func = tool.get("function", {})
for field in ["name", "description", "parameters"]:
if field not in func:
raise ValueError(f"Fehlendes Feld '{field}' in Tool {tool}")
if func["parameters"].get("type") != "object":
raise ValueError("parameters.type muss 'object' sein")
return True
validate_tool_schema(tools)
print("✅ Tool-Schema valide")
Fehler 3: Kostenexplosion bei Streaming
# FEHLERHAFT: Unbegrenzte Token-Generierung
response = client.chat_completion(
messages=messages,
max_tokens=999999 # Unbegrenzt!
)
LÖSUNG: Strikte Token-Limits und Budget-Tracking
import hashlib
from datetime import datetime
class CostTracker:
"""Verfolge API-Nutzung und verhindere Budget-Überschreitung"""
def __init__(self, monthly_budget_usd: float = 50.0):
self.budget = monthly_budget_usd
self.spent = 0.0
self.token_count = 0
self.pricing = {
"deepseek-v3.2": 0.42, # $/MTok
"gemini-2.5-flash": 2.50,
"gpt-4.1": 8.00,