Skip to content
Snippets Groups Projects
Commit 36c89ad4 authored by Lizi Brelidze's avatar Lizi Brelidze
Browse files

graph on bitcoin

parent 95c7781b
No related branches found
No related tags found
No related merge requests found
......@@ -128,7 +128,8 @@ def index():
df_prophet_with_date['ds_date'] = df_prophet_with_date['ds'].dt.normalize()
temp_merged = pd.merge(df_prophet_with_date, df_fng, on='ds_date', how='left')
temp_merged['fear_greed'] = temp_merged['fear_greed'].ffill().bfill()
temp_merged['fear_greed'].fillna(50, inplace=True) # Final fallback
# FIX for Pandas FutureWarning: Use direct assignment instead of inplace=True on potentially chained access
temp_merged['fear_greed'] = temp_merged['fear_greed'].fillna(50) # Final fallback
df_merged = temp_merged[['ds', 'y', 'volume', 'fear_greed']].copy()
fng_available = True
data_confidence_score += 25
......@@ -156,21 +157,25 @@ def index():
try:
print("--- Instantiating Prophet model ---")
model = Prophet(interval_width=0.95) # 95% prediction interval
volume_regressor_added = False # <<< FIX: Initialize flag
fng_regressor_added = False # <<< FIX: Initialize flag
print("--- Adding Regressors ---")
# Add 'volume' regressor if valid
if 'volume' in df_merged.columns and df_merged['volume'].notna().any():
model.add_regressor('volume')
volume_regressor_added = True # <<< FIX: Set flag
print("Added 'volume' regressor.")
else: print("--- Skipping 'volume' regressor (column missing or all NaN) ---")
# Add 'fear_greed' regressor if valid and available
if fng_available and 'fear_greed' in df_merged.columns and df_merged['fear_greed'].notna().any():
model.add_regressor('fear_greed')
fng_regressor_added = True # <<< FIX: Set flag
print("Added 'fear_greed' regressor.")
else:
fng_available = False # Ensure state consistency
print("Fitting model WITHOUT 'fear_greed' regressor (not available or all NaN).")
fng_available = False
# Final check on data points before fitting
df_merged.dropna(subset=['y'], inplace=True) # Drop rows if 'y' became NaN
......@@ -184,12 +189,14 @@ def index():
future = model.make_future_dataframe(periods=24, freq='h')
print("--- Populating future regressor values... ---")
if 'volume' in model.regressors:
# <<< FIX: Use flags instead of checking model.regressors >>>
if volume_regressor_added:
last_volume = df_merged['volume'].iloc[-1] if not df_merged['volume'].empty else 0
future['volume'] = last_volume
print(f" - Set future 'volume' to: {last_volume}")
if 'fear_greed' in model.regressors:
# <<< FIX: Use flags instead of checking model.regressors >>>
if fng_regressor_added:
if current_fng_value is not None and pd.notna(current_fng_value):
future['fear_greed'] = float(current_fng_value)
used_current_fng_for_future = True
......@@ -376,4 +383,3 @@ if __name__ == '__main__':
# Port 5000 is default, change if needed
# Debug=True provides more error detail and auto-reloads on code changes
app.run(debug=True, host='0.0.0.0', port=5000)
\ No newline at end of file
......@@ -181,7 +181,7 @@
}
// Chart Rendering
const plotData = {{ plot_data | tojson | safe }}; // Embed data from Flask
const plotData = JSON.parse('{{ plot_data | tojson | safe }}'); // Embed data from Flask
const chartCanvas = document.getElementById('priceChart');
if (plotData && plotData.labels && plotData.labels.length > 0 && chartCanvas) {
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment