← Zurück zu den Artikeln
July 29, 2025
5 min read

Diffusionsmodelle vs. Kryptowährungs-Anarchie: Warum DDPM Bitcoin-Crashs besser vorhersagen kann als Ihr Astrologe

Diffusionsmodelle vs. Kryptowährungs-Anarchie: Warum DDPM Bitcoin-Crashs besser vorhersagen kann als Ihr Astrologe
#diffusion models
#cryptocurrency
#forecasting
#machine learning
#Bitcoin
#DDPM
#time series
🧠
Part 2 of 4 · Collection
Deep Learning for Markets

Statt eines Vorworts: Wenn klassisches Machine Learning kapituliert

Kryptowährungsmärkte sind der Ort, an dem traditionelle Prognosemethoden sterben. LSTM-Modelle werden angesichts der Volatilität von Bitcoin nervös, ARIMA-Modelle bekommen bei den scharfen Sprüngen von Ethereum Hysterie, und klassische neuronale Netze geben schlicht auf, sobald sie den Chart von Dogecoin sehen. Und dann betreten Diffusionsmodelle die Bühne — eine Technologie, die Computern ursprünglich beibrachte, Katzen zu zeichnen, und die nun versucht vorherzusagen, wann Bitcoin sich für den nächsten "Schwarzen Montag" entscheidet.

Amüsanterweise wird die Architektur, die Stable Diffusion und DALL-E hervorgebracht hat, inzwischen aktiv für die Analyse finanzieller Zeitreihen eingesetzt. Und wissen Sie was? Sie funktioniert erstaunlich gut. Besonders dann, wenn klassische Ansätze angesichts extremer Kryptowährungsvolatilität zu halluzinieren beginnen.

Market Chaos vs Diffusion Signal Vom Chaos zur Klarheit: Wie Diffusionsmodelle strukturierte Signale aus dem stark verrauschten Umfeld der Kryptowährungsmärkte extrahieren

Warum funktionieren Diffusionsmodelle überhaupt mit Zeitreihen?

Diffusionsmodelle sind eine Klasse generativer Modelle, die lernen, Originaldaten aus Rauschen durch einen Prozess des sequentiellen "Entrauschens" wiederherzustellen. Die Grundidee ist einfach: Man nimmt reale Daten, fügt ihnen schrittweise Gaußsches Rauschen hinzu, bis nur noch reines Rauschen übrig bleibt, und trainiert dann ein neuronales Netz darauf, diesen Prozess umzukehren.

Im Kontext finanzieller Zeitreihen bedeutet das, dass das Modell lernt, Signal von Rauschen im buchstäblichen Sinne zu trennen. Kryptowährungsmärkte sind für ihre extreme Verrauschtheit bekannt — zufällige Tweets von Elon Musk, panische Verkäufe, FOMO-Käufe. Ein Diffusionsmodell kann lernen, strukturelle Muster durch dieses ganze Chaos hindurch zu "erkennen".

Mathematisch sieht der Prozess folgendermaßen aus:

  • Vorwärtsprozess: q(xtxt1)=N(xt;1βtxt1,βtI)q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)
  • Rückwärtsprozess: pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t))p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))

wobei βt\beta_t der Rauschplan (Noise Schedule) ist und θ\theta die Parameter des neuronalen Netzes sind.

Diffusion Process for Time Series Sequentielles Entrauschen: Der Vorwärtsprozess (Hinzufügen von Rauschen) und der Rückwärtsprozess (Entrauschen) zur Rekonstruktion finanzieller Zeitreihen

Konkrete Bibliotheken und fertige Lösungen

1. Diffusion-TS: Der Allrounder für Zeitreihen

GitHub: Y-debug-sys/Diffusion-TS

Dies ist die Flaggschiff-Bibliothek für die Arbeit mit Diffusionsmodellen für Zeitreihen, veröffentlicht auf der ICLR 2024. Der Hauptvorteil ist, dass sie sowohl bedingt (Prognose) als auch unbedingt (Generierung) arbeitet.

import torch
from diffusion_ts import DiffusionTS
import pandas as pd

btc_data = pd.read_csv('btc_prices.csv')
prices = torch.tensor(btc_data['close'].values).float()

