diff --git a/MidEval Code/MidEval_Divij/DivijArora_MidEval.py b/MidEval Code/MidEval_Divij/DivijArora_MidEval.py new file mode 100644 index 0000000..82d895e --- /dev/null +++ b/MidEval Code/MidEval_Divij/DivijArora_MidEval.py @@ -0,0 +1,60 @@ +import pandas as pd +from sklearn.linear_model import LogisticRegression +from sklearn.neural_network import MLPClassifier +from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix +from sklearn.preprocessing import LabelEncoder, StandardScaler +from sklearn.model_selection import train_test_split + +# Load and Encode +df = pd.read_csv('quantvision_financial_dataset_200.csv') +le = LabelEncoder() +for col in ['asset_type', 'market_regime']: + df[col] = le.fit_transform(df[col]) + +X = df.iloc[:, :-1] +Y = df.iloc[:, -1] + +# Split +X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42) + +# Scale +ss = StandardScaler() +X_train = ss.fit_transform(X_train) +X_test = ss.transform(X_test) + +# Logistic Regression +log_model = LogisticRegression() +log_model.fit(X_train, Y_train) +y_pred_log = log_model.predict(X_test) + +# Neural Network +nn_model = MLPClassifier(hidden_layer_sizes=(20,10), max_iter=1000) +nn_model.fit(X_train, Y_train) +y_pred_nn = nn_model.predict(X_test) + +def print_metrics(name, y_true, y_pred): + print(name,':') + print('Accuracy:', accuracy_score(y_true, y_pred)) + print('Precision:', precision_score(y_true, y_pred)) + print('Recall:', recall_score(y_true, y_pred)) + print('F1 Score:', f1_score(y_true, y_pred)) + print('Confusion Matrix:\n',confusion_matrix(y_true, y_pred),'\n') + +print_metrics("Logistic Regression", Y_test, y_pred_log) +print_metrics("Neural Network", Y_test, y_pred_nn) + + +# Why Logistic Regression performs reasonably good or bad: +# Logistic Regression performs worse than Neural Network probably because it relies on linear weights, ignoring compound effects while training model. Since target variable has very low count of 0s, it might not have influenced the weights much. + +# Why Neural Network performs better or worse: +# It performs better here because its non-linear layers may have extracted hidden patterns that distinguish minority classes. + +# The effect of volatility on predictions: +# High volatility causes linear models to misinterpret random price fluctuations as meaningful trend changes. + +# The role of trend continuation: +# It acts as a primary momentum signal that both models rely on to achieve high accuracy during stable market conditions. + +# Situations where the model fails and why: +# Due to high-volatility, entropy increases. As entropy increases, the distributions of these features begin to spread and overlap, making it mathematically impossible for a model to draw a clean boundary without misclassifying data points. \ No newline at end of file diff --git a/MidEval Code/MidEval_Divij/quantvision_financial_dataset_200.csv b/MidEval Code/MidEval_Divij/quantvision_financial_dataset_200.csv new file mode 100644 index 0000000..4cfdd29 --- /dev/null +++ b/MidEval Code/MidEval_Divij/quantvision_financial_dataset_200.csv @@ -0,0 +1,201 @@ +lookback_days,asset_type,market_regime,high_volatility,trend_continuation,technical_score,edge_density,slope_strength,candlestick_variance,pattern_symmetry,future_trend +48,equity,bullish,0,1,59.99,0.504,0.298,1.572,0.768,1 +38,index,bullish,1,1,78.54,0.559,0.037,0.692,0.538,1 +24,equity,bullish,1,0,56.03,0.617,0.212,1.419,0.301,1 +52,equity,bullish,0,0,66.51,0.36,0.347,0.699,0.498,1 +17,equity,bullish,1,1,61.21,0.492,0.144,2.52,0.828,1 +30,equity,bullish,1,1,73.12,0.608,0.584,1.65,0.831,1 +48,index,sideways,0,0,54.92,0.434,0.395,0.252,0.553,1 +28,equity,bullish,0,1,83.59,0.419,0.404,1.441,0.707,1 +32,equity,bullish,0,0,53.51,0.373,-0.735,0.385,0.577,1 +20,equity,sideways,0,0,48.21,0.524,-0.45,0.87,0.372,1 +20,equity,sideways,0,0,73.11,0.311,-0.67,0.615,0.753,1 +33,index,bullish,0,1,69.79,0.306,1.182,0.72,0.951,1 +45,index,bearish,1,1,51.01,0.625,0.869,2.169,0.764,1 +49,equity,bearish,1,1,50.9,0.619,0.993,2.461,0.73,1 +33,crypto,bullish,0,1,60.93,0.428,-0.41,0.363,0.638,1 +12,equity,sideways,0,1,78.44,0.377,1.136,1.313,0.779,1 +31,crypto,sideways,0,1,69.01,0.44,1.706,0.634,0.596,1 +11,equity,bullish,0,1,92.98,0.538,1.156,0.649,0.366,1 +33,equity,bullish,0,1,81.86,0.601,-0.476,1.245,0.293,1 +53,equity,sideways,1,1,62.57,0.417,1.084,1.186,0.58,1 +39,index,bearish,0,1,84.04,0.366,0.621,1.235,0.723,1 +47,index,bearish,1,1,55.04,0.511,0.084,2.065,0.75,1 +11,index,bearish,1,0,26.45,0.68,-0.174,1.484,0.427,1 +30,equity,bearish,0,0,45.1,0.201,-0.525,1.664,0.521,0 +42,index,sideways,1,1,61.47,0.591,0.201,1.064,0.659,1 +21,index,sideways,0,0,52.77,0.379,0.81,1.673,0.35,1 +31,equity,sideways,0,1,78.24,0.531,0.911,0.028,0.692,1 +53,equity,bearish,0,0,53.75,0.52,0.029,2.35,0.622,1 +34,equity,sideways,1,1,67.48,0.579,0.245,1.497,0.557,1 +58,crypto,bearish,0,0,70.01,0.274,-0.591,0.419,0.357,1 +36,equity,bearish,1,0,43.72,0.504,-0.475,1.584,0.34,1 +51,crypto,bullish,1,0,50.55,0.513,-1.217,1.177,0.21,1 +37,equity,sideways,0,0,37.45,0.294,0.511,1.193,0.428,1 +25,crypto,sideways,1,1,58.76,0.642,-0.893,2.384,0.807,1 +24,index,bearish,0,1,57.68,0.284,1.027,0.503,0.726,1 +56,equity,sideways,0,0,56.45,0.557,0.49,1.29,0.475,1 +60,index,bearish,0,1,72.36,0.557,1.259,0.234,0.719,1 +53,index,bullish,0,0,57.33,0.369,0.043,1.516,0.427,1 +12,crypto,bullish,1,1,55.2,0.576,0.658,1.908,0.408,1 +46,equity,bullish,0,1,92.98,0.394,0.52,1.538,0.818,1 +60,equity,bullish,0,1,57.32,0.472,0.007,0.939,0.861,1 +16,index,bullish,1,1,46.71,0.652,0.965,1.482,0.591,1 +30,crypto,bearish,0,0,71.55,0.421,-0.048,1.408,0.477,1 +18,equity,bullish,0,1,62.96,0.438,-0.105,0.346,0.664,1 +48,equity,bearish,1,1,50.55,0.5,-0.033,0.829,0.753,1 +27,crypto,bullish,1,1,83.03,0.585,-0.014,1.698,0.953,1 +13,equity,bearish,0,1,79.86,0.413,0.831,0.805,0.874,1 +34,index,bullish,1,0,39.06,0.477,0.774,1.977,0.443,1 +23,crypto,bullish,1,1,62.18,0.549,0.461,2.246,0.781,1 +59,index,bearish,0,1,89.46,0.369,0.703,1.267,0.888,1 +18,index,bearish,0,1,76.92,0.351,1.828,1.506,0.761,1 +35,equity,bullish,0,0,67.86,0.308,0.489,1.161,0.499,1 +11,index,sideways,0,1,78.05,0.405,0.727,1.247,0.767,1 +29,index,bullish,0,0,64.3,0.338,-0.24,0.942,0.395,1 +37,equity,bearish,0,0,55.4,0.362,0.158,1.233,0.416,1 +56,equity,sideways,0,1,70.11,0.486,0.567,1.083,0.54,1 +16,crypto,bearish,0,1,72.67,0.451,0.646,1.163,0.746,1 +53,index,bearish,0,1,77.34,0.322,1.257,0.917,0.68,1 +17,equity,bearish,0,1,67.17,0.428,0.33,1.404,0.577,1 +56,crypto,bearish,0,0,56.22,0.411,0.257,0.645,0.475,1 +44,crypto,sideways,1,0,41.9,0.686,0.074,1.691,0.57,0 +23,index,bullish,0,1,71.16,0.511,0.269,1.656,0.987,1 +26,crypto,bullish,1,1,47.49,0.427,-0.211,1.226,0.852,1 +45,equity,bearish,0,1,96.06,0.469,0.525,0.081,0.357,1 +59,equity,sideways,1,0,37.67,0.651,-0.631,1.883,0.536,1 +49,index,bearish,0,1,66.39,0.445,1.176,0.872,0.914,1 +13,crypto,bullish,1,1,51.81,0.523,-0.301,2.205,0.499,1 +11,crypto,bearish,0,0,61.16,0.593,0.034,0.935,0.583,1 +15,equity,sideways,0,0,53.04,0.452,1.273,0.698,0.465,1 +51,crypto,bullish,1,1,50.36,0.708,0.407,1.662,0.873,1 +13,crypto,bullish,0,0,61.57,0.508,0.29,1.547,0.561,1 +38,crypto,bearish,0,0,62.92,0.437,0.58,1.288,0.367,1 +27,index,bearish,0,1,69.33,0.354,0.369,0.217,0.67,1 +35,index,bullish,0,1,63.36,0.398,0.059,1.093,0.679,1 +53,index,bullish,0,1,91.91,0.382,0.688,1.118,0.682,1 +43,equity,bullish,0,1,73.4,0.303,0.733,0.991,0.868,1 +19,crypto,bullish,1,0,32.26,0.602,-1.209,1.395,0.374,0 +45,crypto,sideways,0,0,69.14,0.525,0.188,1.597,0.65,1 +23,equity,sideways,0,1,61.44,0.376,1.135,1.622,0.655,1 +40,equity,bullish,0,1,97.42,0.573,0.144,0.102,0.734,1 +57,equity,sideways,0,1,70.8,0.275,0.818,0.601,0.711,1 +24,equity,bearish,0,1,80.13,0.484,1.046,0.928,0.697,1 +17,crypto,bearish,1,0,24.2,0.684,-0.107,2.174,0.498,1 +23,equity,bearish,0,1,57.16,0.384,0.941,1.017,0.919,1 +32,equity,bullish,0,1,83.34,0.385,0.478,0.658,0.826,1 +49,equity,bullish,0,1,73.18,0.483,0.036,1.355,0.646,1 +30,equity,bearish,0,0,75.42,0.44,-0.224,0.894,0.737,1 +25,equity,bearish,1,1,64.85,0.39,-0.093,1.641,0.741,1 +54,index,bullish,0,0,56.45,0.333,-0.04,0.986,0.554,1 +27,index,sideways,0,1,87.14,0.399,1.147,1.287,0.574,1 +56,equity,sideways,1,0,55.1,0.44,-1.056,1.546,0.425,1 +33,index,bullish,0,0,53.04,0.362,0.072,1.343,0.397,1 +35,index,sideways,1,1,49.06,0.442,-0.332,1.663,0.713,1 +34,index,sideways,0,1,46.28,0.37,0.23,0.466,0.796,1 +54,equity,sideways,1,0,40.62,0.523,-0.121,1.682,0.555,1 +50,index,bullish,0,0,43.14,0.428,-0.595,0.492,0.738,1 +38,crypto,sideways,1,1,85.98,0.543,0.567,1.72,0.567,1 +24,equity,bearish,0,1,63.5,0.44,-0.076,1.415,0.717,1 +54,crypto,sideways,0,0,48.22,0.431,0.333,0.463,0.308,1 +10,equity,sideways,0,1,54.79,0.483,-0.175,1.182,0.562,1 +34,equity,bearish,1,1,57.34,0.62,-0.109,1.285,0.89,1 +16,index,sideways,1,0,38.35,0.611,0.548,1.801,0.431,1 +18,index,sideways,1,1,77.38,0.798,1.054,2.13,0.579,1 +33,crypto,sideways,0,1,71.68,0.428,0.394,0.065,0.381,1 +10,equity,bearish,1,1,59.91,0.757,0.395,1.143,0.578,1 +53,equity,bullish,0,1,68.65,0.433,1.202,0.816,0.669,1 +17,index,bullish,0,1,77.86,0.393,0.941,1.158,0.496,1 +33,index,sideways,0,0,50.48,0.37,-0.137,0.917,0.461,1 +20,equity,bullish,1,1,66.67,0.671,-0.174,1.677,0.891,1 +60,crypto,bearish,0,1,86.14,0.531,1.034,2.021,0.594,1 +26,equity,bullish,0,1,74.6,0.448,1.165,0.394,0.558,1 +17,equity,bearish,1,1,57.5,0.641,1.058,2.268,0.531,1 +44,crypto,sideways,0,0,45.47,0.298,-0.844,0.825,0.329,1 +44,index,sideways,0,1,67.25,0.276,-0.027,1.275,0.78,1 +42,crypto,bullish,0,1,75.63,0.5,1.181,2.064,0.707,1 +14,equity,sideways,0,0,39.67,0.39,-0.776,1.344,0.644,1 +51,index,bearish,0,1,78.32,0.46,1.219,1.186,1.0,1 +48,index,bullish,0,1,72.08,0.343,0.493,1.8,0.425,1 +50,crypto,sideways,0,1,68.51,0.533,0.34,1.562,0.757,1 +37,equity,bearish,0,1,63.41,0.277,0.703,0.6,0.532,1 +16,equity,bullish,0,1,65.24,0.289,-0.073,1.147,0.818,1 +18,equity,sideways,1,1,65.97,0.666,0.612,0.841,0.659,1 +17,equity,bullish,0,0,53.72,0.191,0.845,0.73,0.504,1 +21,equity,bullish,0,1,64.99,0.43,1.035,1.157,0.508,1 +43,equity,bearish,0,1,74.69,0.391,0.477,0.699,0.636,1 +42,equity,bullish,0,0,60.08,0.341,-0.769,1.137,0.513,1 +57,crypto,bearish,0,1,57.51,0.384,-0.15,0.993,0.903,1 +32,crypto,bearish,1,0,50.71,0.482,-1.065,1.968,0.381,0 +33,equity,sideways,0,1,95.02,0.523,0.594,0.788,0.617,1 +46,equity,sideways,0,1,74.7,0.544,0.657,0.53,0.842,1 +44,index,sideways,0,0,38.01,0.345,0.434,1.739,0.371,1 +53,equity,sideways,0,1,71.77,0.422,-0.298,0.752,0.871,1 +49,equity,bearish,1,1,41.69,0.444,0.856,2.03,0.699,1 +31,equity,bullish,0,1,100.0,0.486,0.947,1.718,0.745,1 +36,equity,bearish,0,1,92.36,0.484,0.437,1.081,0.755,1 +44,crypto,bearish,0,0,48.34,0.376,-0.595,0.572,0.408,1 +10,equity,bullish,0,1,47.54,0.401,1.225,0.911,0.758,1 +44,index,bearish,1,1,51.22,0.542,0.05,2.209,0.584,1 +46,index,bearish,0,1,68.19,0.271,0.59,1.103,0.625,1 +56,equity,sideways,1,0,27.38,0.674,-0.208,1.097,0.584,0 +23,equity,sideways,0,1,69.31,0.339,0.143,1.298,0.744,1 +12,equity,bearish,1,0,43.12,0.489,-0.541,2.085,0.489,0 +10,index,bullish,0,1,71.25,0.388,1.033,0.822,0.511,1 +14,equity,bullish,0,0,57.3,0.48,0.382,1.305,0.349,1 +35,equity,sideways,1,0,35.34,0.503,-0.013,1.823,0.542,1 +23,index,sideways,1,0,36.47,0.394,-0.978,1.601,0.61,0 +48,equity,bullish,1,0,45.46,0.479,-0.518,1.053,0.334,1 +36,equity,bearish,0,1,63.69,0.434,0.402,1.539,0.574,1 +18,equity,bullish,1,1,69.07,0.725,0.413,2.08,0.72,1 +24,equity,bullish,0,1,70.36,0.299,0.768,1.292,0.717,1 +24,crypto,bullish,1,1,78.65,0.446,0.278,2.472,0.456,1 +35,equity,bullish,0,1,78.2,0.279,1.833,1.473,0.724,1 +51,index,sideways,1,1,71.04,0.419,0.055,2.043,0.61,1 +22,equity,bearish,1,1,61.33,0.646,-0.004,0.593,0.946,1 +60,index,bullish,1,1,61.57,0.67,-0.378,2.298,0.737,1 +41,equity,sideways,0,0,72.31,0.414,-0.769,1.042,0.563,1 +48,equity,sideways,0,1,66.22,0.363,-0.01,1.156,0.767,1 +58,crypto,sideways,1,0,50.47,0.693,-0.759,1.86,0.318,1 +41,crypto,bullish,0,0,52.34,0.414,0.655,1.387,0.792,1 +13,crypto,bullish,1,0,42.31,0.637,-0.38,2.261,0.257,1 +39,equity,bullish,1,0,33.31,0.509,-0.303,2.017,0.619,0 +46,equity,bullish,0,0,47.57,0.404,-0.048,1.238,0.593,1 +32,equity,bullish,1,0,35.72,0.451,-0.217,1.816,0.428,1 +48,index,bearish,0,0,60.94,0.45,0.701,0.676,0.6,1 +54,equity,bullish,1,1,70.4,0.565,-0.797,1.556,0.652,1 +24,crypto,bullish,1,1,59.05,0.478,0.809,1.229,0.599,1 +52,equity,bullish,0,1,72.3,0.33,-0.658,1.605,0.77,1 +38,crypto,bullish,0,1,68.48,0.529,0.614,1.31,0.549,1 +45,equity,bullish,1,0,36.89,0.708,0.696,1.471,0.466,0 +22,crypto,bearish,0,0,63.62,0.383,0.34,0.821,0.411,1 +41,equity,bullish,0,0,61.53,0.405,0.187,0.803,0.45,1 +16,equity,bullish,0,1,51.07,0.432,1.601,0.794,0.765,1 +60,index,bearish,0,0,52.17,0.412,-0.352,0.278,0.411,1 +31,equity,bearish,0,0,46.18,0.266,0.217,0.169,0.471,1 +37,equity,bullish,0,0,51.09,0.434,0.289,1.015,0.425,1 +11,crypto,bullish,0,0,48.3,0.233,-0.261,1.538,0.717,1 +51,index,bullish,1,0,44.54,0.491,-0.617,1.431,0.551,1 +54,equity,sideways,0,1,66.7,0.44,0.328,1.152,0.733,1 +15,equity,bearish,0,0,51.49,0.448,0.044,1.367,0.603,1 +37,equity,bearish,0,1,81.07,0.335,0.873,0.503,0.611,1 +37,index,sideways,0,1,75.57,0.363,0.662,0.99,0.829,1 +53,equity,bullish,0,0,47.96,0.352,0.355,0.667,0.552,1 +53,equity,sideways,0,1,64.44,0.392,-0.385,1.803,0.466,1 +29,equity,bearish,1,0,49.92,0.548,-0.509,2.481,0.286,1 +39,equity,bullish,0,1,74.9,0.453,0.088,0.504,0.614,1 +20,index,bearish,1,0,38.96,0.509,-0.249,1.893,0.302,0 +37,equity,sideways,1,1,57.66,0.58,0.343,2.234,0.664,1 +34,crypto,bearish,0,0,73.47,0.441,-0.058,1.424,0.348,1 +48,equity,sideways,1,0,39.13,0.566,-0.145,1.741,0.485,0 +42,equity,bullish,1,1,79.11,0.529,0.699,2.353,0.912,1 +10,equity,sideways,0,1,81.04,0.414,0.57,0.548,0.693,1 +36,equity,bullish,0,0,72.25,0.46,-0.526,0.848,0.455,1 +22,crypto,sideways,1,1,53.71,0.617,-0.591,1.261,0.758,1 +50,index,bearish,1,1,58.31,0.695,0.218,2.091,0.596,1 +12,index,bullish,0,1,65.51,0.321,0.721,0.709,0.827,1 +48,index,bullish,1,1,71.27,0.515,-0.285,1.614,0.774,0 +15,equity,bullish,1,0,39.32,0.421,-0.037,2.009,0.506,1 +17,index,bullish,1,0,52.31,0.624,-0.629,2.049,0.523,0 +36,equity,bullish,1,1,66.78,0.523,-0.628,1.246,1.0,1 +18,index,bearish,1,1,59.52,0.566,0.828,2.228,0.841,1