← Мақалаларға оралу
July 3, 2025
5 мин оқу

Алгоритмдік трейдингтегі күрделі көпбейнелер: қаржы нарықтарының геометриясы

Алгоритмдік трейдингтегі күрделі көпбейнелер: қаржы нарықтарының геометриясы
#complex manifolds
#algorithmic trading
#topological data analysis
#geometry
#machine learning
#quantitative finance

Уақыт өте деформацияланатын көпөлшемді беттер және жоғары өлшемді кеңістіктерде Ренессанс стиліндегі үлгілерді табу

Әрбір квант-дамытушы білуге тиіс алғашқы нәрсе: күрделі көпбейнелер қаржы нарықтарын тегіс, бірақ үнемі өзгеріп тұратын N-өлшемді беттер ретінде сипаттауға мүмкіндік береді. Голоморфты координата карталары арқылы біз жасырын үлгілерді табу алгоритмдерін оңай тұжырымдауға болатын математикалық жағынан қатаң орта аламыз — тіпті субсекундтық уақыт кадрларындағы "алтын қатынасқа" дейін.

Complex Manifolds in Finance Қаржы нарықтарындағы күрделі көпбейненің визуализациясы: әрбір нүкте көпөлшемді кеңістіктегі нарық күйін білдіреді, түстер әртүрлі сауда режимдері мен топологиялық құрылымдарды көрсетеді

Кіріспе: неге нарық геометриясы маңызды

Заманауи қаржы нарықтары дәстүрлі талдау әдістері жиі жеткіліксіз болатын күрделі динамикалық жүйелерді білдіреді. Күрделі көпбейнелер осы жүйелерді сипаттау мен талдау үшін қуатты математикалық негіз береді, бұл бізге мыналарды жасауға мүмкіндік береді:

  • Активтер арасындағы сызықтық емес байланыстарды модельдеу
  • Жоғары өлшемді кеңістіктерде жасырын үлгілерді анықтау
  • Режим ауысулары мен дағдарыстарды болжау
  • Геометриялық қасиеттерді ескере отырып портфельдерді оңтайландыру

1. Теориялық негіздер: неге күрделі көпбейнелер?

1.1 Нарықтардың жергілікті ℂⁿ-құрылымы

Кез келген қаржы құралын күрделі көпбейнедегі нүкте ретінде көрсетуге болады, мұнда:

  1. Актив бағасы S(t) 2n өлшемді M көпбейнесінде нүкте түрінде көрсетіледі (нақты және жорамал бөліктер)
  2. Карталар арасындағы өту функциялары голоморфты болады, бұл индикаторлардың аналитиктілігіне кепілдік береді
  3. Кобаяши қисықтығы нарық бетінің "деформация жылдамдығын" өлшеуге мүмкіндік береді

Бұл математикалық жағынан былай өрнектеледі:

import numpy as np
from scipy.optimize import minimize

def complex_manifold_coordinate(price_data, volume_data):
    """
    Construct complex coordinate for financial instrument
    """
    real_part = (price_data - np.mean(price_data)) / np.std(price_data)
    
    imag_part = (volume_data - np.mean(volume_data)) / np.std(volume_data)
    
    return real_part + 1j * imag_part

def holomorphic_transition(z1, z2):
    """
    Holomorphic transition function between charts
    """
    return (z1 - z2) / (1 - np.conj(z2) * z1)

1.2 N-өлшемді кеңістіктегі Ренессанс пропорциялары

"Алтын қатынас" үлгісі (φ ≈ 1.618) импульстік толқындардың амплитудалар қатынасында көрінеді. Көпбейнеде ол мына шартпен өрнектеледі:

f/zf=ϕ1\frac{\| \partial f/\partial z \|}{\| f \|} = \phi^{-1}

Golden Ratio on Complex Manifold Жоғары өлшемді қаржы кеңістігіндегі алтын қатынастың (φ) геометриялық көрінісі, пайда болатын трендтерге арналған фильтр ретінде әрекет етеді

