Files
btc_price_anany/output/all_results.json
riba2534 277a5f067d Add comprehensive BTC/USDT price analysis framework with 17 modules
Complete statistical analysis pipeline covering:
- FFT spectral analysis, wavelet CWT, ACF/PACF autocorrelation
- Returns distribution (fat tails, kurtosis=15.65), GARCH volatility modeling
- Hurst exponent (H=0.593), fractal dimension, power law corridor
- Volume-price causality (Granger), calendar effects, halving cycle analysis
- Technical indicator validation (0/21 pass FDR), candlestick pattern testing
- Market state clustering (K-Means/GMM), Markov chain transitions
- Time series forecasting (ARIMA/Prophet/LSTM benchmarks)
- Anomaly detection ensemble (IF+LOF+COPOD, AUC=0.9935)

Key finding: volatility is predictable (GARCH persistence=0.973),
but price direction is statistically indistinguishable from random walk.

Includes REPORT.md with 16-section analysis report and future projections,
70+ charts in output/, and all source modules in src/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:29:54 +08:00

44 lines
13 KiB
JSON

{
"indicators": {
"train_results": " n_buy n_sell ... ic_rejected any_fdr_pass\nindicator ... \nSMA_5_20 47.0 48.0 ... False False\nEMA_5_20 53.0 54.0 ... False False\nSMA_10_50 21.0 22.0 ... False False\nEMA_10_50 19.0 20.0 ... False False\nSMA_20_100 7.0 8.0 ... False False\nEMA_20_100 9.0 10.0 ... False False\nSMA_50_200 4.0 5.0 ... False False\nEMA_50_200 6.0 7.0 ... False False\nRSI_7_30_70 66.0 78.0 ... False False\nRSI_7_25_75 48.0 62.0 ... False False\nRSI_7_20_80 21.0 41.0 ... False False\nRSI_14_30_70 24.0 47.0 ... False False\nRSI_14_25_75 15.0 27.0 ... False False\nRSI_14_20_80 4.0 17.0 ... False False\nRSI_21_30_70 14.0 29.0 ... False False\nRSI_21_25_75 4.0 16.0 ... False False\nRSI_21_20_80 2.0 11.0 ... False False\nMACD_12_26_9 65.0 65.0 ... False False\nMACD_8_17_9 92.0 92.0 ... False False\nMACD_5_35_5 123.0 123.0 ... False False\nBB_20_2 39.0 59.0 ... False False\n\n[21 rows x 23 columns]",
"val_results": " n_buy n_sell ... ic_rejected any_fdr_pass\nindicator ... \nSMA_5_20 21.0 21.0 ... False False\nEMA_5_20 17.0 17.0 ... False False\nSMA_10_50 7.0 7.0 ... False False\nEMA_10_50 8.0 8.0 ... False False\nSMA_20_100 4.0 4.0 ... False False\nEMA_20_100 3.0 3.0 ... False False\nSMA_50_200 2.0 1.0 ... False False\nEMA_50_200 2.0 1.0 ... False False\nRSI_7_30_70 16.0 27.0 ... False False\nRSI_7_25_75 9.0 16.0 ... False False\nRSI_7_20_80 4.0 17.0 ... False False\nRSI_14_30_70 4.0 17.0 ... False False\nRSI_14_25_75 3.0 6.0 ... False False\nRSI_14_20_80 1.0 7.0 ... False False\nRSI_21_30_70 1.0 7.0 ... False False\nRSI_21_25_75 0.0 9.0 ... False False\nRSI_21_20_80 0.0 7.0 ... False False\nMACD_12_26_9 22.0 23.0 ... False False\nMACD_8_17_9 28.0 29.0 ... False False\nMACD_5_35_5 42.0 43.0 ... False False\nBB_20_2 12.0 26.0 ... False False\n\n[21 rows x 23 columns]",
"fdr_passed_train": [],
"fdr_passed_val": [],
"permutation_results": {
"RSI_14_30_70": {
"observed_diff": -0.004977440100087348,
"perm_pval": 0.5664335664335665
},
"RSI_14_25_75": {
"observed_diff": -0.03017610738336842,
"perm_pval": 0.014985014985014986
},
"RSI_21_30_70": {
"observed_diff": -0.012247499113796413,
"perm_pval": 0.2677322677322677
},
"RSI_7_25_75": {
"observed_diff": -0.014302431427126703,
"perm_pval": 0.02097902097902098
},
"RSI_21_20_80": {
"observed_diff": -0.0252918754365221,
"perm_pval": 0.3026973026973027
}
},
"all_signals": "{'SMA_5_20': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'EMA_5_20': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'SMA_10_50': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'EMA_10_50': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'SMA_20_100': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'EMA_20_100': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'SMA_50_200': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'EMA_50_200': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_7_30_70': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_7_25_75': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_7_20_80': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_14_30_70': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_14_25_75': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_14_20_80': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_21_30_70': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_21_25_75': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'RSI_21_20_80': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'MACD_12_26_9': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'MACD_8_17_9': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'MACD_5_35_5': datetime\n2017-08-17 0\n2017-08-18 -1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'BB_20_2': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64}",
"status": "success"
},
"patterns": {
"train_results": " n_occurrences ... any_fdr_pass\npattern ... \nDoji 219.0 ... False\nHammer 49.0 ... False\nInverted_Hammer 17.0 ... False\nShooting_Star 6.0 ... False\nPin_Bar_Bull 116.0 ... False\nPin_Bar_Bear 57.0 ... False\nBullish_Engulfing 159.0 ... False\nBearish_Engulfing 149.0 ... False\nMorning_Star 23.0 ... False\nEvening_Star 20.0 ... False\nThree_White_Soldiers 11.0 ... False\nThree_Black_Crows 4.0 ... False\n\n[12 rows x 41 columns]",
"val_results": " n_occurrences ... any_fdr_pass\npattern ... \nDoji 81.0 ... True\nHammer 12.0 ... False\nInverted_Hammer 6.0 ... False\nShooting_Star 3.0 ... False\nPin_Bar_Bull 28.0 ... True\nPin_Bar_Bear 20.0 ... False\nBullish_Engulfing 69.0 ... True\nBearish_Engulfing 47.0 ... False\nMorning_Star 5.0 ... False\nEvening_Star 6.0 ... False\nThree_White_Soldiers 4.0 ... False\nThree_Black_Crows 0.0 ... False\n\n[12 rows x 41 columns]",
"fdr_passed_train": [],
"fdr_passed_val": [
"Doji",
"Pin_Bar_Bull",
"Bullish_Engulfing"
],
"all_patterns": "{'Doji': datetime\n2017-08-17 1\n2017-08-18 0\n2017-08-19 1\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 1\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Hammer': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 1\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Inverted_Hammer': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Shooting_Star': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Pin_Bar_Bull': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 1\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 1\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Pin_Bar_Bear': datetime\n2017-08-17 1\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 1\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Bullish_Engulfing': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Bearish_Engulfing': datetime\n2017-08-17 0\n2017-08-18 1\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 1\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Morning_Star': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Evening_Star': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 1\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Three_White_Soldiers': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64, 'Three_Black_Crows': datetime\n2017-08-17 0\n2017-08-18 0\n2017-08-19 0\n2017-08-20 0\n2017-08-21 0\n ..\n2026-01-28 0\n2026-01-29 0\n2026-01-30 0\n2026-01-31 0\n2026-02-01 0\nLength: 3091, dtype: int64}",
"status": "success"
}
}