model = DiffusionTS(
    input_dim=1,
    hidden_dim=64,
    num_layers=4,
    max_sequence_length=100,
    num_diffusion_steps=1000
)

model.fit(prices, epochs=100)

forecast = model.predict(prices[-100:], forecast_horizon=24)

Das Modell verwendet einen Encoder-Decoder-Transformer mit getrennten zeitlichen Repräsentationen, wobei die Zerlegung hilft, die semantische Bedeutung der Zeitreihe zu erfassen.

2. TSDiff: Amazons Ansatz für das Kryptowährungs-Chaos

GitHub: amazon-science/unconditional-time-series-diffusion

Amazon Research hat TSDiff vorgeschlagen — ein unbedingtes Diffusionsmodell, das über einen Self-Guidance-Mechanismus auch für Prognosen eingesetzt werden kann. Die Besonderheit besteht darin, dass das Modell keine zusätzlichen Netzwerke für die Konditionierung benötigt.

from tsdiff import TSDiff
import numpy as np

crypto_data = load_cryptocurrency_data(['BTC', 'ETH', 'LTC'])

tsdiff = TSDiff(
    input_size=crypto_data.shape[-1],
    hidden_size=128,
    num_layers=6,
    diffusion_steps=1000,
    beta_schedule='cosine'
)

tsdiff.train(crypto_data, num_epochs=200)

synthetic_crypto = tsdiff.sample(num_samples=1000, length=365)

forecast = tsdiff.forecast_with_guidance(
    context=crypto_data[-30:],  # last 30 days
    forecast_length=7,          # week forecast
    guidance_scale=2.0
)

3. FinDiff: Tabellarische Finanzdaten treffen auf Diffusion

Paper: FinDiff wurde speziell für die Generierung synthetischer tabellarischer Finanzdaten entwickelt. Geeignet für die Erstellung vielfältiger Marktszenarien.

import torch
from findiff import FinancialDiffusion

market_data = pd.read_csv('crypto_market_features.csv')

financial_features = [
    'price', 'volume', 'market_cap', 'volatility',
    'rsi', 'macd', 'bollinger_bands'
]

findiff = FinancialDiffusion(
    categorical_columns=['exchange', 'crypto_type'],
    numerical_columns=financial_features,
    embedding_dim=32,
    hidden_dim=256
)

findiff.fit(market_data[financial_features])

synthetic_scenarios = findiff.generate(n_samples=10000)

stress_test_data = findiff.generate_conditional(
    conditions={'volatility': '>0.8'}  # high volatility
)

4. Schnelle Implementierung mit pytorch-forecasting

Für alle, die Diffusionsmodelle schnell in Kombination mit bewährten Architekturen ausprobieren möchten:

import lightning.pytorch as pl
from pytorch_forecasting import TimeSeriesDataSet, TemporalFusionTransformer
from diffusion_wrapper import DiffusionTFT  # hypothetical wrapper

crypto_df = pd.read_csv('hourly_crypto_data.csv')

training = TimeSeriesDataSet(
    crypto_df,
    time_idx="hour",
    target="btc_price",
    group_ids=["crypto_pair"],
    max_encoder_length=168,  # week back
    max_prediction_length=24,  # day forward
    time_varying_unknown_reals=["price", "volume", "volatility"],
    time_varying_known_reals=["hour_of_day", "day_of_week"],
)

diffusion_tft = DiffusionTFT.from_dataset(
    training,
    hidden_size=64,
    attention_head_size=4,
    diffusion_steps=100,
    noise_schedule='linear'
)

trainer = pl.Trainer(max_epochs=50, accelerator="gpu")
trainer.fit(diffusion_tft, train_dataloaders=training.to_dataloader(train=True))

Praktische Ergebnisse: Diffusion vs. Klassiker

Studien zeigen bemerkenswerte Ergebnisse. Im Paper "Prediction of Cryptocurrency Prices through a Path Dependent Monte Carlo Simulation" verwenden die Autoren Mertons Sprungdiffusionsmodell — eine Hybridlösung aus stochastischen Prozessen und Machine Learning. Das Ergebnis? Das Modell konnte sowohl allmähliche Preisänderungen als auch die für Kryptowährungsmärkte typischen scharfen Sprünge erfassen.

