Pattern_Analysis / predictions.py
ratulsur's picture
Upload 3 files
bfa4e15 verified
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import StandardScaler
def prepare_features(df):
"""Prepare features for prediction model"""
features = df[['RSI', 'MACD', 'MACD_Signal', 'MACD_Hist']].copy()
features['SMA_Ratio'] = df['SMA_20'] / df['SMA_50']
features['Price_Change'] = df['Close'].pct_change()
features['Volatility'] = df['Close'].rolling(window=20).std()
return features.dropna()
def predict_movement(df, lookback_period=30):
"""Predict price movement for next 30 minutes"""
features = prepare_features(df)
if len(features) < lookback_period:
return None, None
# Prepare training data
X = features[:-1].values
y = (df['Close'].shift(-1) > df['Close'])[:-1].values
# Train model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X, y)
# Make prediction
latest_features = features.iloc[-1:].values
prediction = model.predict(latest_features)[0]
probability = model.predict_proba(latest_features)[0]
return prediction, probability