Update app.py
Browse files
app.py
CHANGED
@@ -18,14 +18,20 @@ def calculate_indicators(data):
|
|
18 |
data = data.apply(pd.to_numeric, errors='coerce')
|
19 |
|
20 |
# Example: Simple condition for doji and inside
|
21 |
-
data['Doji'] = abs(data['
|
22 |
data['Inside'] = (data['high'] < data['high'].shift(1)) & (data['low'] > data['low'].shift(1))
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
return data
|
24 |
|
25 |
def apply_pca(data, n_components=5):
|
26 |
pca = PCA(n_components=n_components)
|
27 |
reduced_data = pca.fit_transform(data)
|
28 |
-
return pd.DataFrame(reduced_data, index=data.index)
|
29 |
|
30 |
def main():
|
31 |
st.title("Stock Trend Predictor")
|
@@ -43,10 +49,10 @@ def main():
|
|
43 |
df = df.dropna(axis=0)
|
44 |
|
45 |
# Rename columns
|
46 |
-
df = df.rename(columns={'1. open': '
|
47 |
|
48 |
# Apply PCA for dimensionality reduction
|
49 |
-
df_reduced = apply_pca(df)
|
50 |
|
51 |
# Calculate indicators on reduced data
|
52 |
df_reduced = calculate_indicators(df_reduced)
|
|
|
18 |
data = data.apply(pd.to_numeric, errors='coerce')
|
19 |
|
20 |
# Example: Simple condition for doji and inside
|
21 |
+
data['Doji'] = abs(data['close'] - data['open']) <= 0.01 * (data['high'] - data['low'])
|
22 |
data['Inside'] = (data['high'] < data['high'].shift(1)) & (data['low'] > data['low'].shift(1))
|
23 |
+
|
24 |
+
# Include the necessary columns from the original dataset
|
25 |
+
data['open'] = data['open_original']
|
26 |
+
data['high'] = data['high_original']
|
27 |
+
data['low'] = data['low_original']
|
28 |
+
|
29 |
return data
|
30 |
|
31 |
def apply_pca(data, n_components=5):
|
32 |
pca = PCA(n_components=n_components)
|
33 |
reduced_data = pca.fit_transform(data)
|
34 |
+
return pd.DataFrame(reduced_data, index=data.index, columns=[f'component_{i+1}' for i in range(n_components)])
|
35 |
|
36 |
def main():
|
37 |
st.title("Stock Trend Predictor")
|
|
|
49 |
df = df.dropna(axis=0)
|
50 |
|
51 |
# Rename columns
|
52 |
+
df = df.rename(columns={'1. open': 'open_original', '2. high': 'high_original', '3. low': 'low_original', '4. close': 'close', '5. volume': 'volume'})
|
53 |
|
54 |
# Apply PCA for dimensionality reduction
|
55 |
+
df_reduced = apply_pca(df[['open_original', 'high_original', 'low_original', 'close', 'volume']])
|
56 |
|
57 |
# Calculate indicators on reduced data
|
58 |
df_reduced = calculate_indicators(df_reduced)
|