Eine weitere Studie zeigte, dass ADE-TFT (Advanced Deep Learning-Enhanced Temporal Fusion Transformer) mit Diffusionskomponenten klassische Ansätze bei den Metriken MAPE, MSE und RMSE deutlich übertrifft. Besonders beeindruckend sind die Ergebnisse bei der Konfiguration mit 8 versteckten Schichten.

Forecasting with Confidence Intervals Probabilistische Prognose: Verwendung von Diffusionsmodellen zur Generierung zukünftiger Preispfade mit zugehörigen Konfidenzintervallen

Die Schattenseite von Diffusionsmodellen im Finanzbereich

Aber seien wir ehrlich. Diffusionsmodelle sind kein Allheilmittel. Sie haben ernsthafte Probleme:

1. Rechenhunger

Das Training eines Diffusionsmodells auf Kryptowährungsdaten erfordert erhebliche Rechenressourcen. Wenn Ihr Modell 1000 Diffusionsschritte durchführt, benötigen Sie für eine einzige Prognose 1000 Durchläufe durch das neuronale Netz. Das eignet sich nicht besonders für Hochfrequenzhandel.

2. Das Problem der Schwarzen Schwäne

Kryptowährungsmärkte sind bekannt für extreme Ereignisse — ein 50-prozentiger Absturz an einem Tag, ein Kryptowährungsverbot in China, der Hack einer großen Börse. Diffusionsmodelle, die auf historischen Daten trainiert wurden, sagen solche Ereignisse nur schlecht voraus.

3. Regimeabhängigkeit

Kryptowährungsmärkte weisen verschiedene Verhaltensregime auf — Bullenmarkt, Bärenmarkt, Seitwärtsbewegung. Ein Diffusionsmodell kann in einem Regime hervorragend funktionieren und in einem anderen völlig versagen.

Optimierung und Beschleunigung: Wie man auf der GPU nicht bankrottgeht

Token Merging für Diffusion

GitHub: dbolya/tomesd

Die Token-Merging-Bibliothek ermöglicht es, Diffusionsmodelle um das 1,24-Fache zu beschleunigen, ohne Qualitätseinbußen, indem redundante Tokens zusammengeführt werden:

import tomesd
from diffusion_model import CryptoDiffusion

model = CryptoDiffusion(...)

tomesd.apply_patch(model, ratio=0.7)  # remove 30% of tokens

forecast = model.predict(btc_data)

Cached Adaptive Token Merging

GitHub: omidiu/ca_tome

CA-ToMe kombiniert räumliche und zeitliche Optimierung, was für Zeitreihen besonders wichtig ist:

from ca_tome import apply_ca_tome

apply_ca_tome(
    model, 
    threshold=0.7,
    caching_steps=[0, 10, 20, 30, 40]  # cache every 10 steps
)

Praktisches Beispiel: Vollständige Pipeline für Bitcoin

Hier ist ein realistisches Beispiel für die Verwendung von Diffusionsmodellen zur Bitcoin-Prognose:

import torch
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from diffusion_ts import DiffusionTS

class CryptoDiffusionPipeline:
    def __init__(self, sequence_length=100, forecast_horizon=24):
        self.sequence_length = sequence_length
        self.forecast_horizon = forecast_horizon
        self.scaler = MinMaxScaler()
        self.model = None
        
    def prepare_data(self, crypto_data):
        """Data preparation considering cryptocurrency features"""
        crypto_data['returns'] = crypto_data['close'].pct_change()
        crypto_data['volatility'] = crypto_data['returns'].rolling(24).std()
        crypto_data['rsi'] = self.compute_rsi(crypto_data['close'])
        
        features = ['close', 'volume', 'volatility', 'rsi']
        scaled_data = self.scaler.fit_transform(crypto_data[features])
        
        return scaled_data
    
    def train_model(self, data):
        """Training diffusion model"""
        self.model = DiffusionTS(
            input_dim=data.shape[1],
            hidden_dim=128,
            num_layers=6,
            diffusion_steps=1000,
            noise_schedule='cosine',
            loss_type='l2'
        )
        
        X, y = self.create_sequences(data)
        
        self.model.fit(
            X, y,
            epochs=200,
            batch_size=32,
            learning_rate=1e-4,
            validation_split=0.2
        )
    
    def forecast(self, recent_data):
        """Forecasting with confidence intervals"""
        predictions = []
        
        for _ in range(100):  # Monte Carlo sampling
            pred = self.model.sample_forecast(
                context=recent_data[-self.sequence_length:],
                horizon=self.forecast_horizon
            )
            predictions.append(pred)
        
        predictions = np.array(predictions)
        
        mean_pred = np.mean(predictions, axis=0)
        std_pred = np.std(predictions, axis=0)
        
        return {
            'forecast': mean_pred,
            'confidence_95': mean_pred + 1.96 * std_pred,
            'confidence_5': mean_pred - 1.96 * std_pred
        }

