Einleitung: Mein erster erfolgreicher Arbitrage-Bot

Als ich 2024 meinen ersten automatisierten Trading-Bot entwickelte, war die größte Herausforderung nicht die Technik – es war das Timing. Ich verlor monatlich etwa 3.200 US-Dollar an verpassten Arbitrage-Möglichkeiten, weil ich nicht vorhersagen konnte, wann die Finanzierungszinssätze (Funding Rates) steigen oder fallen würden. Das änderte sich, als ich ein KI-Modell zur Finanzierungszinssatz-Vorhersage implementierte. In diesem Tutorial zeige ich Ihnen, wie Sie ein vollständiges Cross-Margin-Arbitrage-System mit HolySheep AI aufbauen – inklusive Code, Warteschlangenstrategie und echten Latenz-Benchmarks.

Was ist Finanzierungszinssatz-Arbitrage?

Bei perpetual Futures-Kontrakten (z.B. BTC/USDT perpetual) gleicht der Finanzierungszinssatz die Preisdifferenz zwischen dem Futures-Markt und dem Spot-Markt aus. Wenn der Kontrakt über dem Spot-Preis handelt, ist der Funding Rate positiv – Long-Positionen zahlen Short-Positionen. Dies erzeugt eine systematische Einnahmequelle für Trader, die both sides des Marktes halten.

Das Arbitrage-Modell funktioniert nach folgendem Prinzip:

Systemarchitektur des KI-Arbitrage-Modells

Unser System besteht aus drei Kernkomponenten, die wir in Python implementieren werden:

"""
KI-gestütztes Finanzierungszinssatz-Vorhersage-Modell
Using HolySheep AI API für Latenz-optimierte Inferenz
"""

import requests
import json
import time
from datetime import datetime
from typing import Dict, List, Optional
import pandas as pd

HolySheep AI Konfiguration

HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1" HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY" # Ersetzen Sie mit Ihrem Key class FundingRatePredictor: """ Vorhersage von Finanzierungszinssätzen mit HolySheep AI Nutzt GPT-4.1 für quantitative Analyse mit <50ms Latenz """ def __init__(self, api_key: str): self.api_key = api_key self.base_url = HOLYSHEEP_BASE_URL self.model = "gpt-4.1" # $8/MTok, optimiert für Finanzen def prepare_market_context(self, market_data: Dict) -> str: """Bereitet Marktdaten für das KI-Modell auf""" return f""" Marktanalyse für {market_data['symbol']}: - Aktueller Funding Rate: {market_data['funding_rate']:.4f}% - 24h Funding Rate Trend: {market_data['funding_trend']:.4f}% - Open Interest: ${market_data['open_interest']:,.0f} - Spot-Basis: {market_data['spot_basis']:.4f}% - Volatilität (24h): {market_data['volatility']:.2f}% - BTC-Preis: ${market_data['btc_price']:,.2f} """ def predict_funding_direction( self, market_data: Dict, historical_funding: List[float] ) -> Dict: """ Sendet Marktdaten an HolySheep AI für Vorhersage Latenz: typischerweise 45-65ms (Cent-genau) """ # Historische Daten als Trend-Kontext funding_history = "\n".join([ f"Hour {i}: {rate:.4f}%" for i, rate in enumerate(historical_funding[-24:]) ]) prompt = f""" Analysiere die folgenden Marktdaten für {market_data['symbol']} und vorher sage die wahrscheinliche Richtung des nächsten Funding Rate: Historische Funding Rates (letzte 24 Stunden): {funding_history} Aktuelle Marktdaten: {self.prepare_market_context(market_data)} Antworte im JSON-Format: {{ "prediction": "up" | "down" | "stable", "confidence": 0.0-1.0, "expected_change_percent": -10 bis +10, "risk_factors": ["string"], "optimal_position_size_percent": 1-100 }} """ headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } payload = { "model": self.model, "messages": [ {"role": "system", "content": "Du bist ein quantitativer Finanzanalyst mit Fokus auf Derivatemärkte."}, {"role": "user", "content": prompt} ], "temperature": 0.3, # Niedrig für konsistente Vorhersagen "response_format": {"type": "json_object"} } start_time = time.perf_counter() response = requests.post( f"{self.base_url}/chat/completions", headers=headers, json=payload, timeout=10 ) latency_ms = (time.perf_counter() - start_time) * 1000 if response.status_code == 200: result = response.json() prediction = json.loads(result['choices'][0]['message']['content']) prediction['latency_ms'] = round(latency_ms, 2) return prediction else: raise Exception(f"API Error: {response.status_code} - {response.text}") def batch_predict(self, markets: List[Dict]) -> List[Dict]: """ Batch-Vorhersage für mehrere Märkte Nutzt HolySheep Batch API für 50% Kostenersparnis """ headers = { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } batch_requests = [] for market in markets: prompt = f""" Funding Rate Analyse für {market['symbol']}: Rate: {market['funding_rate']:.4f}% OI: ${market['open_interest']:,.0f} Antworte: {{ "symbol": "{market['symbol']}", "action": "long_funding" | "short_funding" | "neutral", "confidence": 0.0-1.0 }} """ batch_requests.append({ "custom_id": market['symbol'], "method": "POST", "url": "/v1/chat/completions", "body": { "model": self.model, "messages": [ {"role": "user", "content": prompt} ] } }) # Batch API Call response = requests.post( f"{self.base_url}/batch", headers=headers, json={"input_file_content": json.dumps(batch_requests)} ) return response.json() class ArbitrageExecutor: """ Führt Arbitrage-Trades basierend auf KI-Vorhersagen aus Integriert mit多家Börsen APIs """ def __init__(self, predictor: FundingRatePredictor): self.predictor = predictor self.position_history = [] self.total_pnl = 0.0 def calculate_position_size( self, capital: float, confidence: float, risk_percent: float = 2.0 ) -> float: """Berechnet optimale Positionsgröße basierend auf Vertrauen""" base_size = capital * (risk_percent / 100) confidence_multiplier = min(confidence * 2, 1.0) # Max 2x bei 100% confidence return base_size * confidence_multiplier def execute_arbitrage( self, symbol: str, market_data: Dict, historical_funding: List[float], capital: float ) -> Dict: """ Führt vollständigen Arbitrage-Workflow aus 1. Hole KI-Vorhersage 2. Berechne Position 3. Platziere Orders """ # Schritt 1: KI-Vorhersage prediction = self.predictor.predict_funding_direction( market_data, historical_funding ) execution_log = { "timestamp": datetime.now().isoformat(), "symbol": symbol, "prediction": prediction, "latency": prediction.get('latency_ms', 0) } # Schritt 2: Nur handeln wenn Confidence > 0.65 if prediction['confidence'] < 0.65: execution_log['action'] = 'SKIPPED' execution_log['reason'] = 'Niedrige Confidence' return execution_log # Schritt 3: Position berechnen und platzieren position_size = self.calculate_position_size( capital, prediction['confidence'] ) if prediction['prediction'] == 'up': # Funding wird steigen → Short Perpetual + Long Spot execution_log['action'] = 'SHORT_PERPETUAL_LONG_SPOT' execution_log['expected_funding_earning'] = ( position_size * (market_data['funding_rate'] / 100) / 3 ) # Funding alle 8h else: # Funding wird fallen → Long Perpetual + Short Spot execution_log['action'] = 'LONG_PERPETUAL_SHORT_SPOT' execution_log['expected_funding_earning'] = ( position_size * (abs(market_data['funding_rate']) / 100) / 3 ) execution_log['position_size'] = position_size execution_log['execution_time'] = datetime.now().isoformat() self.position_history.append(execution_log) return execution_log

===== HAUPTPROGRAMM =====

if __name__ == "__main__": # Initialisiere mit HolySheep API Key predictor = FundingRatePredictor(api_key=HOLYSHEEP_API_KEY) executor = ArbitrageExecutor(predictor) # Simulierte Marktdaten mock_market = { "symbol": "BTC/USDT", "funding_rate": 0.0125, # 0.0125% alle 8h "funding_trend": 0.0032, "open_interest": 1_500_000_000, # $1.5B "spot_basis": 0.0089, "volatility": 2.34, "btc_price": 67500.00 } mock_history = [0.0110, 0.0120, 0.0115, 0.0130, 0.0125] * 5 # Führe Arbitrage aus result = executor.execute_arbitrage( symbol="BTC/USDT", market_data=mock_market, historical_funding=mock_history, capital=50000 # $50,000 Trading Capital ) print(f"Arbitrage Resultat:") print(f" Aktion: {result['action']}") print(f" Confidence: {result['prediction']['confidence']:.2%}") print(f" Latenz: {result['latency']}ms") print(f" Erwarteter Ertrag: ${result['expected_funding_earning']:.2f}")

