/
desmitry
/
market-data-analysis
Обзор
Документация
Войти
/
desmitry
/
market-data-analysis
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/analyzer.py
40 строк
1 KB
desmitry
Create project
25 ноя 2025, 09:14
25 ноя 2025, 09:14
c2a71d5
Код
Авторство
О чём код?
import numpy as np from scipy.stats import gaussian_kde from statsmodels.stats.weightstats import DescrStatsW def compute_stats(x): """Computes mean and standard deviation.""" return np.mean(x), np.std(x, ddof=1) def compute_weighted_stats(x, w): """Computes weighted mean and std.""" s = DescrStatsW(x, weights=w, ddof=1) return s.mean, s.std def calculate_kde_probability(returns, target_value): """ Calculates the probability of a return < target_value using Gaussian KDE integration. """ if len(returns) < 10: return 0.0 positive_x = [i for i in returns if i > 0] if not positive_x: return 0.0 # Handling zero/positive split logic from notebook p_zero = (len(returns) - len(positive_x)) / len(returns) try: log_pos_x = np.log(positive_x) kde = gaussian_kde(log_pos_x, bw_method="scott") if target_value <= 0: return p_zero log_target = np.log(target_value) prob = kde.integrate_box_1d(-np.inf, log_target) return p_zero + (1 - p_zero) * prob except Exception: return 0.0