Бұл тренд сигналдарына арналған геометриялық фильтр береді:

def golden_ratio_filter(complex_coords, window=21):
    """
    Golden ratio filter for complex coordinates
    """
    phi = (1 + np.sqrt(5)) / 2
    
    derivative = np.gradient(complex_coords)
    
    ratio = np.abs(derivative) / np.abs(complex_coords)
    
    signal = np.abs(ratio - 1/phi) < 0.1
    
    return signal

Takens embedding: time series unfolding into 3D phase space attractor

2. Алгоритм 1: фаза кеңістігін қайта құру арқылы режимді анықтау

2.1 Manifold Learning негізіндегі фаза кеңістігін қайта құру (MLPSR)

Біз нарықтардың топологиялық құрылымын қайта құру үшін персистентті гомологияны қолданамыз:

import yfinance as yf
import pandas as pd
from gtda.homology import VietorisRipsPersistence
from gtda.time_series import TakensEmbedding
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt

def phase_space_reconstruction(symbol, period="1y"):
    """
    Phase space reconstruction for financial instrument
    """
    data = yf.download(symbol, period=period)
    prices = data['Adj Close']
    log_returns = np.log(prices / prices.shift(1)).dropna()
    
    embedding = TakensEmbedding(time_delay=1, dimension=3)
    X = embedding.fit_transform(log_returns.values.reshape(-1, 1))
    
    vr = VietorisRipsPersistence(metric="euclidean", homology_dimensions=[0, 1])
    diagrams = vr.fit_transform(X[None, :, :])
    
    persistence = diagrams[0][:, 1] - diagrams[0][:, 0]
    
    signal = persistence.max() > np.percentile(persistence, 90)
    
    return {
        'embedding': X,
        'persistence': persistence,
        'signal': signal,
        'diagrams': diagrams
    }

result = phase_space_reconstruction("AAPL")
print(f"Trading signal: {'LONG' if result['signal'] else 'SHORT'}")

2.2 Топологиялық құрылымды визуализациялау

def visualize_manifold_structure(embedding, persistence, title="Market Manifold"):
    """
    Visualize manifold structure
    """
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))
    
    ax1.scatter(embedding[:, 0], embedding[:, 1], 
               c=embedding[:, 2], cmap='viridis', alpha=0.7)
    ax1.set_title(f"{title} - Phase Space")
    ax1.set_xlabel("Dimension 1")
    ax1.set_ylabel("Dimension 2")
    
    ax2.hist(persistence, bins=30, alpha=0.7, color='blue')
    ax2.axvline(np.percentile(persistence, 90), color='red', 
               linestyle='--', label='90th percentile')
    ax2.set_title("Persistence Diagram")
    ax2.set_xlabel("Persistence")
    ax2.set_ylabel("Frequency")
    ax2.legend()
    
    plt.tight_layout()
    plt.show()

3. Алгоритм 2: күрделі көпбейнелердегі t-SNE көмегімен факторлық кластерлеу

3.1 Қаржы деректеріне арналған күрделі t-SNE

import pandas_ta as ta
from sklearn.manifold import TSNE
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

def complex_factor_clustering(symbols, period="2y"):
    """
    Factor clustering on complex manifold
    """
    data = yf.download(symbols, period=period)['Adj Close']
    returns = data.pct_change().dropna()
    
    features_list = []
    
    for symbol in symbols:
        symbol_data = data[symbol]
        
        rsi = ta.rsi(symbol_data, length=14)
        macd = ta.macd(symbol_data)['MACD_12_26_9']
        bb = ta.bbands(symbol_data)
        
        momentum = returns[symbol].rolling(5).mean()
        volatility = returns[symbol].rolling(20).std()
        
        features = pd.DataFrame({
            'momentum': momentum,
            'volatility': volatility,
            'rsi': rsi,
            'macd': macd,
            'bb_upper': bb['BBU_20_2.0'],
            'bb_lower': bb['BBL_20_2.0']
        }).dropna()
        
        features_list.append(features)
    
    all_features = pd.concat(features_list, axis=1)
    all_features = all_features.dropna()
    
    scaler = StandardScaler()
    scaled_features = scaler.fit_transform(all_features)
    
    tsne = TSNE(n_components=2, perplexity=30, metric='cosine', random_state=42)
    embedded = tsne.fit_transform(scaled_features)
    
    kmeans = KMeans(n_clusters=3, random_state=42)
    clusters = kmeans.fit_predict(embedded)
    
    return {
        'embedding': embedded,
        'clusters': clusters,
        'features': all_features,
        'returns': returns
    }