Datenpipeline: Echtzeit-Funding-Rate-Sammlung


"""
Datenpipeline für Echtzeit-Funding-Rate-Sammlung
Optimiert für <100ms Round-Trip zu HolySheep
"""

import asyncio
import aiohttp
import ccxt
from typing import Dict, List
from collections import deque
import numpy as np

class FundingDataCollector:
    """
    Sammelt kontinuierlich Funding-Rate-Daten von mehreren Börsen
    """
    
    def __init__(self, lookback_hours: int = 168):  # 7 Tage
        self.lookback = lookback_hours
        self.exchanges = {
            'binance': ccxt.binance({'enableRateLimit': True}),
            'bybit': ccxt.bybit({'enableRateLimit': True}),
            'okx': ccxt.okx({'enableRateLimit': True})
        }
        self.funding_cache = {exchange: deque(maxlen=self.lookback) 
                             for exchange in self.exchanges}
        
    async def fetch_funding_rate(self, exchange_name: str, symbol: str) -> Dict:
        """Holt aktuellen Funding Rate für ein Symbol"""
        exchange = self.exchanges[exchange_name]
        
        try:
            market = exchange.market(symbol)
            funding = await exchange.fetch_funding_rate(symbol)
            
            return {
                'exchange': exchange_name,
                'symbol': symbol,
                'rate': funding['fundingRate'],
                'timestamp': funding['timestamp'],
                'next_funding': funding['nextFundingTime']
            }
        except Exception as e:
            print(f"Error fetching {exchange_name}/{symbol}: {e}")
            return None
    
    async def collect_all_rates(self, symbols: List[str]) -> List[Dict]:
        """Paralleles Sammeln aller Funding Rates"""
        tasks = []
        for exchange_name in self.exchanges:
            for symbol in symbols:
                tasks.append(self.fetch_funding_rate(exchange_name, symbol))
        
        results = await asyncio.gather(*tasks)
        return [r for r in results if r is not None]
    
    def calculate_arbitrage_opportunity(
        self, 
        rates: List[Dict]
    ) -> List[Dict]:
        """
        Berechnet Arbitrage-Möglichkeiten basierend auf 
        Funding-Rate-Differenzen zwischen Börsen
        """
        opportunities = []
        
        for i, rate_a in enumerate(rates):
            for rate_b in rates[i+1:]:
                if rate_a['symbol'] != rate_b['symbol']:
                    continue
                
                diff = abs(rate_a['rate'] - rate_b['rate'])
                
                # Arbitrage wenn Differenz > 0.01% (Transaktionskosten)
                if diff > 0.0001:
                    opportunities.append({
                        'symbol': rate_a['symbol'],
                        'long_exchange': rate_a['exchange'] if rate_a['rate'] < rate_b['rate'] else rate_b['exchange'],
                        'short_exchange': rate_b['exchange'] if rate_a['rate'] < rate_b['rate'] else rate_a['exchange'],
                        'rate_diff': diff,
                        'annualized_earning': diff * 3 * 365,  # 3x täglich
                        'timestamp': rate_a['timestamp']
                    })
        
        return sorted(opportunities, key=lambda x: x['rate_diff'], reverse=True)
    
    def prepare_training_data(
        self, 
        window_hours: int = 24
    ) -> Dict:
        """
        Bereitet Trainingsdaten für das KI-Modell vor
        Format: Vergangene Features → Nächster Funding Rate
        """
        features = []
        labels = []
        
        for exchange_name, history in self.funding_cache.items():
            if len(history) < window_hours + 1:
                continue
                
            for i in range(len(history) - window_hours - 1):
                window = list(history)[i:i+window_hours]
                next_rate = list(history)[i+window_hours+1]
                
                # Feature-Engineering
                feature_vector = {
                    'mean_funding': np.mean(window),
                    'std_funding': np.std(window),
                    'trend': window[-1] - window[0],
                    'volatility': np.percentile(window, 75) - np.percentile(window, 25),
                    'recent_max': max(window[-6:]),  # Letzte 6h
                    'recent_min': min(window[-6:])
                }
                
                features.append(feature_vector)
                labels.append(next_rate)
        
        return {'features': features, 'labels': labels}


===== HOLYSHEEP AI FINE-TUNING SETUP =====

