Algorithmic Trading A-z With Python And Machine Learning ✦

if prediction == 1 and not position: submit_order("AAPL", side="buy", qty=10) elif prediction == 0 and position: submit_order("AAPL", side="sell", qty=position)

future_returns = data["Close"].shift(-5) / data["Close"] - 1 data["target"] = (future_returns > 0.01).astype(int) # 1=up>1%, 0=else For (expected return): algorithmic trading a-z with python and machine learning

data["zscore"] = (data["Close"] - data["Close"].rolling(20).mean()) / data["Close"].rolling(20).std() data["signal"] = 0 data.loc[data["zscore"] < -1.5, "signal"] = 1 # Buy data.loc[data["zscore"] > 1.5, "signal"] = -1 # Sell from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import TimeSeriesSplit features = ["rsi", "volatility", "volume_ratio", "ret_lag1", "ret_lag2"] X = data[features].dropna() y = data["target"].dropna() Align indices common_idx = X.index.intersection(y.index) X, y = X.loc[common_idx], y.loc[common_idx] Time series cross-validation tscv = TimeSeriesSplit(n_splits=5) model = RandomForestClassifier(n_estimators=100, max_depth=5) if prediction == 1 and not position: submit_order("AAPL",

for train_idx, test_idx in tscv.split(X): X_train, X_test = X.iloc[train_idx], X.iloc[test_idx] y_train, y_test = y.iloc[train_idx], y.iloc[test_idx] model.fit(X_train, y_train) print(model.score(X_test, y_test)) from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout Create 3D sequences: (samples, timesteps, features) def create_sequences(data, seq_len=20): X_seq, y_seq = [], [] for i in range(len(data)-seq_len): X_seq.append(data[i:i+seq_len]) y_seq.append(data[i+seq_len]) # next price return np.array(X_seq), np.array(y_seq) 0.01).astype(int) # 1=up&gt

data["target_reg"] = future_returns 9. Baseline: Rule-based Strategy Mean reversion with Z-score