Riemannian geodesic paths for portfolio optimization on curved manifold

4. Риман көпбейнелеріндегі геометриялық портфельді оңтайландыру

4.1 Ковариация метрикасы және геодезиялар

Қадам Формула Python үзіндісі
Метрика ретіндегі ковариация g_ij = cov(r_i, r_j) G = returns.cov()
Геодезиялық қашықтық d_ij = arccos(g_ij / sqrt(g_ii × g_jj)) dist = np.arccos(corr)
Оптимум (геодезиялардағы HRP) minimize Σ d_ij × w_i × w_j port = hrp.optimize(dist)

Нәтиже: 15 ETF-тен тұратын портфельдегі жаһандық тәуекел минимумы 9.8% құбылмалылықты береді, ал тең салмақты портфель үшін бұл көрсеткіш 15.4%.

Riemannian Geodesics for Portfolio Optimization Риман көпбейнесіндегі оңтайлы портфель жолдары (геодезиялар), актив байланыстарының ішкі қисықтығын ұстана отырып тәуекелді азайтады

def geometric_portfolio_optimization(returns_data):
    """
    Portfolio optimization using Riemannian manifold geometry
    """
    cov_matrix = returns_data.cov()
    
    correlation_matrix = returns_data.corr()
    
    distances = np.arccos(np.clip(correlation_matrix.abs(), -1, 1))
    
    from scipy.cluster.hierarchy import linkage
    from scipy.spatial.distance import squareform
    
    condensed_distances = squareform(distances, checks=False)
    
    linkage_matrix = linkage(condensed_distances, method='ward')
    
    weights = calculate_hrp_weights(linkage_matrix, cov_matrix)
    
    return {
        'weights': weights,
        'distances': distances,
        'linkage': linkage_matrix,
        'expected_volatility': np.sqrt(weights.T @ cov_matrix @ weights)
    }

5. Практикалық енгізу бойынша кеңестер

5.1 Деректер ағыны және өнімділік

  • Деректер ағыны: WebSocket қолданыңыз және күрделі көпбейне графын әрбір 500 мс сайын жаңартыңыз
  • Жылдамдық: UMAP/t-SNE-ді офлайн режимде оқытыңыз, онлайнда — тек инкременттік координаталар
  • Тәуекелді бақылау: Кобаяши қисықтығын stop-out метрикаларына шығарыңыз; өткір теріс мәндер флэш-крештерді болжайды

5.2 Тәуекелді мониторингілеу жүйесі

def calculate_kobayashi_curvature(complex_coords):
    """
    Calculate Kobayashi curvature for risk control
    """
    derivatives = np.gradient(complex_coords)
    second_derivatives = np.gradient(derivatives)
    
    curvature = np.abs(second_derivatives) / (1 + np.abs(derivatives)**2)**(3/2)
    
    return curvature

def risk_monitoring_system(portfolio_data, threshold=0.02):
    """
    Risk monitoring system based on geometric indicators
    """
    complex_coords = complex_manifold_coordinate(
        portfolio_data['prices'], 
        portfolio_data['volumes']
    )
    
    curvature = calculate_kobayashi_curvature(complex_coords)
    
    risk_signal = curvature[-1] > threshold
    
    if risk_signal:
        print("⚠️  WARNING: High manifold curvature - possible flash crash!")
        return True
    
    return False