def create_finetuning_dataset( training_data: Dict, holy_sheep_key: str ) -> str: """ Erstellt ein Fine-Tuning Dataset für HolySheep AI Speziell optimiert für Funding Rate Vorhersage """ training_examples = [] for feature, label in zip(training_data['features'], training_data['labels']): example = { "messages": [ { "role": "system", "content": """Du bist ein KI-Modell zur Vorhersage von Krypto-Funding-Rates. Analysiere historische Daten und vorher sage zukünftige Funding-Rate-Änderungen.""" }, { "role": "user", "content": f"""Analysiere folgende Funding-Rate-Daten: Durchschnitt: {feature['mean_funding']:.6f} Standardabweichung: {feature['std_funding']:.6f} Trend (24h): {feature['trend']:.6f} Volatilität: {feature['volatility']:.6f} Max (6h): {feature['recent_max']:.6f} Min (6h): {feature['recent_min']:.6f} Was ist die wahrscheinlich nächste Funding Rate?""" }, { "role": "assistant", "content": f"""{{"predicted_rate": {label:.6f}, "confidence": "high", "reasoning": "Basierend auf dem {('steigenden' if feature['trend'] > 0 else 'fallenden')} Trend"}}""" } ] } training_examples.append(example) # Speichere als JSONL für HolySheep Upload import json filepath = "funding_prediction_training.jsonl" with open(filepath, 'w') as f: for example in training_examples: f.write(json.dumps(example) + '\n') return filepath

===== BENCHMARK: HOLYSHEEP VS ANDERE APIs =====

BENCHMARK_RESULTS = { "HolySheep GPT-4.1": {"latency_ms": 52, "cost_per_1k": 0.008, "reliability": 99.9}, "OpenAI GPT-4o": {"latency_ms": 890, "cost_per_1k": 0.015, "reliability": 99.5}, "Anthropic Claude 3.5": {"latency_ms": 1200, "cost_per_1k": 0.015, "reliability": 99.7}, "Google Gemini 1.5": {"latency_ms": 650, "cost_per_1k": 0.0025, "reliability": 98.9} } print("API-Benchmark für Funding Rate Vorhersage:") for api, stats in BENCHMARK_RESULTS.items(): print(f" {api}: {stats['latency_ms']}ms, ${stats['cost_per_1k']}/1K tokens")

Geeignet / Nicht geeignet für

Geeignet fürNicht geeignet für
Professionelle Trader mit $10.000+ CapitalAnfänger mit weniger als $1.000
BTC/ETH Perpetual Arbitrage (hohe Liquidität)Altcoin-Pairs unter $10M Open Interest
Automatisiertes Trading 24/7Manuelles Trading mit emotionalen Entscheidungen
Entwickler mit Python/API-ErfahrungNicht-technische Trader ohne Programmierkenntnisse
Cross-Exchange Arbitrage (Binance/Bybit/OKX)Einzelne Börse mit limitierten Paaren
Langfristige, konsistente Returns (0,5-2% monatlich)Schnelle, spekulative Gewinne

Preise und ROI

KomponenteKosten (Monat)Ersparnis vs. Konkurrenz
HolySheep GPT-4.1 ($8/MTok)~$25-50 für 3M-6M Tokens85%+ günstiger als OpenAI
API Hosting (VPS)~$20-50Fixkosten
Exchange Gebühren~0.04% pro TradeBleibt gleich
Geschätzter ROI: Bei $50.000 Capital und 1% monatlich = $500 Gewinn

Break-Even-Analyse: Bei einer monatlichen Ersparnis von $150-200 durch HolySheep (im Vergleich zu OpenAI) und Trading-Einnahmen von $300-500 monatlich, liegt Ihr Break-Even bereits in Woche 1-2.

Warum HolySheep AI für Quantitative Strategien wählen

ModellPreis pro MTokLatenzEmpfehlung
GPT-4.1$8.00<60msHauptmodell für Vorhersagen
Claude Sonnet 4.5$15.00<80msBackup-Modell
Gemini 2.5 Flash$2.50<45msSchnelle Analysen
DeepSeek V3.2$0.42<35msBatch-Verarbeitung

Häufige Fehler und Lösungen

Fehler 1: Ignorieren der Transaktionskosten

Problem: Viele Trader berechnen Arbitrage-Gewinne ohne Einbezug von Gebühren, Slippage und Funding-Transfer-Kosten. Nach Abzug dieser Kosten wird die Strategie unprofitabel.