pipeline = CryptoDiffusionPipeline()
btc_data = pd.read_csv('btc_hourly.csv')

prepared_data = pipeline.prepare_data(btc_data)
pipeline.train_model(prepared_data)

forecast_result = pipeline.forecast(prepared_data)
print(f"Bitcoin forecast for next 24h: {forecast_result['forecast'][-1]:.2f}")

Wann sollten Sie Diffusionsmodelle einsetzen?

Lohnt sich, wenn:

  • Sie über umfangreiche historische Daten verfügen (mindestens ein Jahr stündlicher Daten)
  • Sie sich langes Training leisten können (Tage bis Wochen auf der GPU)
  • Sie synthetische Szenariogenerierung für Backtesting benötigen
  • Sie mit multivariaten Zeitreihen arbeiten
  • Die Unsicherheitsschätzung von Prognosen wichtig ist

Lohnt sich nicht, wenn:

  • Sie schnelle Prognosen in Echtzeit benötigen
  • Sie mit kurzen Zeitreihen arbeiten
  • Ihre Rechenressourcen begrenzt sind
  • Die Interpretierbarkeit des Modells entscheidend ist

Die Zukunft der Diffusionsmodelle in der Krypto-Analytik

Diffusionsmodelle im Finanzwesen sind wie Kryptowährungen im Jahr 2010. Die Technologie ist noch roh und ressourcenintensiv, aber das Potenzial ist enorm. Wir sehen bereits hybride Ansätze: DDPM + Transformer, Diffusion + Reinforcement Learning, bedingte Diffusion für Marktregime.

Der nächste Durchbruch wird bei der multimodalen Diffusion erwartet — Modelle, die nicht nur Preise, sondern auch Nachrichten, soziale Signale und On-Chain-Metriken berücksichtigen. Stellen Sie sich ein Diffusionsmodell vor, das die Korrelation zwischen einem Tweet von Elon Musk und der Bewegung von Dogecoin "sieht".

Fazit: Diffusion als Evolution, nicht als Revolution

Diffusionsmodelle werden klassische Ansätze zur Kryptowährungsprognose nicht ersetzen. Sie werden sie ergänzen. LSTM bleibt für schnelle Prognosen zuständig, ARIMA für stationäre Abschnitte, und Diffusion übernimmt die Szenariogenerierung sowie die Arbeit mit extremer Volatilität.

Die wichtigste Lehre: In der Welt der Kryptowährungen gibt es keine Allheilmittel. Es gibt nur eine kluge Kombination von Werkzeugen, tiefes Marktverständnis und gesunde Skepsis gegenüber jeder "revolutionären" Lösung. Diffusionsmodelle sind ein mächtiges Werkzeug, aber denken Sie daran: Sie versuchen lediglich, Muster im Chaos zu finden. Und das Chaos, wie wir wissen, lässt sich nicht gerne vorhersagen.

P.S.: Wenn Ihr Diffusionsmodell bei der Bitcoin-Prognose eine Genauigkeit von 95 % anzeigt — überprüfen Sie den Code zweimal. Höchstwahrscheinlich gibt es irgendwo ein Data Leakage 😉

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Dem Markt einen Schritt voraus

Abonniere unseren Newsletter für exklusive KI-Trading-Einblicke, Marktanalysen und Plattform-Updates.

Wir respektieren deine Privatsphäre. Jederzeit abbestellbar.