Downloads · 30 days
0
huntergemmer/crypto-15min-direction-classifier
crypto-15min-direction-classifier is a machine learning model from huntergemmer. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
A time-series classification model that predicts whether Bitcoin (BTC/USDT) price will move up or down over the next 15-minute interval using multivariate historical market data.
Downloads · 30 days
0
Access
Public
Updated May 7, 2026
Repo size
6 B
Likes
0
Public
Click a slice to open those files.
.py6.8 KB · 51%
From the Hugging Face model README
A time-series classification model that predicts whether Bitcoin (BTC/USDT) price will move up or down over the next 15-minute interval using multivariate historical market data.
| Attribute | Value |
|---|---|
| Task | Binary time-series classification |
| Target | BTC price direction in next 15 minutes (up=1, down=0) |
| Input | 60 minutes of multivariate OHLCV + technical indicators |
| Assets | BTC/USDT + ETH/USDT (cross-asset features) |
| Best Model | Logistic Regression on flattened windows |
| Dataset | 300K rows of 1-minute candles from WinkingFace CryptoLM datasets |
| Metric | Value |
|---|---|
| Test Accuracy | 53.1% |
| Test F1 | 0.574 |
| Test AUC | 0.540 |
Note: 15-minute crypto price direction prediction is an extremely hard problem due to market efficiency at short timeframes. The model consistently edges above random chance (50%), demonstrating a non-trivial but small signal. This pipeline is valuable as a complete data engineering and feature extraction system for further research.
open, high, low, closevolumeMA_20, MA_50, MA_200RSI, %K, %D, ADX, ATRMACD, Signal, Histogram, TrendlineBL_Upper, BL_Lower, MN_Upper, MN_Lowereth_btc_ratio - ETH/BTC price ratiobtc_ret_1m, eth_ret_1m - 1-minute returnsbtc_vol_ma20, eth_vol_ma20 - 20-period volume MAbtc_range, eth_range - Normalized price rangeimport pickle
import numpy as np
# Load model
with open("model.pkl", "rb") as f:
model = pickle.load(f)
# Load preprocessing artifacts
mean = np.load("feature_mean.npy")
std = np.load("feature_std.npy")
valid = np.load("valid_cols.npy")
# X shape: (samples, 60 minutes, 49 features)
X_flat = X.reshape(X.shape[0], -1) # flatten to 2940 features
X_flat = X_flat[:, valid] # keep valid columns
X_norm = (X_flat - mean) / std # standardize
# Predict
preds = model.predict(X_norm) # 0=down, 1=up
probs = model.predict_proba(X_norm)[:, 1] # probability of up
| File | Description |
|---|---|
model.pkl | Trained LogisticRegression classifier |
feature_mean.npy | Per-feature means for standardization |
feature_std.npy | Per-feature standard deviations |
valid_cols.npy | Boolean mask of valid (finite) feature columns |
metrics.json | Evaluation results |
MIT License
<!-- ml-intern-provenance -->This model repository was generated by ML Intern, an agent for machine learning research and development on the Hugging Face Hub.