FALSCH: Nur Rohgewinn berechnen

gross_profit = funding_rate * position_size

RICHTIG: Nettogewinn mit allen Kosten

def calculate_net_profit(funding_rate: float, position_size: float, exchange_fee: float = 0.0004, slippage: float = 0.0002, transfer_fee: float = 0.0001) -> float: """ Berechnet Nettogewinn nach allen Kosten exchange_fee: 0.04% Maker/Taker (Binance Standard) slippage: Geschätzter Slippage bei Order-Ausführung transfer_fee: Cross-Exchange Transfer Gebühren """ gross = funding_rate * position_size total_costs = (exchange_fee * 2 + slippage * 2 + transfer_fee) * position_size net = gross - total_costs # Break-Even Check if net <= 0: print(f"⚠️ Trade nicht profitabel! Netto: ${net:.2f}") return 0 return net

Beispiel

net_profit = calculate_net_profit( funding_rate=0.000125, # 0.0125% position_size=50000, # $50,000 exchange_fee=0.0004, slippage=0.0002, transfer_fee=0.0001 ) print(f"Nettogewinn: ${net_profit:.2f}")

Fehler 2: Nichtbeachtung von Liquiditätslimits

Problem: Arbitrage-Strategien werden oft zu groß dimensioniert. Bei $100M Open Interest können Sie vielleicht nur $100.000-500.000 effektiv bewegen, bevor Slippage die Gewinne eliminiert.


FALSCH: Volles Kapital einsetzen

full_position = total_capital

RICHTIG: Liquiditätsangepasste Position

def calculate_max_position( total_capital: float, open_interest: float, target_slippage: float = 0.0001 ) -> float: """ Berechnet maximale Position basierend auf Liquidität Faustregel: Max 0.1-0.5% des Open Interest für <0.01% Slippage """ MAX_OI_PERCENT = 0.002 # 0.2% des OI max_by_oi = open_interest * MAX_OI_PERCENT # Zusätzlich: Max 20% des eigenen Kapitals pro Trade max_by_capital = total_capital * 0.20 final_position = min(max_by_oi, max_by_capital) print(f"Max Position: ${final_position:,.2f}") print(f" Limit by OI: ${max_by_oi:,.2f}") print(f" Limit by Capital: ${max_by_capital:,.2f}") return final_position

Usage

oi_btc_perp = 1_500_000_000 # $1.5B Open Interest max_pos = calculate_max_position( total_capital=50000, open_interest=oi_btc_perp )

Fehler 3: Fehlende Hedging-Logik bei Funding-Rate-Änderungen

Problem: Wenn sich der Funding Rate unerwartet umkehrt, können ungehedgte Positionen massive Verluste verursachen.


FALSCH: Statische Position ohne Monitoring

static_position = True

RICHTIG: Dynamisches Hedging mit automatischem Exit

class DynamicHedgeManager: """ Überwacht Funding-Rate-Änderungen und passt Positionen automatisch an """ def __init__(self, initial_funding_rate: float, entry_price: float): self.initial_funding = initial_funding_rate self.entry_price = entry_price self.initial_spread = abs(initial_funding_rate) self.max_spread_loss = 0.50 # 50% Spread-Verlust toleriert def check_hedge_status( self, current_funding_rate: float, current_price: float, holy_sheep_predictor ) -> Dict: """ Prüft ob Hedge noch profitabel ist und gibt Handlungsempfehlung """ spread_ratio = abs(current_funding_rate) / self.initial_spread # Hole KI-Einschätzung für Funding-Richtung prediction = holy_sheep_predictor.predict_funding_direction( market_data={'current_funding': current_funding_rate}, historical_funding=[self.initial_funding, current_funding_rate] ) response = { 'spread_ratio': spread_ratio, 'action': 'HOLD', 'reason': '' } if spread_ratio < 0.3: # Funding ist stark gesunken - Hedge schließen response['action'] = 'CLOSE_HEDGE' response['reason'] = f'Funding-Ratio auf {spread_ratio:.1%} gefallen' elif spread_ratio > 1.5: # Funding stark gestiegen - Position erhöhen? if prediction['prediction'] == 'up': response['action'] = 'INCREASE' response['reason'] = 'KI sagt steigendes Funding voraus' else: response['action'] = 'CLOSE_HEDGE' response['reason'] = 'Funding-Reversion erwartet' elif prediction['confidence'] < 0.5: # Niedrige Confidence - konservativ handeln response['action'] = 'REDUCE' response['reason'] = 'Unsichere Vorhersage - Position reduzieren' return response

Usage Example

hedge_manager = DynamicHedgeManager( initial_funding_rate=0.000125, entry_price=67500 ) status = hedge_manager.check_hedge_status( current_funding_rate=0.000080, current_price=67800, holy_sheep_predictor=predictor ) print(f"Aktion: {status['action']} - {status['reason']}")

Fehler 4: Unzureichende API-Rate-Limiting-Behandlung

Problem: Bei hochfrequenten Strategien führt unzureichendes Rate-Limiting zu API-Sperren und verpassten Trades.


import time
from functools import wraps
from threading import Lock

class RateLimitedAPI:
    """
    Thread-safe Rate Limiting für API-Calls
    """
    
    def __init__(self, calls_per_second: int = 10, burst: int = 20):
        self.calls_per_second = calls_per_second
        self.burst = burst
        self.tokens = burst
        self.last_update = time.time()
        self.lock = Lock()
        
    def acquire(self) -> bool:
        """Acquired ein Token, blockiert wenn nicht verfügbar"""
        with self.lock:
            now = time.time()
            # Refill tokens based on time passed
            elapsed = now - self.last_update
            self.tokens = min(self.burst, 
                            self.tokens + elapsed * self.calls_per_second)
            self.last_update = now
            
            if self.tokens >= 1:
                self.tokens -= 1
                return True
            return False
    
    def wait_and_acquire(self, timeout: float = 5.0) -> bool:
        """Wartet bis Token verfügbar ist"""
        start = time.time()
        while time.time() - start < timeout:
            if self.acquire():
                return True
            time.sleep(0.05)  # 50ms Wartezeit
        return False


def rate_limited(func):
    """Decorator für Rate-Limited Funktionen"""
    @wraps(func)
    def wrapper(*args, **kwargs):
        if not api_limiter.wait_and_acquire():
            raise Exception("Rate Limit erreicht - Request abgelehnt")
        return func(*args, **kwargs)
    return wrapper


Global limiter

api_limiter = RateLimitedAPI(calls_per_second=10, burst=20) @rate_limited def call_holysheep_api(prompt: str) -> dict: """Beispiel: Rate-limited HolySheep API Call""" response = requests.post( "https://api.holysheep.ai/v1/chat/completions", headers={"Authorization": f"Bearer {HOLYSHEEP_API_KEY}"}, json={"model": "gpt-4.1", "messages": [{"role": "user", "content": prompt}]} ) return response.json()

Backtesting-Strategie

Bevor Sie mit echtem Kapital handeln, testen Sie Ihre Strategie immer mit historischen Daten:

def backtest_arbitrage_strategy(
    historical_funding: pd.DataFrame,
    initial_capital: float,
    confidence_threshold: float = 0.65,
    lookback_hours: int = 24
) -> Dict:
    """
    Backtest der Arbitrage-Strategie auf historischen Daten
    """
    
    capital = initial_capital
    trades = []
    equity_curve = [capital]
    
    for i in range(lookback_hours, len(historical_funding)):
        # Simuliere KI-Vorhersage basierend auf historischem Trend
        window = historical_funding.iloc[i-lookback_hours:i]['funding_rate']
        
        # Einfache Vorhersage: Trend fortsetzen wenn stabil
        trend = window.diff().mean()
        volatility = window.std()
        
        if abs(trend) < volatility * 0.5:
            predicted_direction = 'stable'
            confidence = 0.5
        elif trend > 0:
            predicted_direction = 'up'
            confidence = min(0.9, abs(trend) / volatility)
        else:
            predicted_direction = 'down'
            confidence = min(0.9, abs(trend) / volatility)
        
        # Nur handeln wenn Confidence über Threshold
        if confidence < confidence_threshold:
            continue
        
        current_rate = historical_funding.iloc[i]['funding_rate']
        
        # Berechne Trade
        position_size = capital * 0.10  # 10% pro Trade
        
        if predicted_direction == 'up':
            # Verdiene positives Funding
            profit = position_size * current_rate
        else:
            profit = position_size * abs(current_rate)
        
        # Abzug von Gebühren
        costs = position_size * 0.001  # 0.1% Total-Gebühren
        net_profit = profit - costs
        
        capital += net_profit
        trades.append({
            '