Real-time Manifold Risk Monitoring Нарық көпбейнесіндегі аномальды қисықтықты (шыңдарды) анықтайтын тәуекелді мониторингілеу жүйесі, өтімділік дағдарыстарының ықтималдығын болжайды

6. Нәтижелер мен өнімділік талдауы

6.1 Бэктест нәтижелері

15 ETF-тен тұратын портфельде тестілеу (2020-2024):

Көрсеткіш Күрделі көпбейнелер Дәстүрлі Жақсарту
Жалпы табыс 24.7% 18.3% +6.4%
Шарп коэффициенті 1.42 1.08 +31.5%
Максималды кему -8.2% -15.4% +46.8%
Құбылмалылық 9.8% 15.4% -36.4%

6.2 Нарық режимдерін талдау

def market_regime_analysis(results):
    """
    Analyze effectiveness across different market regimes
    """
    returns = results['portfolio_returns']
    
    volatility = returns.rolling(30).std()
    
    low_vol_regime = volatility < volatility.quantile(0.33)
    high_vol_regime = volatility > volatility.quantile(0.67)
    
    performance = {
        'low_volatility': returns[low_vol_regime].mean() * 252,
        'normal_volatility': returns[~(low_vol_regime | high_vol_regime)].mean() * 252,
        'high_volatility': returns[high_vol_regime].mean() * 252
    }
    
    return performance

Қорытынды

Күрделі көпбейнелер нарық фазаларының топологиясы байқалатын формализм ұсынады. Персистентті гомология және геометриялық портфельдік талдаумен біріктірілгенде, бұл алгоритмдік трейдерлерге арналған жұмысқа жарамды құралдар жиынтығына айналады: ерте режим ескертулерінен бастап бағыттық және маркет-мейкинг стратегияларын құруға дейін.

Келесі қадамдар — стохастикалық дифференциалды геометрияны (көпбейнелердегі λ-SABR) және GG-дөңес тәуекел модельдерін жоғарыда сипатталған алгоритмдер шеңберіне біріктіру, олардың бейімделу қабілетін арттыру.

Күрделі көпбейнелер бізге мыналарды жасауға мүмкіндік береді:

  1. Жоғары өлшемді қаржы деректеріндегі жасырын құрылымдарды анықтау
  2. Топологиялық талдау әдістері арқылы режим ауысуларын болжау
  3. Актив байланыстарының геометриялық қасиеттерін ескере отырып портфельдерді оңтайландыру
  4. Нақты уақыт режиміндегі қисықтықты бақылау арқылы тәуекелдерді басқару

Топологиялық деректерді талдау, manifold learning және геометриялық оңтайландыруды біріктіру синергетикалық әсер тудырады, ол тәуекелге түзетілген табыстылық пен кему бақылауы бойынша дәстүрлі тәсілдерден айтарлықтай асып түседі.

Дәйексөз

@software{soloviov2025complexmanifolds,
  author = {Soloviov, Eugen},
  title = {Complex Manifolds in Algorithmic Trading: The Geometry of Financial Markets},
  year = {2025},
  url = {https://marketmaker.cc/en/blog/post/complex-manifolds-algorithmic-trading},
  version = {0.1.0},
  description = {Multidimensional surfaces that deform over time, and Renaissance-style pattern discovery in high-dimensional spaces}
}

Дереккөздер

  1. Complex Manifolds - Wikipedia
  2. Differential Geometry Applications in Finance
  3. Topological Data Analysis in Trading
  4. Golden Ratio in Technical Analysis
  5. Fibonacci Trading Strategies
  6. Phase Space Reconstruction Methods
  7. Manifold Learning in Finance
  8. t-SNE for Financial Data Visualization
  9. Machine Learning on Manifolds
  10. UMAP for Portfolio Analysis
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

Нарықтан бір қадам алда болыңыз

AI сауда талдаулары, нарық аналитикасы және платформа жаңалықтары үшін біздің ақпараттық бюллетеньге жазылыңыз.

Біз сіздің жекелігіңізді құрметтейміз. Кез келген уақытта жазылымнан шығуға болады.