From 9dd0fe5eadbafd6471d9e725500a5131eee5fdea Mon Sep 17 00:00:00 2001 From: Yasha Sheynin Date: Tue, 4 Feb 2025 15:01:15 -0500 Subject: [PATCH] added documentation to analysis.py --- fine_tune_train.jsonl | 36 ++ fine_tune_val.jsonl | 10 + main.py | 251 ++++++++++---- market_predictor/analysis.py | 318 ++++++++++++++++++ market_predictor/config.py | 2 +- market_predictor/data_processor.py | 51 ++- .../fine_tune_dataset_generator.py | 2 +- market_predictor/performance_metrics.py | 109 +++++- market_predictor/prediction_service.py | 5 +- market_predictor/split_and_fine_tune.py | 71 ++++ notebooks/rolling_window_analysis.ipynb | 218 ++++++++++++ output/20250204_030912/accuracy_over_time.png | Bin 0 -> 43755 bytes output/20250204_030912/confusion_matrix.png | Bin 0 -> 15928 bytes output/20250204_030912/hourly_performance.png | Bin 0 -> 14945 bytes output/20250204_030912/predictions.csv | 7 + .../20250204_030912/returns_distribution.png | Bin 0 -> 20477 bytes output/20250204_031042/accuracy_over_time.png | Bin 0 -> 31717 bytes output/20250204_031042/confusion_matrix.png | Bin 0 -> 15980 bytes output/20250204_031042/hourly_performance.png | Bin 0 -> 14924 bytes output/20250204_031042/predictions.csv | 28 ++ .../20250204_031042/returns_distribution.png | Bin 0 -> 20767 bytes output/20250204_031520/accuracy_over_time.png | Bin 0 -> 40049 bytes .../analysis/accuracy_over_time.png | Bin 0 -> 40049 bytes .../analysis/confusion_matrix.png | Bin 0 -> 14232 bytes .../analysis/hourly_performance.png | Bin 0 -> 15162 bytes .../analysis/returns_distribution.png | Bin 0 -> 21251 bytes .../analysis/vwap_changes_comparison.png | Bin 0 -> 44470 bytes output/20250204_031520/confusion_matrix.png | Bin 0 -> 14232 bytes output/20250204_031520/hourly_performance.png | Bin 0 -> 15162 bytes output/20250204_031520/predictions.csv | 55 +++ .../20250204_031520/returns_distribution.png | Bin 0 -> 21251 bytes output/20250204_033516/accuracy_over_time.png | Bin 0 -> 31088 bytes output/20250204_033516/confusion_matrix.png | Bin 0 -> 14079 bytes output/20250204_033516/hourly_performance.png | Bin 0 -> 15159 bytes output/20250204_033516/predictions.csv | 55 +++ .../20250204_033516/returns_distribution.png | Bin 0 -> 20867 bytes output/20250204_034250/accuracy_over_time.png | Bin 0 -> 32476 bytes output/20250204_034250/confusion_matrix.png | Bin 0 -> 14079 bytes output/20250204_034250/hourly_performance.png | Bin 0 -> 15159 bytes output/20250204_034250/predictions.csv | 55 +++ .../20250204_034250/returns_distribution.png | Bin 0 -> 20867 bytes output/20250204_035519/accuracy_over_time.png | Bin 0 -> 36763 bytes output/20250204_035519/confusion_matrix.png | Bin 0 -> 16707 bytes output/20250204_035519/hourly_performance.png | Bin 0 -> 14927 bytes output/20250204_035519/predictions.csv | 28 ++ .../20250204_035519/returns_distribution.png | Bin 0 -> 23015 bytes output/20250204_040012/accuracy_over_time.png | Bin 0 -> 34144 bytes output/20250204_040012/confusion_matrix.png | Bin 0 -> 16749 bytes output/20250204_040012/hourly_performance.png | Bin 0 -> 14909 bytes output/20250204_040012/predictions.csv | 28 ++ .../20250204_040012/returns_distribution.png | Bin 0 -> 22000 bytes .../vwap_changes_comparison.png | Bin 0 -> 48849 bytes output/20250204_040738/accuracy_over_time.png | Bin 0 -> 41721 bytes output/20250204_040738/confusion_matrix.png | Bin 0 -> 16138 bytes output/20250204_040738/hourly_performance.png | Bin 0 -> 14910 bytes output/20250204_040738/predictions.csv | 28 ++ .../20250204_040738/returns_distribution.png | Bin 0 -> 19447 bytes .../vwap_changes_comparison.png | Bin 0 -> 49016 bytes .../accuracy_over_time.png | Bin 0 -> 28285 bytes .../confusion_matrix.png | Bin 0 -> 14355 bytes .../predictions.csv | 99 ++++++ .../returns_distribution.png | Bin 0 -> 20776 bytes .../accuracy_over_time.png | Bin 0 -> 26996 bytes .../confusion_matrix.png | Bin 0 -> 14456 bytes .../hourly_performance.png | Bin 0 -> 76790 bytes .../predictions.csv | 55 +++ .../returns_distribution.png | Bin 0 -> 20543 bytes .../vwap_changes_comparison.png | Bin 0 -> 40661 bytes .../accuracy_over_time.png | Bin 0 -> 58958 bytes .../confusion_matrix.png | Bin 0 -> 26282 bytes .../hourly_performance.png | Bin 0 -> 104979 bytes .../predictions.csv | 6 + .../returns_distribution.png | Bin 0 -> 33995 bytes .../vwap_changes_comparison.png | Bin 0 -> 33002 bytes .../accuracy_over_time.png | Bin 0 -> 30410 bytes .../confusion_matrix.png | Bin 0 -> 15129 bytes .../hourly_performance.png | Bin 0 -> 15401 bytes .../predictions.csv | 99 ++++++ .../returns_distribution.png | Bin 0 -> 20546 bytes .../vwap_changes_comparison.png | Bin 0 -> 43526 bytes 80 files changed, 1505 insertions(+), 111 deletions(-) create mode 100644 fine_tune_train.jsonl create mode 100644 fine_tune_val.jsonl create mode 100644 market_predictor/analysis.py create mode 100644 market_predictor/split_and_fine_tune.py create mode 100644 output/20250204_030912/accuracy_over_time.png create mode 100644 output/20250204_030912/confusion_matrix.png create mode 100644 output/20250204_030912/hourly_performance.png create mode 100644 output/20250204_030912/predictions.csv create mode 100644 output/20250204_030912/returns_distribution.png create mode 100644 output/20250204_031042/accuracy_over_time.png create mode 100644 output/20250204_031042/confusion_matrix.png create mode 100644 output/20250204_031042/hourly_performance.png create mode 100644 output/20250204_031042/predictions.csv create mode 100644 output/20250204_031042/returns_distribution.png create mode 100644 output/20250204_031520/accuracy_over_time.png create mode 100644 output/20250204_031520/analysis/accuracy_over_time.png create mode 100644 output/20250204_031520/analysis/confusion_matrix.png create mode 100644 output/20250204_031520/analysis/hourly_performance.png create mode 100644 output/20250204_031520/analysis/returns_distribution.png create mode 100644 output/20250204_031520/analysis/vwap_changes_comparison.png create mode 100644 output/20250204_031520/confusion_matrix.png create mode 100644 output/20250204_031520/hourly_performance.png create mode 100644 output/20250204_031520/predictions.csv create mode 100644 output/20250204_031520/returns_distribution.png create mode 100644 output/20250204_033516/accuracy_over_time.png create mode 100644 output/20250204_033516/confusion_matrix.png create mode 100644 output/20250204_033516/hourly_performance.png create mode 100644 output/20250204_033516/predictions.csv create mode 100644 output/20250204_033516/returns_distribution.png create mode 100644 output/20250204_034250/accuracy_over_time.png create mode 100644 output/20250204_034250/confusion_matrix.png create mode 100644 output/20250204_034250/hourly_performance.png create mode 100644 output/20250204_034250/predictions.csv create mode 100644 output/20250204_034250/returns_distribution.png create mode 100644 output/20250204_035519/accuracy_over_time.png create mode 100644 output/20250204_035519/confusion_matrix.png create mode 100644 output/20250204_035519/hourly_performance.png create mode 100644 output/20250204_035519/predictions.csv create mode 100644 output/20250204_035519/returns_distribution.png create mode 100644 output/20250204_040012/accuracy_over_time.png create mode 100644 output/20250204_040012/confusion_matrix.png create mode 100644 output/20250204_040012/hourly_performance.png create mode 100644 output/20250204_040012/predictions.csv create mode 100644 output/20250204_040012/returns_distribution.png create mode 100644 output/20250204_040012/vwap_changes_comparison.png create mode 100644 output/20250204_040738/accuracy_over_time.png create mode 100644 output/20250204_040738/confusion_matrix.png create mode 100644 output/20250204_040738/hourly_performance.png create mode 100644 output/20250204_040738/predictions.csv create mode 100644 output/20250204_040738/returns_distribution.png create mode 100644 output/20250204_040738/vwap_changes_comparison.png create mode 100644 output/META_2025-01-25_2025-02-02_20250204_043306/accuracy_over_time.png create mode 100644 output/META_2025-01-25_2025-02-02_20250204_043306/confusion_matrix.png create mode 100644 output/META_2025-01-25_2025-02-02_20250204_043306/predictions.csv create mode 100644 output/META_2025-01-25_2025-02-02_20250204_043306/returns_distribution.png create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/accuracy_over_time.png create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/confusion_matrix.png create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/hourly_performance.png create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/predictions.csv create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/returns_distribution.png create mode 100644 output/META_2025-01-29_2025-02-02_20250204_044205/vwap_changes_comparison.png create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/accuracy_over_time.png create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/confusion_matrix.png create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/hourly_performance.png create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/predictions.csv create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/returns_distribution.png create mode 100644 output/META_2025-01-31_2025-02-01_20250204_134222/vwap_changes_comparison.png create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/accuracy_over_time.png create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/confusion_matrix.png create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/hourly_performance.png create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/predictions.csv create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/returns_distribution.png create mode 100644 output/NVDA_2025-01-25_2025-02-02_20250204_042149/vwap_changes_comparison.png diff --git a/fine_tune_train.jsonl b/fine_tune_train.jsonl new file mode 100644 index 0000000..5bd30d9 --- /dev/null +++ b/fine_tune_train.jsonl @@ -0,0 +1,36 @@ +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0099):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 693.12\n VWAP: 698.51\n Volume: 145076.0\n MA5: 694.08\n MA20: 695.89\n Volume MA5: 180852.40\n Price Change: 0.03%\n Volume Change: -31.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0299):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0303):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 696.07\n VWAP: 699.22\n Volume: 129501.0\n MA5: 697.23\n MA20: 699.08\n Volume MA5: 107147.60\n Price Change: -0.01%\n Volume Change: -1.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 690.66\n VWAP: 698.40\n Volume: 194921.0\n MA5: 692.90\n MA20: 695.53\n Volume MA5: 181180.40\n Price Change: -0.35%\n Volume Change: 34.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 689.96\n VWAP: 698.28\n Volume: 203768.0\n MA5: 692.07\n MA20: 695.09\n Volume MA5: 192478.40\n Price Change: -0.10%\n Volume Change: 4.54%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 689.79\n VWAP: 698.16\n Volume: 196780.0\n MA5: 691.28\n MA20: 694.68\n Volume MA5: 190375.60\n Price Change: -0.02%\n Volume Change: -3.43%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 690.76\n VWAP: 698.06\n Volume: 180696.0\n MA5: 690.86\n MA20: 694.36\n Volume MA5: 184248.20\n Price Change: 0.14%\n Volume Change: -8.17%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 690.86\n VWAP: 697.99\n Volume: 132555.0\n MA5: 690.41\n MA20: 694.09\n Volume MA5: 181744.00\n Price Change: 0.01%\n Volume Change: -26.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 688.50\n VWAP: 697.88\n Volume: 168352.0\n MA5: 689.97\n MA20: 693.72\n Volume MA5: 176430.20\n Price Change: -0.34%\n Volume Change: 27.01%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 688.27\n VWAP: 697.80\n Volume: 126600.0\n MA5: 689.64\n MA20: 693.40\n Volume MA5: 160996.60\n Price Change: -0.03%\n Volume Change: -24.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 689.02\n VWAP: 697.72\n Volume: 133951.0\n MA5: 689.48\n MA20: 693.20\n Volume MA5: 148430.80\n Price Change: 0.11%\n Volume Change: 5.81%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 688.51\n VWAP: 697.61\n Volume: 179744.0\n MA5: 689.03\n MA20: 692.82\n Volume MA5: 148240.40\n Price Change: -0.07%\n Volume Change: 34.19%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 688.96\n VWAP: 697.51\n Volume: 169149.0\n MA5: 688.65\n MA20: 692.49\n Volume MA5: 155559.20\n Price Change: 0.07%\n Volume Change: -5.89%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 686.93\n VWAP: 697.38\n Volume: 190726.0\n MA5: 688.34\n MA20: 691.99\n Volume MA5: 160034.00\n Price Change: -0.29%\n Volume Change: 12.76%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 685.96\n VWAP: 697.20\n Volume: 245750.0\n MA5: 687.88\n MA20: 691.45\n Volume MA5: 183864.00\n Price Change: -0.14%\n Volume Change: 28.85%\n Previous 5min VWAP Movement: down (-0.03%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 685.5, \"suggested_stop_loss\": 688.0, \"suggested_take_profit\": 683.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with decreasing price\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, supported by a series of negative price changes and high volume, indicating strong selling pressure. Historical context windows with similar patterns also resulted in further VWAP declines. The price is below both MA5 and MA20, reinforcing the bearish sentiment. Given these factors, a continued VWAP decrease is expected with moderate confidence. The suggested trade levels are set to capitalize on the expected downward movement while managing risk with a stop-loss above recent price levels.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0083):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 235.11\n VWAP: 240.72\n Volume: 543597.0\n MA5: 235.47\n MA20: 236.30\n Volume MA5: 534423.80\n Price Change: -0.01%\n Volume Change: -1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 234.34\n VWAP: 240.65\n Volume: 630795.0\n MA5: 235.22\n MA20: 236.10\n Volume MA5: 542488.80\n Price Change: -0.33%\n Volume Change: 16.04%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 233.98\n VWAP: 240.57\n Volume: 694889.0\n MA5: 234.85\n MA20: 235.88\n Volume MA5: 571799.00\n Price Change: -0.15%\n Volume Change: 10.16%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nSimilar context (score: 0.0292):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 235.11\n VWAP: 240.72\n Volume: 543597.0\n MA5: 235.47\n MA20: 236.30\n Volume MA5: 534423.80\n Price Change: -0.01%\n Volume Change: -1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 234.34\n VWAP: 240.65\n Volume: 630795.0\n MA5: 235.22\n MA20: 236.10\n Volume MA5: 542488.80\n Price Change: -0.33%\n Volume Change: 16.04%\n Previous 5min VWAP Movement: down (-0.03%)\n \nNext Interval VWAP Movement: down (-0.03%)\n===\nSimilar context (score: 0.0297):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 234.05\n VWAP: 240.50\n Volume: 714674.0\n MA5: 234.52\n MA20: 235.70\n Volume MA5: 626768.40\n Price Change: 0.03%\n Volume Change: 2.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 234.42\n VWAP: 240.43\n Volume: 644748.0\n MA5: 234.38\n MA20: 235.55\n Volume MA5: 645740.60\n Price Change: 0.16%\n Volume Change: -9.78%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 234.13\n VWAP: 240.35\n Volume: 855693.0\n MA5: 234.18\n MA20: 235.41\n Volume MA5: 708159.80\n Price Change: -0.12%\n Volume Change: 32.72%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 233.70\n VWAP: 240.29\n Volume: 544523.0\n MA5: 234.06\n MA20: 235.24\n Volume MA5: 690905.40\n Price Change: -0.18%\n Volume Change: -36.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 233.82\n VWAP: 240.24\n Volume: 527381.0\n MA5: 234.02\n MA20: 235.11\n Volume MA5: 657403.80\n Price Change: 0.05%\n Volume Change: -3.15%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 233.80\n VWAP: 240.18\n Volume: 618535.0\n MA5: 233.97\n MA20: 234.99\n Volume MA5: 638176.00\n Price Change: -0.01%\n Volume Change: 17.28%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 234.02\n VWAP: 240.13\n Volume: 526266.0\n MA5: 233.89\n MA20: 234.87\n Volume MA5: 614479.60\n Price Change: 0.09%\n Volume Change: -14.92%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 233.99\n VWAP: 240.08\n Volume: 488490.0\n MA5: 233.87\n MA20: 234.75\n Volume MA5: 541039.00\n Price Change: -0.01%\n Volume Change: -7.18%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 234.29\n VWAP: 239.98\n Volume: 1156255.0\n MA5: 233.98\n MA20: 234.65\n Volume MA5: 663385.40\n Price Change: 0.13%\n Volume Change: 136.70%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 234.33\n VWAP: 239.93\n Volume: 618579.0\n MA5: 234.09\n MA20: 234.58\n Volume MA5: 681625.00\n Price Change: 0.02%\n Volume Change: -46.50%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 233.79\n VWAP: 239.88\n Volume: 535926.0\n MA5: 234.08\n MA20: 234.51\n Volume MA5: 665103.20\n Price Change: -0.23%\n Volume Change: -13.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 234.19\n VWAP: 239.83\n Volume: 628152.0\n MA5: 234.12\n MA20: 234.46\n Volume MA5: 685480.40\n Price Change: 0.17%\n Volume Change: 17.21%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 234.19, \"suggested_stop_loss\": 234.5, \"suggested_take_profit\": 233.7, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Volume fluctuations with no significant upward price movement\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, similar to historical windows where VWAP continued to decline. The price remains below both MA5 and MA20, indicating a bearish trend. Despite some volume spikes, there is no significant upward price movement, suggesting continued VWAP decline. The suggested entry, stop-loss, and take-profit levels are based on recent price movements and expected continuation of the trend.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0138):\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 129.90\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.67\n MA20: 130.26\n Volume MA5: 32435.20\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0254):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 130.51\n VWAP: 133.35\n Volume: 0.0\n MA5: 131.15\n MA20: 131.57\n Volume MA5: 0.00\n Price Change: -0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0259):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 129.98\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 130.17\n Volume MA5: 0.00\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 130.01\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.82\n MA20: 130.08\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 129.96\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.86\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 129.82\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.93\n MA20: 129.93\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 129.38\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.83\n MA20: 129.87\n Volume MA5: 0.00\n Price Change: -0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 129.60\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 129.82\n Volume MA5: 0.00\n Price Change: 0.17%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 129.44\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.64\n MA20: 129.78\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.54\n MA20: 129.73\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 129.85\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 129.72\n Volume MA5: 0.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 130.50\n VWAP: 133.20\n Volume: 2725120.0\n MA5: 129.77\n MA20: 129.74\n Volume MA5: 545024.00\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.07%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 130.90\n VWAP: 133.04\n Volume: 6296960.0\n MA5: 130.03\n MA20: 129.78\n Volume MA5: 1804416.00\n Price Change: 0.30%\n Volume Change: 131.07%\n Previous 5min VWAP Movement: down (-0.12%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 130.78\n VWAP: 132.97\n Volume: 2711296.0\n MA5: 130.30\n MA20: 129.83\n Volume MA5: 2346675.20\n Price Change: -0.09%\n Volume Change: -56.94%\n Previous 5min VWAP Movement: down (-0.05%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.02, \"suggested_entry\": 130.78, \"suggested_stop_loss\": 131.0, \"suggested_take_profit\": 130.5, \"key_signals\": [\"Consistent VWAP downtrend\", \"High volume spikes with no VWAP recovery\", \"Price below MA5 and MA20\", \"Recent price increase not affecting VWAP\"], \"reasoning\": \"The VWAP has been consistently trending downwards despite recent price increases, indicating that the price movements are not strong enough to reverse the VWAP trend. The high volume spikes in the last intervals did not lead to a VWAP recovery, suggesting that the market is absorbing the volume without a significant change in VWAP direction. The current price is below both the MA5 and MA20, reinforcing the bearish sentiment. Therefore, the VWAP is expected to continue its downward trend in the next interval. The suggested entry, stop-loss, and take-profit levels are set to manage risk while capitalizing on the expected VWAP decline.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0062):\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 3358.40\n VWAP: 3325.09\n Volume: 851968.0\n MA5: 3355.24\n MA20: 3353.48\n Volume MA5: 11094016.00\n Price Change: 0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 3363.66\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3356.50\n MA20: 3354.01\n Volume MA5: 2964275.20\n Price Change: 0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 3365.16\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3358.65\n MA20: 3354.97\n Volume MA5: 170393.60\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 3357.16\n VWAP: 3325.66\n Volume: 78342144.0\n MA5: 3359.04\n MA20: 3355.32\n Volume MA5: 15838822.40\n Price Change: -0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 3365.39\n VWAP: 3326.34\n Volume: 75356160.0\n MA5: 3361.95\n MA20: 3355.93\n Volume MA5: 30910054.40\n Price Change: 0.25%\n Volume Change: -3.81%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nSimilar context (score: 0.0320):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 3356.87\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3356.56\n MA20: 3345.94\n Volume MA5: 106810982.40\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 3358.50\n VWAP: 3324.35\n Volume: 59019264.0\n MA5: 3357.81\n MA20: 3347.43\n Volume MA5: 77576601.60\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 3344.66\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3356.10\n MA20: 3348.26\n Volume MA5: 77576601.60\n Price Change: -0.41%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0320):\nTime: 2025-01-31 12:20:00+00:00\n\n Current Price: 3346.12\n VWAP: 3309.88\n Volume: 86097920.0\n MA5: 3336.28\n MA20: 3314.14\n Volume MA5: 134399180.80\n Price Change: 0.10%\n Volume Change: 36.75%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:25:00+00:00\n\n Current Price: 3349.42\n VWAP: 3312.36\n Volume: 189399040.0\n MA5: 3340.62\n MA20: 3318.28\n Volume MA5: 102964428.80\n Price Change: 0.10%\n Volume Change: 119.98%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 12:30:00+00:00\n\n Current Price: 3356.25\n VWAP: 3314.25\n Volume: 136105984.0\n MA5: 3346.25\n MA20: 3322.58\n Volume MA5: 130185625.60\n Price Change: 0.20%\n Volume Change: -28.14%\n Previous 5min VWAP Movement: up (0.06%)\n \n===\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 3353.13\n VWAP: 3315.84\n Volume: 134987776.0\n MA5: 3349.53\n MA20: 3326.80\n Volume MA5: 121910067.20\n Price Change: -0.09%\n Volume Change: -0.82%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 3345.99\n VWAP: 3316.69\n Volume: 95191040.0\n MA5: 3350.18\n MA20: 3330.35\n Volume MA5: 128356352.00\n Price Change: -0.21%\n Volume Change: -29.48%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 3350.09\n VWAP: 3317.12\n Volume: 44724224.0\n MA5: 3350.97\n MA20: 3333.41\n Volume MA5: 120081612.80\n Price Change: 0.12%\n Volume Change: -53.02%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 3353.20\n VWAP: 3318.40\n Volume: 126611456.0\n MA5: 3351.73\n MA20: 3336.27\n Volume MA5: 107524096.00\n Price Change: 0.09%\n Volume Change: 183.09%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 3352.72\n VWAP: 3318.65\n Volume: 25733120.0\n MA5: 3351.02\n MA20: 3338.58\n Volume MA5: 85449523.20\n Price Change: -0.01%\n Volume Change: -79.68%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 3352.27\n VWAP: 3320.47\n Volume: 205191168.0\n MA5: 3350.85\n MA20: 3340.19\n Volume MA5: 99490201.60\n Price Change: -0.01%\n Volume Change: 697.38%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 3353.22\n VWAP: 3320.47\n Volume: 0.0\n MA5: 3352.30\n MA20: 3341.33\n Volume MA5: 80451993.60\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 3349.64\n VWAP: 3326.95\n Volume: 119881728.0\n MA5: 3360.20\n MA20: 3355.78\n Volume MA5: 54716006.40\n Price Change: -0.47%\n Volume Change: 59.09%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 3362.26\n VWAP: 3327.25\n Volume: 38631424.0\n MA5: 3359.92\n MA20: 3356.28\n Volume MA5: 62442291.20\n Price Change: 0.38%\n Volume Change: -67.78%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 3349.15\n VWAP: 3327.62\n Volume: 79978496.0\n MA5: 3356.72\n MA20: 3356.07\n Volume MA5: 78437990.40\n Price Change: -0.39%\n Volume Change: 107.03%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 3342.15\n VWAP: 3327.71\n Volume: 30007296.0\n MA5: 3353.72\n MA20: 3355.03\n Volume MA5: 68771020.80\n Price Change: -0.21%\n Volume Change: -62.48%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 3346.22\n VWAP: 3327.71\n Volume: 0.0\n MA5: 3349.88\n MA20: 3354.47\n Volume MA5: 53699788.80\n Price Change: 0.12%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 3356.33\n VWAP: 3328.10\n Volume: 63913984.0\n MA5: 3351.22\n MA20: 3354.44\n Volume MA5: 42506240.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 3357.97\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3350.36\n MA20: 3354.42\n Volume MA5: 34779955.20\n Price Change: 0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 3357.09\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3351.95\n MA20: 3355.04\n Volume MA5: 18784256.00\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 3365.18\n VWAP: 3328.22\n Volume: 16121856.0\n MA5: 3356.56\n MA20: 3355.97\n Volume MA5: 16007168.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 3387.21\n VWAP: 3332.52\n Volume: 375947264.0\n MA5: 3364.76\n MA20: 3357.64\n Volume MA5: 91196620.80\n Price Change: 0.65%\n Volume Change: 2231.91%\n Previous 5min VWAP Movement: up (0.13%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 3390.28\n VWAP: 3334.26\n Volume: 160458752.0\n MA5: 3371.55\n MA20: 3359.55\n Volume MA5: 110505574.40\n Price Change: 0.09%\n Volume Change: -57.32%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 3395.98\n VWAP: 3335.07\n Volume: 70856704.0\n MA5: 3379.15\n MA20: 3361.48\n Volume MA5: 124676915.20\n Price Change: 0.17%\n Volume Change: -55.84%\n Previous 5min VWAP Movement: up (0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 3395.98, \"suggested_stop_loss\": 3385.0, \"suggested_take_profit\": 3405.0, \"key_signals\": [\"Recent strong upward price movement\", \"High volume in the last interval\", \"Consistent upward VWAP movement\", \"Price above MA5 and MA20\"], \"reasoning\": \"The current market window shows a strong upward price movement with a significant increase in volume, indicating bullish momentum. The VWAP has been consistently moving up, supported by the price being above both the MA5 and MA20. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these signals, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this upward trend while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0090):\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 104626.39\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104632.21\n MA20: 104727.76\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 104561.80\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104620.95\n MA20: 104725.38\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 104619.02\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104613.29\n MA20: 104721.35\n Volume MA5: 0.00\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 104505.77\n VWAP: 104694.66\n Volume: 15290368.0\n MA5: 104600.90\n MA20: 104713.61\n Volume MA5: 3058073.60\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0260):\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0263):\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 104660.67\n VWAP: 104635.74\n Volume: 13561856.0\n MA5: 104662.39\n MA20: 104707.57\n Volume MA5: 31240192.00\n Price Change: -0.04%\n Volume Change: 68.24%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 104692.05\n VWAP: 104635.74\n Volume: 0.0\n MA5: 104659.99\n MA20: 104708.51\n Volume MA5: 25673728.00\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 104784.31\n VWAP: 104635.74\n Volume: 0.0\n MA5: 104689.21\n MA20: 104712.33\n Volume MA5: 4324556.80\n Price Change: 0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 104971.50\n VWAP: 104659.08\n Volume: 71536640.0\n MA5: 104761.63\n MA20: 104721.35\n Volume MA5: 18631884.80\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 105006.83\n VWAP: 104689.98\n Volume: 100376576.0\n MA5: 104823.07\n MA20: 104735.29\n Volume MA5: 37095014.40\n Price Change: 0.03%\n Volume Change: 40.31%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 104268.98\n VWAP: 104692.86\n Volume: 5103616.0\n MA5: 104516.39\n MA20: 104692.45\n Volume MA5: 4078796.80\n Price Change: -0.23%\n Volume Change: -66.62%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 104533.95\n VWAP: 104678.50\n Volume: 119975936.0\n MA5: 104497.90\n MA20: 104679.93\n Volume MA5: 28073984.00\n Price Change: 0.25%\n Volume Change: 2250.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 104322.42\n VWAP: 104663.33\n Volume: 59072512.0\n MA5: 104450.03\n MA20: 104647.48\n Volume MA5: 39888486.40\n Price Change: -0.20%\n Volume Change: -50.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 104400.73\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104406.37\n MA20: 104617.18\n Volume MA5: 39888486.40\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 104414.38\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104388.10\n MA20: 104593.22\n Volume MA5: 36830412.80\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 104625.29\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104459.36\n MA20: 104582.41\n Volume MA5: 35809689.60\n Price Change: 0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 104651.27\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104482.82\n MA20: 104570.69\n Volume MA5: 11814502.40\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 104905.10\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104599.35\n MA20: 104582.51\n Volume MA5: 0.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 104794.17\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104678.04\n MA20: 104590.36\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 105016.59\n VWAP: 104668.16\n Volume: 19238912.0\n MA5: 104798.48\n MA20: 104608.57\n Volume MA5: 3847782.40\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 105162.55\n VWAP: 104699.17\n Volume: 94085120.0\n MA5: 104905.93\n MA20: 104632.97\n Volume MA5: 22664806.40\n Price Change: 0.14%\n Volume Change: 389.04%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 105477.88\n VWAP: 104699.17\n Volume: 0.0\n MA5: 105071.26\n MA20: 104671.05\n Volume MA5: 22664806.40\n Price Change: 0.30%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 105477.88, \"suggested_stop_loss\": 105162.55, \"suggested_take_profit\": 105700.0, \"key_signals\": [\"Recent increase in price and volume\", \"MA5 crossing above MA20\", \"Previous VWAP movement up\"], \"reasoning\": \"The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical patterns with similar setups have shown VWAP increases. Given these factors, a continued upward VWAP movement is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0117):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 5318912.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 11942246.40\n Price Change: -0.26%\n Volume Change: 98.52%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 482944.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4023910.40\n Price Change: 0.23%\n Volume Change: -90.92%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 5339008.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 3604608.00\n Price Change: -0.76%\n Volume Change: 1005.51%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0259):\nTime: 2025-01-31 12:25:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 3571328.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4487552.00\n Price Change: -0.09%\n Volume Change: -59.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:30:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 3511936.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4690432.00\n Price Change: -0.25%\n Volume Change: -1.66%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2940288.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4596403.20\n Price Change: 0.10%\n Volume Change: -16.28%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2368384.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4248499.20\n Price Change: -0.06%\n Volume Change: -19.45%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 2478387.20\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 984832.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1961088.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1464064.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1551513.60\n Price Change: 0.08%\n Volume Change: 48.66%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \nNext Interval VWAP Movement: up (0.03%)\n===\nSimilar context (score: 0.0261):\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2368384.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4248499.20\n Price Change: -0.06%\n Volume Change: -19.45%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 2478387.20\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 984832.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1961088.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1464064.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1551513.60\n Price Change: 0.08%\n Volume Change: 48.66%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.07%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 9962368.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4756505.60\n Price Change: -0.10%\n Volume Change: 86.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7177472.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 5656140.80\n Price Change: -0.10%\n Volume Change: -27.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4592358.40\n Price Change: -0.53%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4495769.60\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 3427968.00\n Price Change: 0.36%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1435494.40\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4986112.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 997222.40\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7286016.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 2454425.60\n Price Change: -0.00%\n Volume Change: 46.13%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 33203456.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 9095116.80\n Price Change: 0.62%\n Volume Change: 355.71%\n Previous 5min VWAP Movement: up (0.15%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.05, \"suggested_entry\": 0.34, \"suggested_stop_loss\": 0.33, \"suggested_take_profit\": 0.35, \"key_signals\": [\"Recent VWAP upward movement\", \"Increased volume\", \"Price stability around MA5 and MA20\", \"Historical pattern of VWAP increase after similar conditions\"], \"reasoning\": \"The current market window shows a recent upward movement in VWAP with significant volume increase, indicating strong buying interest. The price has stabilized around the MA5 and MA20, suggesting a potential continuation of the upward trend. Historical context windows with similar conditions also resulted in VWAP increases. Given these factors, a VWAP increase is likely in the next interval, with moderate volatility expected. The suggested trade levels are set to capitalize on the anticipated upward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0111):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 235.11\n VWAP: 240.72\n Volume: 543597.0\n MA5: 235.47\n MA20: 236.30\n Volume MA5: 534423.80\n Price Change: -0.01%\n Volume Change: -1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 234.34\n VWAP: 240.65\n Volume: 630795.0\n MA5: 235.22\n MA20: 236.10\n Volume MA5: 542488.80\n Price Change: -0.33%\n Volume Change: 16.04%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nSimilar context (score: 0.0322):\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 236.79\n VWAP: 241.65\n Volume: 1267159.0\n MA5: 237.71\n MA20: 238.87\n Volume MA5: 744420.80\n Price Change: -0.31%\n Volume Change: 100.34%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 237.19\n VWAP: 241.58\n Volume: 830996.0\n MA5: 237.49\n MA20: 238.74\n Volume MA5: 780169.40\n Price Change: 0.17%\n Volume Change: -34.42%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 236.43\n VWAP: 241.50\n Volume: 807078.0\n MA5: 237.11\n MA20: 238.58\n Volume MA5: 860713.20\n Price Change: -0.32%\n Volume Change: -2.88%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0329):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 233.98\n VWAP: 240.57\n Volume: 694889.0\n MA5: 234.85\n MA20: 235.88\n Volume MA5: 571799.00\n Price Change: -0.15%\n Volume Change: 10.16%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 234.05\n VWAP: 240.50\n Volume: 714674.0\n MA5: 234.52\n MA20: 235.70\n Volume MA5: 626768.40\n Price Change: 0.03%\n Volume Change: 2.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 234.42\n VWAP: 240.43\n Volume: 644748.0\n MA5: 234.38\n MA20: 235.55\n Volume MA5: 645740.60\n Price Change: 0.16%\n Volume Change: -9.78%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 234.13\n VWAP: 240.35\n Volume: 855693.0\n MA5: 234.18\n MA20: 235.41\n Volume MA5: 708159.80\n Price Change: -0.12%\n Volume Change: 32.72%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 233.70\n VWAP: 240.29\n Volume: 544523.0\n MA5: 234.06\n MA20: 235.24\n Volume MA5: 690905.40\n Price Change: -0.18%\n Volume Change: -36.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 233.82\n VWAP: 240.24\n Volume: 527381.0\n MA5: 234.02\n MA20: 235.11\n Volume MA5: 657403.80\n Price Change: 0.05%\n Volume Change: -3.15%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 233.80\n VWAP: 240.18\n Volume: 618535.0\n MA5: 233.97\n MA20: 234.99\n Volume MA5: 638176.00\n Price Change: -0.01%\n Volume Change: 17.28%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 234.02\n VWAP: 240.13\n Volume: 526266.0\n MA5: 233.89\n MA20: 234.87\n Volume MA5: 614479.60\n Price Change: 0.09%\n Volume Change: -14.92%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 233.99\n VWAP: 240.08\n Volume: 488490.0\n MA5: 233.87\n MA20: 234.75\n Volume MA5: 541039.00\n Price Change: -0.01%\n Volume Change: -7.18%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 234.29\n VWAP: 239.98\n Volume: 1156255.0\n MA5: 233.98\n MA20: 234.65\n Volume MA5: 663385.40\n Price Change: 0.13%\n Volume Change: 136.70%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 234.33\n VWAP: 239.93\n Volume: 618579.0\n MA5: 234.09\n MA20: 234.58\n Volume MA5: 681625.00\n Price Change: 0.02%\n Volume Change: -46.50%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 233.79\n VWAP: 239.88\n Volume: 535926.0\n MA5: 234.08\n MA20: 234.51\n Volume MA5: 665103.20\n Price Change: -0.23%\n Volume Change: -13.36%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 233.79, \"suggested_stop_loss\": 234.5, \"suggested_take_profit\": 233.2, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume spikes followed by lower volume\", \"Negative price change in recent intervals\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both the MA5 and MA20, indicating a bearish sentiment. Historical windows with similar patterns also resulted in continued VWAP declines. The recent volume spike followed by a decrease suggests a potential exhaustion of buying pressure. Given these factors, a further VWAP decline is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0136):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 693.12\n VWAP: 698.51\n Volume: 145076.0\n MA5: 694.08\n MA20: 695.89\n Volume MA5: 180852.40\n Price Change: 0.03%\n Volume Change: -31.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 690.66\n VWAP: 698.40\n Volume: 194921.0\n MA5: 692.90\n MA20: 695.53\n Volume MA5: 181180.40\n Price Change: -0.35%\n Volume Change: 34.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 689.96\n VWAP: 698.28\n Volume: 203768.0\n MA5: 692.07\n MA20: 695.09\n Volume MA5: 192478.40\n Price Change: -0.10%\n Volume Change: 4.54%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0345):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 693.12\n VWAP: 698.51\n Volume: 145076.0\n MA5: 694.08\n MA20: 695.89\n Volume MA5: 180852.40\n Price Change: 0.03%\n Volume Change: -31.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 690.66\n VWAP: 698.40\n Volume: 194921.0\n MA5: 692.90\n MA20: 695.53\n Volume MA5: 181180.40\n Price Change: -0.35%\n Volume Change: 34.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0345):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 689.79\n VWAP: 698.16\n Volume: 196780.0\n MA5: 691.28\n MA20: 694.68\n Volume MA5: 190375.60\n Price Change: -0.02%\n Volume Change: -3.43%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 690.76\n VWAP: 698.06\n Volume: 180696.0\n MA5: 690.86\n MA20: 694.36\n Volume MA5: 184248.20\n Price Change: 0.14%\n Volume Change: -8.17%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 690.86\n VWAP: 697.99\n Volume: 132555.0\n MA5: 690.41\n MA20: 694.09\n Volume MA5: 181744.00\n Price Change: 0.01%\n Volume Change: -26.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 688.50\n VWAP: 697.88\n Volume: 168352.0\n MA5: 689.97\n MA20: 693.72\n Volume MA5: 176430.20\n Price Change: -0.34%\n Volume Change: 27.01%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 688.27\n VWAP: 697.80\n Volume: 126600.0\n MA5: 689.64\n MA20: 693.40\n Volume MA5: 160996.60\n Price Change: -0.03%\n Volume Change: -24.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 689.02\n VWAP: 697.72\n Volume: 133951.0\n MA5: 689.48\n MA20: 693.20\n Volume MA5: 148430.80\n Price Change: 0.11%\n Volume Change: 5.81%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 688.51\n VWAP: 697.61\n Volume: 179744.0\n MA5: 689.03\n MA20: 692.82\n Volume MA5: 148240.40\n Price Change: -0.07%\n Volume Change: 34.19%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 688.96\n VWAP: 697.51\n Volume: 169149.0\n MA5: 688.65\n MA20: 692.49\n Volume MA5: 155559.20\n Price Change: 0.07%\n Volume Change: -5.89%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 686.93\n VWAP: 697.38\n Volume: 190726.0\n MA5: 688.34\n MA20: 691.99\n Volume MA5: 160034.00\n Price Change: -0.29%\n Volume Change: 12.76%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 685.96\n VWAP: 697.20\n Volume: 245750.0\n MA5: 687.88\n MA20: 691.45\n Volume MA5: 183864.00\n Price Change: -0.14%\n Volume Change: 28.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 686.76\n VWAP: 697.05\n Volume: 227462.0\n MA5: 687.42\n MA20: 690.93\n Volume MA5: 202566.20\n Price Change: 0.12%\n Volume Change: -7.44%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 687.51\n VWAP: 696.90\n Volume: 246769.0\n MA5: 687.22\n MA20: 690.42\n Volume MA5: 215971.20\n Price Change: 0.11%\n Volume Change: 8.49%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 687.51, \"suggested_stop_loss\": 689.0, \"suggested_take_profit\": 685.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with decreasing VWAP\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, supported by a series of decreasing VWAP movements in the historical context. The price is consistently below both the MA5 and MA20, indicating a bearish trend. Additionally, the high volume with a decreasing VWAP suggests strong selling pressure. These factors combined with the historical patterns of similar contexts suggest a high probability of continued VWAP decline. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0073):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0299):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0306):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 124.47\n VWAP: 125.47\n Volume: 3470074.0\n MA5: 124.85\n MA20: 125.07\n Volume MA5: 2470088.00\n Price Change: 0.08%\n Volume Change: 59.91%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 122.06\n VWAP: 125.12\n Volume: 3632388.0\n MA5: 122.78\n MA20: 123.74\n Volume MA5: 2731326.40\n Price Change: -0.73%\n Volume Change: 47.90%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 121.76\n VWAP: 125.06\n Volume: 4011313.0\n MA5: 122.58\n MA20: 123.56\n Volume MA5: 2942127.60\n Price Change: -0.25%\n Volume Change: 10.43%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 121.99\n VWAP: 125.01\n Volume: 4478122.0\n MA5: 122.36\n MA20: 123.41\n Volume MA5: 3401208.60\n Price Change: 0.19%\n Volume Change: 11.64%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 121.67\n VWAP: 124.95\n Volume: 4678896.0\n MA5: 122.09\n MA20: 123.24\n Volume MA5: 3851341.00\n Price Change: -0.26%\n Volume Change: 4.48%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 121.88\n VWAP: 124.92\n Volume: 3032372.0\n MA5: 121.87\n MA20: 123.12\n Volume MA5: 3966618.20\n Price Change: 0.17%\n Volume Change: -35.19%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 121.10\n VWAP: 124.87\n Volume: 3839577.0\n MA5: 121.68\n MA20: 122.95\n Volume MA5: 4008056.00\n Price Change: -0.64%\n Volume Change: 26.62%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 120.98\n VWAP: 124.81\n Volume: 3871017.0\n MA5: 121.52\n MA20: 122.79\n Volume MA5: 3979996.80\n Price Change: -0.10%\n Volume Change: 0.82%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 120.87\n VWAP: 124.77\n Volume: 3214651.0\n MA5: 121.30\n MA20: 122.65\n Volume MA5: 3727302.60\n Price Change: -0.09%\n Volume Change: -16.96%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 120.71\n VWAP: 124.72\n Volume: 3259275.0\n MA5: 121.11\n MA20: 122.48\n Volume MA5: 3443378.40\n Price Change: -0.13%\n Volume Change: 1.39%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 120.38\n VWAP: 124.65\n Volume: 4637022.0\n MA5: 120.81\n MA20: 122.32\n Volume MA5: 3764308.40\n Price Change: -0.28%\n Volume Change: 42.27%\n Previous 5min VWAP Movement: down (-0.06%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 120.11\n VWAP: 124.55\n Volume: 6892730.0\n MA5: 120.61\n MA20: 122.14\n Volume MA5: 4374939.00\n Price Change: -0.22%\n Volume Change: 48.65%\n Previous 5min VWAP Movement: down (-0.08%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 120.09\n VWAP: 124.50\n Volume: 3596041.0\n MA5: 120.43\n MA20: 121.96\n Volume MA5: 4319943.80\n Price Change: -0.02%\n Volume Change: -47.83%\n Previous 5min VWAP Movement: down (-0.04%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.03, \"volatility_estimate\": 0.05, \"suggested_entry\": 120.09, \"suggested_stop_loss\": 120.5, \"suggested_take_profit\": 119.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"High volume spikes\", \"Price consistently below MA5 and MA20\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, which often accompany significant price movements, and the current price consistently staying below both the MA5 and MA20, indicating bearish momentum. Historical context windows with similar patterns also resulted in further VWAP declines. Given these factors, a continued downward movement in VWAP is expected, with a moderate confidence score due to the strong alignment of signals. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0074):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 237.94\n VWAP: 238.82\n Volume: 174609.0\n MA5: 238.41\n MA20: 238.92\n Volume MA5: 164473.20\n Price Change: -0.32%\n Volume Change: 31.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 237.62\n VWAP: 238.80\n Volume: 311919.0\n MA5: 238.26\n MA20: 238.82\n Volume MA5: 191495.60\n Price Change: -0.13%\n Volume Change: 78.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0306):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0309):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 237.45\n VWAP: 238.78\n Volume: 300454.0\n MA5: 238.04\n MA20: 238.69\n Volume MA5: 214343.80\n Price Change: -0.07%\n Volume Change: -3.68%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 237.95\n VWAP: 238.77\n Volume: 194348.0\n MA5: 237.93\n MA20: 238.60\n Volume MA5: 222773.60\n Price Change: 0.21%\n Volume Change: -35.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 238.18\n VWAP: 238.77\n Volume: 272447.0\n MA5: 237.83\n MA20: 238.54\n Volume MA5: 250755.40\n Price Change: 0.10%\n Volume Change: 40.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 237.20\n VWAP: 238.75\n Volume: 244577.0\n MA5: 237.68\n MA20: 238.41\n Volume MA5: 264749.00\n Price Change: -0.41%\n Volume Change: -10.23%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 237.55\n VWAP: 238.73\n Volume: 262313.0\n MA5: 237.67\n MA20: 238.30\n Volume MA5: 254827.80\n Price Change: 0.15%\n Volume Change: 7.25%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 237.46\n VWAP: 238.72\n Volume: 205971.0\n MA5: 237.67\n MA20: 238.25\n Volume MA5: 235931.20\n Price Change: -0.04%\n Volume Change: -21.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 237.52\n VWAP: 238.71\n Volume: 220455.0\n MA5: 237.58\n MA20: 238.17\n Volume MA5: 241152.60\n Price Change: 0.03%\n Volume Change: 7.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 237.22\n VWAP: 238.69\n Volume: 270784.0\n MA5: 237.39\n MA20: 238.08\n Volume MA5: 240820.00\n Price Change: -0.13%\n Volume Change: 22.83%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 237.20\n VWAP: 238.68\n Volume: 258368.0\n MA5: 237.39\n MA20: 238.00\n Volume MA5: 243578.20\n Price Change: -0.01%\n Volume Change: -4.59%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 237.54\n VWAP: 238.66\n Volume: 332358.0\n MA5: 237.39\n MA20: 237.95\n Volume MA5: 257587.20\n Price Change: 0.14%\n Volume Change: 28.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 237.38\n VWAP: 238.65\n Volume: 289047.0\n MA5: 237.37\n MA20: 237.89\n Volume MA5: 274202.40\n Price Change: -0.07%\n Volume Change: -13.03%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 237.56\n VWAP: 238.63\n Volume: 322922.0\n MA5: 237.38\n MA20: 237.84\n Volume MA5: 294695.80\n Price Change: 0.08%\n Volume Change: 11.72%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 237.56, \"suggested_stop_loss\": 237.8, \"suggested_take_profit\": 237.3, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with negative price change\", \"Historical context showing similar patterns leading to VWAP decrease\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price change remains negative, suggesting selling pressure. Historical context windows with similar patterns have also resulted in a downward VWAP movement. Given these factors, a further slight decrease in VWAP is expected. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0083):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 237.94\n VWAP: 238.82\n Volume: 174609.0\n MA5: 238.41\n MA20: 238.92\n Volume MA5: 164473.20\n Price Change: -0.32%\n Volume Change: 31.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0299):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0301):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 237.62\n VWAP: 238.80\n Volume: 311919.0\n MA5: 238.26\n MA20: 238.82\n Volume MA5: 191495.60\n Price Change: -0.13%\n Volume Change: 78.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 237.45\n VWAP: 238.78\n Volume: 300454.0\n MA5: 238.04\n MA20: 238.69\n Volume MA5: 214343.80\n Price Change: -0.07%\n Volume Change: -3.68%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 237.95\n VWAP: 238.77\n Volume: 194348.0\n MA5: 237.93\n MA20: 238.60\n Volume MA5: 222773.60\n Price Change: 0.21%\n Volume Change: -35.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 238.18\n VWAP: 238.77\n Volume: 272447.0\n MA5: 237.83\n MA20: 238.54\n Volume MA5: 250755.40\n Price Change: 0.10%\n Volume Change: 40.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 237.20\n VWAP: 238.75\n Volume: 244577.0\n MA5: 237.68\n MA20: 238.41\n Volume MA5: 264749.00\n Price Change: -0.41%\n Volume Change: -10.23%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 237.55\n VWAP: 238.73\n Volume: 262313.0\n MA5: 237.67\n MA20: 238.30\n Volume MA5: 254827.80\n Price Change: 0.15%\n Volume Change: 7.25%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 237.46\n VWAP: 238.72\n Volume: 205971.0\n MA5: 237.67\n MA20: 238.25\n Volume MA5: 235931.20\n Price Change: -0.04%\n Volume Change: -21.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 237.52\n VWAP: 238.71\n Volume: 220455.0\n MA5: 237.58\n MA20: 238.17\n Volume MA5: 241152.60\n Price Change: 0.03%\n Volume Change: 7.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 237.22\n VWAP: 238.69\n Volume: 270784.0\n MA5: 237.39\n MA20: 238.08\n Volume MA5: 240820.00\n Price Change: -0.13%\n Volume Change: 22.83%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 237.20\n VWAP: 238.68\n Volume: 258368.0\n MA5: 237.39\n MA20: 238.00\n Volume MA5: 243578.20\n Price Change: -0.01%\n Volume Change: -4.59%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 237.54\n VWAP: 238.66\n Volume: 332358.0\n MA5: 237.39\n MA20: 237.95\n Volume MA5: 257587.20\n Price Change: 0.14%\n Volume Change: 28.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 237.38\n VWAP: 238.65\n Volume: 289047.0\n MA5: 237.37\n MA20: 237.89\n Volume MA5: 274202.40\n Price Change: -0.07%\n Volume Change: -13.03%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 237.38, \"suggested_stop_loss\": 237.7, \"suggested_take_profit\": 237.1, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with negative price change\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, suggesting strong selling pressure. Historical similar contexts also showed a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0114):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0347):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 415.90\n VWAP: 414.97\n Volume: 750406.0\n MA5: 417.88\n MA20: 418.50\n Volume MA5: 600859.20\n Price Change: -0.35%\n Volume Change: -32.87%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0358):\nTime: 2025-01-31 13:10:00-05:00\n\n Current Price: 419.33\n VWAP: 414.87\n Volume: 321951.0\n MA5: 419.24\n MA20: 418.42\n Volume MA5: 392374.20\n Price Change: 0.07%\n Volume Change: -11.95%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 417.77\n VWAP: 414.90\n Volume: 448429.0\n MA5: 418.95\n MA20: 418.52\n Volume MA5: 401149.40\n Price Change: -0.37%\n Volume Change: 39.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 417.34\n VWAP: 414.95\n Volume: 1117865.0\n MA5: 418.59\n MA20: 418.55\n Volume MA5: 554099.00\n Price Change: -0.10%\n Volume Change: 149.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 415.90\n VWAP: 414.97\n Volume: 750406.0\n MA5: 417.88\n MA20: 418.50\n Volume MA5: 600859.20\n Price Change: -0.35%\n Volume Change: -32.87%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 409.98\n VWAP: 414.21\n Volume: 845583.0\n MA5: 409.26\n MA20: 413.60\n Volume MA5: 867935.20\n Price Change: 0.36%\n Volume Change: 29.79%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 406.95\n VWAP: 414.08\n Volume: 1052363.0\n MA5: 408.50\n MA20: 412.99\n Volume MA5: 888531.60\n Price Change: -0.74%\n Volume Change: 24.45%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 406.06\n VWAP: 413.97\n Volume: 868845.0\n MA5: 408.02\n MA20: 412.32\n Volume MA5: 879647.60\n Price Change: -0.22%\n Volume Change: -17.44%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 405.73\n VWAP: 413.80\n Volume: 1399558.0\n MA5: 407.45\n MA20: 411.66\n Volume MA5: 963572.00\n Price Change: -0.08%\n Volume Change: 61.08%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 406.64\n VWAP: 413.69\n Volume: 986748.0\n MA5: 407.07\n MA20: 411.02\n Volume MA5: 1030619.40\n Price Change: 0.22%\n Volume Change: -29.50%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 406.55\n VWAP: 413.60\n Volume: 828548.0\n MA5: 406.39\n MA20: 410.46\n Volume MA5: 1027212.40\n Price Change: -0.02%\n Volume Change: -16.03%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 403.27\n VWAP: 413.42\n Volume: 1204327.0\n MA5: 405.65\n MA20: 409.76\n Volume MA5: 1057605.20\n Price Change: -0.81%\n Volume Change: 45.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 402.84\n VWAP: 413.23\n Volume: 1256449.0\n MA5: 405.01\n MA20: 409.10\n Volume MA5: 1135126.00\n Price Change: -0.11%\n Volume Change: 4.33%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 402.33\n VWAP: 413.12\n Volume: 688261.0\n MA5: 404.32\n MA20: 408.53\n Volume MA5: 992866.60\n Price Change: -0.13%\n Volume Change: -45.22%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 402.80\n VWAP: 412.98\n Volume: 974166.0\n MA5: 403.56\n MA20: 408.01\n Volume MA5: 990350.20\n Price Change: 0.12%\n Volume Change: 41.54%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 403.13\n VWAP: 412.90\n Volume: 584510.0\n MA5: 402.87\n MA20: 407.49\n Volume MA5: 941542.60\n Price Change: 0.08%\n Volume Change: -40.00%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 402.85\n VWAP: 412.80\n Volume: 711509.0\n MA5: 402.79\n MA20: 406.97\n Volume MA5: 842979.00\n Price Change: -0.07%\n Volume Change: 21.73%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 402.85, \"suggested_stop_loss\": 404.0, \"suggested_take_profit\": 401.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume spikes followed by declines\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating a bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. The volume spikes followed by declines suggest a lack of sustained buying pressure, reinforcing the likelihood of further VWAP decline. Given these signals, a short position is recommended with a high confidence score.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0079):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 235.11\n VWAP: 240.72\n Volume: 543597.0\n MA5: 235.47\n MA20: 236.30\n Volume MA5: 534423.80\n Price Change: -0.01%\n Volume Change: -1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0297):\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 236.79\n VWAP: 241.65\n Volume: 1267159.0\n MA5: 237.71\n MA20: 238.87\n Volume MA5: 744420.80\n Price Change: -0.31%\n Volume Change: 100.34%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 237.19\n VWAP: 241.58\n Volume: 830996.0\n MA5: 237.49\n MA20: 238.74\n Volume MA5: 780169.40\n Price Change: 0.17%\n Volume Change: -34.42%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 236.43\n VWAP: 241.50\n Volume: 807078.0\n MA5: 237.11\n MA20: 238.58\n Volume MA5: 860713.20\n Price Change: -0.32%\n Volume Change: -2.88%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0299):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 234.34\n VWAP: 240.65\n Volume: 630795.0\n MA5: 235.22\n MA20: 236.10\n Volume MA5: 542488.80\n Price Change: -0.33%\n Volume Change: 16.04%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 233.98\n VWAP: 240.57\n Volume: 694889.0\n MA5: 234.85\n MA20: 235.88\n Volume MA5: 571799.00\n Price Change: -0.15%\n Volume Change: 10.16%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 234.05\n VWAP: 240.50\n Volume: 714674.0\n MA5: 234.52\n MA20: 235.70\n Volume MA5: 626768.40\n Price Change: 0.03%\n Volume Change: 2.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 234.42\n VWAP: 240.43\n Volume: 644748.0\n MA5: 234.38\n MA20: 235.55\n Volume MA5: 645740.60\n Price Change: 0.16%\n Volume Change: -9.78%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 234.13\n VWAP: 240.35\n Volume: 855693.0\n MA5: 234.18\n MA20: 235.41\n Volume MA5: 708159.80\n Price Change: -0.12%\n Volume Change: 32.72%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 233.70\n VWAP: 240.29\n Volume: 544523.0\n MA5: 234.06\n MA20: 235.24\n Volume MA5: 690905.40\n Price Change: -0.18%\n Volume Change: -36.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 233.82\n VWAP: 240.24\n Volume: 527381.0\n MA5: 234.02\n MA20: 235.11\n Volume MA5: 657403.80\n Price Change: 0.05%\n Volume Change: -3.15%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 233.80\n VWAP: 240.18\n Volume: 618535.0\n MA5: 233.97\n MA20: 234.99\n Volume MA5: 638176.00\n Price Change: -0.01%\n Volume Change: 17.28%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 234.02\n VWAP: 240.13\n Volume: 526266.0\n MA5: 233.89\n MA20: 234.87\n Volume MA5: 614479.60\n Price Change: 0.09%\n Volume Change: -14.92%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 233.99\n VWAP: 240.08\n Volume: 488490.0\n MA5: 233.87\n MA20: 234.75\n Volume MA5: 541039.00\n Price Change: -0.01%\n Volume Change: -7.18%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 234.29\n VWAP: 239.98\n Volume: 1156255.0\n MA5: 233.98\n MA20: 234.65\n Volume MA5: 663385.40\n Price Change: 0.13%\n Volume Change: 136.70%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 234.33\n VWAP: 239.93\n Volume: 618579.0\n MA5: 234.09\n MA20: 234.58\n Volume MA5: 681625.00\n Price Change: 0.02%\n Volume Change: -46.50%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 234.33, \"suggested_stop_loss\": 234.7, \"suggested_take_profit\": 233.9, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Increasing volume with decreasing VWAP\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, similar to historical windows where VWAP continued to decline. The price is below both MA5 and MA20, indicating a bearish trend. Volume has increased significantly in the last interval, yet VWAP continues to decrease, suggesting selling pressure. These factors, combined with historical patterns, suggest a high probability of continued VWAP decline in the next interval.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0097):\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 3358.40\n VWAP: 3325.09\n Volume: 851968.0\n MA5: 3355.24\n MA20: 3353.48\n Volume MA5: 11094016.00\n Price Change: 0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 3363.66\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3356.50\n MA20: 3354.01\n Volume MA5: 2964275.20\n Price Change: 0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 3365.16\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3358.65\n MA20: 3354.97\n Volume MA5: 170393.60\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 3357.16\n VWAP: 3325.66\n Volume: 78342144.0\n MA5: 3359.04\n MA20: 3355.32\n Volume MA5: 15838822.40\n Price Change: -0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 3365.39\n VWAP: 3326.34\n Volume: 75356160.0\n MA5: 3361.95\n MA20: 3355.93\n Volume MA5: 30910054.40\n Price Change: 0.25%\n Volume Change: -3.81%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 3349.64\n VWAP: 3326.95\n Volume: 119881728.0\n MA5: 3360.20\n MA20: 3355.78\n Volume MA5: 54716006.40\n Price Change: -0.47%\n Volume Change: 59.09%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 3362.26\n VWAP: 3327.25\n Volume: 38631424.0\n MA5: 3359.92\n MA20: 3356.28\n Volume MA5: 62442291.20\n Price Change: 0.38%\n Volume Change: -67.78%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 3349.15\n VWAP: 3327.62\n Volume: 79978496.0\n MA5: 3356.72\n MA20: 3356.07\n Volume MA5: 78437990.40\n Price Change: -0.39%\n Volume Change: 107.03%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nSimilar context (score: 0.0311):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 3358.40\n VWAP: 3325.09\n Volume: 851968.0\n MA5: 3355.24\n MA20: 3353.48\n Volume MA5: 11094016.00\n Price Change: 0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 3363.66\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3356.50\n MA20: 3354.01\n Volume MA5: 2964275.20\n Price Change: 0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 3365.16\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3358.65\n MA20: 3354.97\n Volume MA5: 170393.60\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 3357.16\n VWAP: 3325.66\n Volume: 78342144.0\n MA5: 3359.04\n MA20: 3355.32\n Volume MA5: 15838822.40\n Price Change: -0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 3365.39\n VWAP: 3326.34\n Volume: 75356160.0\n MA5: 3361.95\n MA20: 3355.93\n Volume MA5: 30910054.40\n Price Change: 0.25%\n Volume Change: -3.81%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 3349.64\n VWAP: 3326.95\n Volume: 119881728.0\n MA5: 3360.20\n MA20: 3355.78\n Volume MA5: 54716006.40\n Price Change: -0.47%\n Volume Change: 59.09%\n Previous 5min VWAP Movement: up (0.02%)\n \nNext Interval VWAP Movement: up (0.01%)\n===\nSimilar context (score: 0.0312):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 3356.87\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3356.56\n MA20: 3345.94\n Volume MA5: 106810982.40\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 3358.50\n VWAP: 3324.35\n Volume: 59019264.0\n MA5: 3357.81\n MA20: 3347.43\n Volume MA5: 77576601.60\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 3344.66\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3356.10\n MA20: 3348.26\n Volume MA5: 77576601.60\n Price Change: -0.41%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 3342.15\n VWAP: 3327.71\n Volume: 30007296.0\n MA5: 3353.72\n MA20: 3355.03\n Volume MA5: 68771020.80\n Price Change: -0.21%\n Volume Change: -62.48%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 3346.22\n VWAP: 3327.71\n Volume: 0.0\n MA5: 3349.88\n MA20: 3354.47\n Volume MA5: 53699788.80\n Price Change: 0.12%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 3356.33\n VWAP: 3328.10\n Volume: 63913984.0\n MA5: 3351.22\n MA20: 3354.44\n Volume MA5: 42506240.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 3357.97\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3350.36\n MA20: 3354.42\n Volume MA5: 34779955.20\n Price Change: 0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 3357.09\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3351.95\n MA20: 3355.04\n Volume MA5: 18784256.00\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 3365.18\n VWAP: 3328.22\n Volume: 16121856.0\n MA5: 3356.56\n MA20: 3355.97\n Volume MA5: 16007168.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 3387.21\n VWAP: 3332.52\n Volume: 375947264.0\n MA5: 3364.76\n MA20: 3357.64\n Volume MA5: 91196620.80\n Price Change: 0.65%\n Volume Change: 2231.91%\n Previous 5min VWAP Movement: up (0.13%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 3390.28\n VWAP: 3334.26\n Volume: 160458752.0\n MA5: 3371.55\n MA20: 3359.55\n Volume MA5: 110505574.40\n Price Change: 0.09%\n Volume Change: -57.32%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 3395.98\n VWAP: 3335.07\n Volume: 70856704.0\n MA5: 3379.15\n MA20: 3361.48\n Volume MA5: 124676915.20\n Price Change: 0.17%\n Volume Change: -55.84%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 3408.10\n VWAP: 3340.96\n Volume: 472616960.0\n MA5: 3389.35\n MA20: 3364.17\n Volume MA5: 219200307.20\n Price Change: 0.36%\n Volume Change: 567.00%\n Previous 5min VWAP Movement: up (0.18%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 3401.68\n VWAP: 3343.02\n Volume: 205971456.0\n MA5: 3396.65\n MA20: 3366.49\n Volume MA5: 257170227.20\n Price Change: -0.19%\n Volume Change: -56.42%\n Previous 5min VWAP Movement: up (0.06%)\n \n===\nTime: 2025-01-31 15:45:00+00:00\n\n Current Price: 3405.74\n VWAP: 3343.71\n Volume: 67287040.0\n MA5: 3400.35\n MA20: 3369.24\n Volume MA5: 195438182.40\n Price Change: 0.12%\n Volume Change: -67.33%\n Previous 5min VWAP Movement: up (0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.03, \"volatility_estimate\": 0.02, \"suggested_entry\": 3405.74, \"suggested_stop_loss\": 3395.0, \"suggested_take_profit\": 3415.0, \"key_signals\": [\"Recent upward VWAP trend\", \"High volume spikes\", \"Positive price changes\", \"MA5 above MA20\"], \"reasoning\": \"The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes, indicating strong buying interest. Historical similar windows also showed continued VWAP increases following such patterns. The MA5 is consistently above MA20, reinforcing the bullish sentiment. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the upward trend while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0051):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0277):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 417.55\n VWAP: 417.73\n Volume: 199087.0\n MA5: 418.13\n MA20: 418.02\n Volume MA5: 213681.00\n Price Change: -0.09%\n Volume Change: -36.78%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0289):\nTime: 2025-01-31 13:10:00-05:00\n\n Current Price: 418.94\n VWAP: 417.73\n Volume: 161988.0\n MA5: 418.52\n MA20: 417.72\n Volume MA5: 175439.40\n Price Change: 0.11%\n Volume Change: 34.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 417.77\n VWAP: 417.73\n Volume: 271804.0\n MA5: 418.42\n MA20: 417.84\n Volume MA5: 187594.80\n Price Change: -0.28%\n Volume Change: 67.79%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 417.92\n VWAP: 417.73\n Volume: 314905.0\n MA5: 418.34\n MA20: 417.94\n Volume MA5: 214133.60\n Price Change: 0.03%\n Volume Change: 15.86%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 417.55\n VWAP: 417.73\n Volume: 199087.0\n MA5: 418.13\n MA20: 418.02\n Volume MA5: 213681.00\n Price Change: -0.09%\n Volume Change: -36.78%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 416.88\n VWAP: 417.62\n Volume: 121568.0\n MA5: 416.74\n MA20: 417.32\n Volume MA5: 166809.40\n Price Change: 0.11%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 416.26\n VWAP: 417.61\n Volume: 151071.0\n MA5: 416.61\n MA20: 417.22\n Volume MA5: 167200.20\n Price Change: -0.15%\n Volume Change: 24.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 415.86\n VWAP: 417.59\n Volume: 238294.0\n MA5: 416.48\n MA20: 417.08\n Volume MA5: 182244.60\n Price Change: -0.10%\n Volume Change: 57.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 415.60\n VWAP: 417.57\n Volume: 253737.0\n MA5: 416.21\n MA20: 416.94\n Volume MA5: 185872.80\n Price Change: -0.06%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 416.43\n VWAP: 417.55\n Volume: 250281.0\n MA5: 416.21\n MA20: 416.81\n Volume MA5: 202990.20\n Price Change: 0.20%\n Volume Change: -1.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 416.51\n VWAP: 417.54\n Volume: 235283.0\n MA5: 416.13\n MA20: 416.75\n Volume MA5: 225733.20\n Price Change: 0.02%\n Volume Change: -5.99%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 415.75\n VWAP: 417.52\n Volume: 206500.0\n MA5: 416.03\n MA20: 416.64\n Volume MA5: 236819.00\n Price Change: -0.18%\n Volume Change: -12.23%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 416.08\n VWAP: 417.51\n Volume: 207417.0\n MA5: 416.07\n MA20: 416.57\n Volume MA5: 230643.60\n Price Change: 0.08%\n Volume Change: 0.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 415.86\n VWAP: 417.49\n Volume: 223244.0\n MA5: 416.13\n MA20: 416.52\n Volume MA5: 224545.00\n Price Change: -0.05%\n Volume Change: 7.63%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 416.14\n VWAP: 417.48\n Volume: 183515.0\n MA5: 416.07\n MA20: 416.47\n Volume MA5: 211191.80\n Price Change: 0.06%\n Volume Change: -17.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 416.47\n VWAP: 417.47\n Volume: 214901.0\n MA5: 416.06\n MA20: 416.43\n Volume MA5: 207115.40\n Price Change: 0.08%\n Volume Change: 17.10%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 416.14\n VWAP: 417.46\n Volume: 176223.0\n MA5: 416.14\n MA20: 416.39\n Volume MA5: 201060.00\n Price Change: -0.08%\n Volume Change: -18.00%\n Previous 5min VWAP Movement: down (-0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 416.14, \"suggested_stop_loss\": 416.6, \"suggested_take_profit\": 415.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Increasing volume with price decrease\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both the MA5 and MA20, indicating a bearish sentiment. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical similar windows also showed a continuation of the downward VWAP movement. Given these factors, the VWAP is expected to continue its downward trend in the next interval. The suggested entry, stop-loss, and take-profit levels are set to optimize risk management and potential reward based on the current price action and volatility estimate.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0091):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 205.13\n VWAP: 204.51\n Volume: 266431.0\n MA5: 205.13\n MA20: 204.97\n Volume MA5: 226461.80\n Price Change: 0.08%\n Volume Change: 21.66%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nSimilar context (score: 0.0299):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0306):\nTime: 2025-01-31 12:35:00-05:00\n\n Current Price: 204.35\n VWAP: 204.31\n Volume: 74407.0\n MA5: 204.41\n MA20: 204.63\n Volume MA5: 133458.80\n Price Change: 0.02%\n Volume Change: -53.99%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 12:40:00-05:00\n\n Current Price: 204.61\n VWAP: 204.31\n Volume: 133545.0\n MA5: 204.46\n MA20: 204.61\n Volume MA5: 121180.00\n Price Change: 0.13%\n Volume Change: 79.48%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 12:45:00-05:00\n\n Current Price: 204.72\n VWAP: 204.32\n Volume: 205068.0\n MA5: 204.50\n MA20: 204.60\n Volume MA5: 139175.20\n Price Change: 0.05%\n Volume Change: 53.56%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 12:50:00-05:00\n\n Current Price: 204.81\n VWAP: 204.32\n Volume: 174667.0\n MA5: 204.56\n MA20: 204.60\n Volume MA5: 149881.60\n Price Change: 0.04%\n Volume Change: -14.82%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 12:55:00-05:00\n\n Current Price: 204.71\n VWAP: 204.33\n Volume: 162081.0\n MA5: 204.64\n MA20: 204.61\n Volume MA5: 149953.60\n Price Change: -0.05%\n Volume Change: -7.21%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:00:00-05:00\n\n Current Price: 204.86\n VWAP: 204.33\n Volume: 111352.0\n MA5: 204.74\n MA20: 204.63\n Volume MA5: 157342.60\n Price Change: 0.07%\n Volume Change: -31.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:05:00-05:00\n\n Current Price: 204.95\n VWAP: 204.34\n Volume: 194453.0\n MA5: 204.81\n MA20: 204.65\n Volume MA5: 169524.20\n Price Change: 0.04%\n Volume Change: 74.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:10:00-05:00\n\n Current Price: 204.99\n VWAP: 204.35\n Volume: 166805.0\n MA5: 204.86\n MA20: 204.66\n Volume MA5: 161871.60\n Price Change: 0.02%\n Volume Change: -14.22%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 204.66\n VWAP: 204.36\n Volume: 270220.0\n MA5: 204.83\n MA20: 204.64\n Volume MA5: 180982.20\n Price Change: -0.16%\n Volume Change: 62.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 205.23\n VWAP: 204.39\n Volume: 589179.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 266401.80\n Price Change: 0.28%\n Volume Change: 118.04%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 204.61\n VWAP: 204.51\n Volume: 260109.0\n MA5: 204.99\n MA20: 204.97\n Volume MA5: 231002.40\n Price Change: -0.25%\n Volume Change: -2.37%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 204.30\n VWAP: 204.51\n Volume: 284775.0\n MA5: 204.83\n MA20: 204.94\n Volume MA5: 244937.60\n Price Change: -0.15%\n Volume Change: 9.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 204.22\n VWAP: 204.50\n Volume: 444270.0\n MA5: 204.65\n MA20: 204.90\n Volume MA5: 294918.00\n Price Change: -0.04%\n Volume Change: 56.01%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 204.28\n VWAP: 204.50\n Volume: 156725.0\n MA5: 204.51\n MA20: 204.87\n Volume MA5: 282462.00\n Price Change: 0.03%\n Volume Change: -64.72%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 204.29\n VWAP: 204.50\n Volume: 198333.0\n MA5: 204.34\n MA20: 204.85\n Volume MA5: 268842.40\n Price Change: 0.01%\n Volume Change: 26.55%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 203.53\n VWAP: 204.48\n Volume: 318524.0\n MA5: 204.13\n MA20: 204.76\n Volume MA5: 280525.40\n Price Change: -0.37%\n Volume Change: 60.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 203.53\n VWAP: 204.47\n Volume: 241736.0\n MA5: 203.97\n MA20: 204.69\n Volume MA5: 271917.60\n Price Change: 0.00%\n Volume Change: -24.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 203.56\n VWAP: 204.46\n Volume: 221707.0\n MA5: 203.84\n MA20: 204.66\n Volume MA5: 227405.00\n Price Change: 0.01%\n Volume Change: -8.29%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 203.73\n VWAP: 204.45\n Volume: 275884.0\n MA5: 203.73\n MA20: 204.60\n Volume MA5: 251236.80\n Price Change: 0.08%\n Volume Change: 24.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 203.84\n VWAP: 204.44\n Volume: 239855.0\n MA5: 203.64\n MA20: 204.55\n Volume MA5: 259541.20\n Price Change: 0.05%\n Volume Change: -13.06%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 203.57\n VWAP: 204.43\n Volume: 244267.0\n MA5: 203.65\n MA20: 204.48\n Volume MA5: 244689.80\n Price Change: -0.13%\n Volume Change: 1.84%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 203.71\n VWAP: 204.42\n Volume: 247524.0\n MA5: 203.68\n MA20: 204.41\n Volume MA5: 245847.40\n Price Change: 0.07%\n Volume Change: 1.33%\n Previous 5min VWAP Movement: down (-0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 203.71, \"suggested_stop_loss\": 204.0, \"suggested_take_profit\": 203.5, \"key_signals\": [\"Consistent downward VWAP movement in recent intervals\", \"Price consistently below MA5 and MA20\", \"Volume spikes without corresponding price increase\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP over the past several intervals, with prices consistently below both the MA5 and MA20, indicating a bearish sentiment. The volume has been relatively high, yet prices have not increased, suggesting selling pressure. Historical similar contexts also showed a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0108):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 3358.40\n VWAP: 3325.09\n Volume: 851968.0\n MA5: 3355.24\n MA20: 3353.48\n Volume MA5: 11094016.00\n Price Change: 0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 3363.66\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3356.50\n MA20: 3354.01\n Volume MA5: 2964275.20\n Price Change: 0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 3365.16\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3358.65\n MA20: 3354.97\n Volume MA5: 170393.60\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 3357.16\n VWAP: 3325.66\n Volume: 78342144.0\n MA5: 3359.04\n MA20: 3355.32\n Volume MA5: 15838822.40\n Price Change: -0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 3365.39\n VWAP: 3326.34\n Volume: 75356160.0\n MA5: 3361.95\n MA20: 3355.93\n Volume MA5: 30910054.40\n Price Change: 0.25%\n Volume Change: -3.81%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 3349.64\n VWAP: 3326.95\n Volume: 119881728.0\n MA5: 3360.20\n MA20: 3355.78\n Volume MA5: 54716006.40\n Price Change: -0.47%\n Volume Change: 59.09%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nSimilar context (score: 0.0311):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 3356.87\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3356.56\n MA20: 3345.94\n Volume MA5: 106810982.40\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 3358.50\n VWAP: 3324.35\n Volume: 59019264.0\n MA5: 3357.81\n MA20: 3347.43\n Volume MA5: 77576601.60\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 3344.66\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3356.10\n MA20: 3348.26\n Volume MA5: 77576601.60\n Price Change: -0.41%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0323):\nTime: 2025-01-31 12:20:00+00:00\n\n Current Price: 3346.12\n VWAP: 3309.88\n Volume: 86097920.0\n MA5: 3336.28\n MA20: 3314.14\n Volume MA5: 134399180.80\n Price Change: 0.10%\n Volume Change: 36.75%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:25:00+00:00\n\n Current Price: 3349.42\n VWAP: 3312.36\n Volume: 189399040.0\n MA5: 3340.62\n MA20: 3318.28\n Volume MA5: 102964428.80\n Price Change: 0.10%\n Volume Change: 119.98%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 12:30:00+00:00\n\n Current Price: 3356.25\n VWAP: 3314.25\n Volume: 136105984.0\n MA5: 3346.25\n MA20: 3322.58\n Volume MA5: 130185625.60\n Price Change: 0.20%\n Volume Change: -28.14%\n Previous 5min VWAP Movement: up (0.06%)\n \n===\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 3353.13\n VWAP: 3315.84\n Volume: 134987776.0\n MA5: 3349.53\n MA20: 3326.80\n Volume MA5: 121910067.20\n Price Change: -0.09%\n Volume Change: -0.82%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 3345.99\n VWAP: 3316.69\n Volume: 95191040.0\n MA5: 3350.18\n MA20: 3330.35\n Volume MA5: 128356352.00\n Price Change: -0.21%\n Volume Change: -29.48%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 3350.09\n VWAP: 3317.12\n Volume: 44724224.0\n MA5: 3350.97\n MA20: 3333.41\n Volume MA5: 120081612.80\n Price Change: 0.12%\n Volume Change: -53.02%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 3353.20\n VWAP: 3318.40\n Volume: 126611456.0\n MA5: 3351.73\n MA20: 3336.27\n Volume MA5: 107524096.00\n Price Change: 0.09%\n Volume Change: 183.09%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 3352.72\n VWAP: 3318.65\n Volume: 25733120.0\n MA5: 3351.02\n MA20: 3338.58\n Volume MA5: 85449523.20\n Price Change: -0.01%\n Volume Change: -79.68%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 3352.27\n VWAP: 3320.47\n Volume: 205191168.0\n MA5: 3350.85\n MA20: 3340.19\n Volume MA5: 99490201.60\n Price Change: -0.01%\n Volume Change: 697.38%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 3353.22\n VWAP: 3320.47\n Volume: 0.0\n MA5: 3352.30\n MA20: 3341.33\n Volume MA5: 80451993.60\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 3362.26\n VWAP: 3327.25\n Volume: 38631424.0\n MA5: 3359.92\n MA20: 3356.28\n Volume MA5: 62442291.20\n Price Change: 0.38%\n Volume Change: -67.78%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 3349.15\n VWAP: 3327.62\n Volume: 79978496.0\n MA5: 3356.72\n MA20: 3356.07\n Volume MA5: 78437990.40\n Price Change: -0.39%\n Volume Change: 107.03%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 3342.15\n VWAP: 3327.71\n Volume: 30007296.0\n MA5: 3353.72\n MA20: 3355.03\n Volume MA5: 68771020.80\n Price Change: -0.21%\n Volume Change: -62.48%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 3346.22\n VWAP: 3327.71\n Volume: 0.0\n MA5: 3349.88\n MA20: 3354.47\n Volume MA5: 53699788.80\n Price Change: 0.12%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 3356.33\n VWAP: 3328.10\n Volume: 63913984.0\n MA5: 3351.22\n MA20: 3354.44\n Volume MA5: 42506240.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 3357.97\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3350.36\n MA20: 3354.42\n Volume MA5: 34779955.20\n Price Change: 0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 3357.09\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3351.95\n MA20: 3355.04\n Volume MA5: 18784256.00\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 3365.18\n VWAP: 3328.22\n Volume: 16121856.0\n MA5: 3356.56\n MA20: 3355.97\n Volume MA5: 16007168.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 3387.21\n VWAP: 3332.52\n Volume: 375947264.0\n MA5: 3364.76\n MA20: 3357.64\n Volume MA5: 91196620.80\n Price Change: 0.65%\n Volume Change: 2231.91%\n Previous 5min VWAP Movement: up (0.13%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 3390.28\n VWAP: 3334.26\n Volume: 160458752.0\n MA5: 3371.55\n MA20: 3359.55\n Volume MA5: 110505574.40\n Price Change: 0.09%\n Volume Change: -57.32%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 3395.98\n VWAP: 3335.07\n Volume: 70856704.0\n MA5: 3379.15\n MA20: 3361.48\n Volume MA5: 124676915.20\n Price Change: 0.17%\n Volume Change: -55.84%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 3408.10\n VWAP: 3340.96\n Volume: 472616960.0\n MA5: 3389.35\n MA20: 3364.17\n Volume MA5: 219200307.20\n Price Change: 0.36%\n Volume Change: 567.00%\n Previous 5min VWAP Movement: up (0.18%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.15, \"volatility_estimate\": 0.25, \"suggested_entry\": 3408.1, \"suggested_stop_loss\": 3390.0, \"suggested_take_profit\": 3425.0, \"key_signals\": [\"Current Price consistently above MA5 and MA20\", \"Significant increase in volume with price rise\", \"Recent VWAP movements consistently upward\", \"Price Change consistently positive in recent intervals\"], \"reasoning\": \"The current market window shows a strong upward trend with the current price consistently above both the MA5 and MA20, indicating bullish momentum. The recent intervals have seen significant volume spikes accompanying price increases, suggesting strong buying interest. Historical similar contexts also show a pattern of VWAP increases following similar setups. Given these factors, the VWAP is expected to continue its upward trajectory with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to optimize risk-reward based on current price levels and expected volatility.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0100):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 416.88\n VWAP: 417.62\n Volume: 121568.0\n MA5: 416.74\n MA20: 417.32\n Volume MA5: 166809.40\n Price Change: 0.11%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 416.26\n VWAP: 417.61\n Volume: 151071.0\n MA5: 416.61\n MA20: 417.22\n Volume MA5: 167200.20\n Price Change: -0.15%\n Volume Change: 24.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0274):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0284):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 417.55\n VWAP: 417.73\n Volume: 199087.0\n MA5: 418.13\n MA20: 418.02\n Volume MA5: 213681.00\n Price Change: -0.09%\n Volume Change: -36.78%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 415.86\n VWAP: 417.59\n Volume: 238294.0\n MA5: 416.48\n MA20: 417.08\n Volume MA5: 182244.60\n Price Change: -0.10%\n Volume Change: 57.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 415.60\n VWAP: 417.57\n Volume: 253737.0\n MA5: 416.21\n MA20: 416.94\n Volume MA5: 185872.80\n Price Change: -0.06%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 416.43\n VWAP: 417.55\n Volume: 250281.0\n MA5: 416.21\n MA20: 416.81\n Volume MA5: 202990.20\n Price Change: 0.20%\n Volume Change: -1.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 416.51\n VWAP: 417.54\n Volume: 235283.0\n MA5: 416.13\n MA20: 416.75\n Volume MA5: 225733.20\n Price Change: 0.02%\n Volume Change: -5.99%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 415.75\n VWAP: 417.52\n Volume: 206500.0\n MA5: 416.03\n MA20: 416.64\n Volume MA5: 236819.00\n Price Change: -0.18%\n Volume Change: -12.23%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 416.08\n VWAP: 417.51\n Volume: 207417.0\n MA5: 416.07\n MA20: 416.57\n Volume MA5: 230643.60\n Price Change: 0.08%\n Volume Change: 0.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 415.86\n VWAP: 417.49\n Volume: 223244.0\n MA5: 416.13\n MA20: 416.52\n Volume MA5: 224545.00\n Price Change: -0.05%\n Volume Change: 7.63%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 416.14\n VWAP: 417.48\n Volume: 183515.0\n MA5: 416.07\n MA20: 416.47\n Volume MA5: 211191.80\n Price Change: 0.06%\n Volume Change: -17.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 416.47\n VWAP: 417.47\n Volume: 214901.0\n MA5: 416.06\n MA20: 416.43\n Volume MA5: 207115.40\n Price Change: 0.08%\n Volume Change: 17.10%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 416.14\n VWAP: 417.46\n Volume: 176223.0\n MA5: 416.14\n MA20: 416.39\n Volume MA5: 201060.00\n Price Change: -0.08%\n Volume Change: -18.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 416.33\n VWAP: 417.45\n Volume: 278362.0\n MA5: 416.19\n MA20: 416.37\n Volume MA5: 215249.00\n Price Change: 0.04%\n Volume Change: 57.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 416.12\n VWAP: 417.43\n Volume: 218043.0\n MA5: 416.24\n MA20: 416.32\n Volume MA5: 214208.80\n Price Change: -0.05%\n Volume Change: -21.67%\n Previous 5min VWAP Movement: down (-0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 416.12, \"suggested_stop_loss\": 416.5, \"suggested_take_profit\": 415.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with no significant price recovery\", \"Historical context showing similar VWAP decline\"], \"reasoning\": \"The current market window shows a consistent pattern of VWAP decline with no significant recovery in price, even with increased volume. The price remains below both the MA5 and MA20, indicating a bearish trend. Historical context windows with similar patterns also resulted in continued VWAP decline. Given these factors, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0136):\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 5318912.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 11942246.40\n Price Change: -0.26%\n Volume Change: 98.52%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 482944.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4023910.40\n Price Change: 0.23%\n Volume Change: -90.92%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nSimilar context (score: 0.0263):\nTime: 2025-01-31 12:25:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 3571328.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4487552.00\n Price Change: -0.09%\n Volume Change: -59.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:30:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 3511936.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4690432.00\n Price Change: -0.25%\n Volume Change: -1.66%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2940288.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4596403.20\n Price Change: 0.10%\n Volume Change: -16.28%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2368384.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4248499.20\n Price Change: -0.06%\n Volume Change: -19.45%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 2478387.20\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 984832.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1961088.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1464064.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1551513.60\n Price Change: 0.08%\n Volume Change: 48.66%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \nNext Interval VWAP Movement: up (0.03%)\n===\nSimilar context (score: 0.0263):\nTime: 2025-01-31 09:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 45696.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: -0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:25:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1077632.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 215526.40\n Price Change: -0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.24%)\n \n===\nTime: 2025-01-31 10:30:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 215526.40\n Price Change: -0.01%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 215526.40\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 6016.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 216729.60\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 10:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 923904.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 401510.40\n Price Change: 0.11%\n Volume Change: 15257.45%\n Previous 5min VWAP Movement: up (0.08%)\n \n===\nTime: 2025-01-31 10:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 552704.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 296524.80\n Price Change: 0.08%\n Volume Change: -40.18%\n Previous 5min VWAP Movement: up (0.04%)\n \nNext Interval VWAP Movement: up (0.04%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 5339008.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 3604608.00\n Price Change: -0.76%\n Volume Change: 1005.51%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 9962368.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4756505.60\n Price Change: -0.10%\n Volume Change: 86.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7177472.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 5656140.80\n Price Change: -0.10%\n Volume Change: -27.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4592358.40\n Price Change: -0.53%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4495769.60\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 3427968.00\n Price Change: 0.36%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1435494.40\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4986112.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 997222.40\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7286016.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 2454425.60\n Price Change: -0.00%\n Volume Change: 46.13%\n Previous 5min VWAP Movement: up (0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.75, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.01, \"suggested_entry\": 0.33, \"suggested_stop_loss\": 0.32, \"suggested_take_profit\": 0.34, \"key_signals\": [\"Consistent VWAP stability\", \"Recent price increase\", \"Volume increase in the last interval\", \"Historical pattern of VWAP increase after similar conditions\"], \"reasoning\": \"The current market window shows a stable VWAP with a recent price increase and a significant volume spike, suggesting potential upward movement. Historical patterns indicate that similar conditions often lead to a slight VWAP increase. The confidence score reflects the consistency of these patterns, and the suggested trade levels are based on expected minor volatility and typical price movements observed in similar past scenarios.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0108):\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 104626.39\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104632.21\n MA20: 104727.76\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 104561.80\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104620.95\n MA20: 104725.38\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 104619.02\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104613.29\n MA20: 104721.35\n Volume MA5: 0.00\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 104505.77\n VWAP: 104694.66\n Volume: 15290368.0\n MA5: 104600.90\n MA20: 104713.61\n Volume MA5: 3058073.60\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 104268.98\n VWAP: 104692.86\n Volume: 5103616.0\n MA5: 104516.39\n MA20: 104692.45\n Volume MA5: 4078796.80\n Price Change: -0.23%\n Volume Change: -66.62%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 104533.95\n VWAP: 104678.50\n Volume: 119975936.0\n MA5: 104497.90\n MA20: 104679.93\n Volume MA5: 28073984.00\n Price Change: 0.25%\n Volume Change: 2250.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0279):\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0287):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 105006.83\n VWAP: 104689.98\n Volume: 100376576.0\n MA5: 104823.07\n MA20: 104735.29\n Volume MA5: 37095014.40\n Price Change: 0.03%\n Volume Change: 40.31%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 104322.42\n VWAP: 104663.33\n Volume: 59072512.0\n MA5: 104450.03\n MA20: 104647.48\n Volume MA5: 39888486.40\n Price Change: -0.20%\n Volume Change: -50.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 104400.73\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104406.37\n MA20: 104617.18\n Volume MA5: 39888486.40\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 104414.38\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104388.10\n MA20: 104593.22\n Volume MA5: 36830412.80\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 104625.29\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104459.36\n MA20: 104582.41\n Volume MA5: 35809689.60\n Price Change: 0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 104651.27\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104482.82\n MA20: 104570.69\n Volume MA5: 11814502.40\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 104905.10\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104599.35\n MA20: 104582.51\n Volume MA5: 0.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 104794.17\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104678.04\n MA20: 104590.36\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 105016.59\n VWAP: 104668.16\n Volume: 19238912.0\n MA5: 104798.48\n MA20: 104608.57\n Volume MA5: 3847782.40\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 105162.55\n VWAP: 104699.17\n Volume: 94085120.0\n MA5: 104905.93\n MA20: 104632.97\n Volume MA5: 22664806.40\n Price Change: 0.14%\n Volume Change: 389.04%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 105477.88\n VWAP: 104699.17\n Volume: 0.0\n MA5: 105071.26\n MA20: 104671.05\n Volume MA5: 22664806.40\n Price Change: 0.30%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 105839.16\n VWAP: 104867.84\n Volume: 260456448.0\n MA5: 105258.07\n MA20: 104732.10\n Volume MA5: 74756096.00\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.16%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 105649.51\n VWAP: 104977.28\n Volume: 286621696.0\n MA5: 105429.14\n MA20: 104781.71\n Volume MA5: 132080435.20\n Price Change: -0.18%\n Volume Change: 10.05%\n Previous 5min VWAP Movement: up (0.10%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.12, \"volatility_estimate\": 0.15, \"suggested_entry\": 105649.51, \"suggested_stop_loss\": 105477.88, \"suggested_take_profit\": 105839.16, \"key_signals\": [\"Recent increase in volume\", \"Positive price change\", \"VWAP moving upwards\", \"MA5 crossing above MA20\"], \"reasoning\": \"The current market window shows a significant increase in volume and a positive price change, indicating strong buying interest. The VWAP has been moving upwards, supported by the MA5 crossing above the MA20, which is a bullish signal. Historical context windows with similar patterns also showed subsequent VWAP increases. Given these factors, the VWAP is likely to continue moving up in the next interval. The suggested entry, stop-loss, and take-profit levels are based on recent price action and volatility estimates to optimize risk-reward.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0128):\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 5318912.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 11942246.40\n Price Change: -0.26%\n Volume Change: 98.52%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 482944.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4023910.40\n Price Change: 0.23%\n Volume Change: -90.92%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 5339008.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 3604608.00\n Price Change: -0.76%\n Volume Change: 1005.51%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 9962368.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4756505.60\n Price Change: -0.10%\n Volume Change: 86.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0283):\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2940288.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4596403.20\n Price Change: 0.10%\n Volume Change: -16.28%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2368384.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4248499.20\n Price Change: -0.06%\n Volume Change: -19.45%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 2478387.20\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 984832.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1961088.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1464064.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1551513.60\n Price Change: 0.08%\n Volume Change: 48.66%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0284):\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7177472.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 5656140.80\n Price Change: -0.10%\n Volume Change: -27.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4592358.40\n Price Change: -0.53%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4495769.60\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 3427968.00\n Price Change: 0.36%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1435494.40\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4986112.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 997222.40\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7286016.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 2454425.60\n Price Change: -0.00%\n Volume Change: 46.13%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 33203456.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 9095116.80\n Price Change: 0.62%\n Volume Change: 355.71%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.34\n Volume: 24845568.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 14064230.40\n Price Change: 0.33%\n Volume Change: -25.17%\n Previous 5min VWAP Movement: up (0.12%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 0.34, \"suggested_stop_loss\": 0.33, \"suggested_take_profit\": 0.35, \"key_signals\": [\"Consistent VWAP upward movement in recent intervals\", \"Price stability around 0.34\", \"Volume increase in the last interval\", \"MA5 and MA20 alignment\"], \"reasoning\": \"The current market window shows a consistent upward movement in VWAP over the last few intervals, supported by a significant increase in volume. The price has stabilized around 0.34, and both MA5 and MA20 are aligned, indicating a bullish trend. Historical contexts with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0093):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 416.88\n VWAP: 417.62\n Volume: 121568.0\n MA5: 416.74\n MA20: 417.32\n Volume MA5: 166809.40\n Price Change: 0.11%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0271):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0281):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 417.55\n VWAP: 417.73\n Volume: 199087.0\n MA5: 418.13\n MA20: 418.02\n Volume MA5: 213681.00\n Price Change: -0.09%\n Volume Change: -36.78%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 416.26\n VWAP: 417.61\n Volume: 151071.0\n MA5: 416.61\n MA20: 417.22\n Volume MA5: 167200.20\n Price Change: -0.15%\n Volume Change: 24.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 415.86\n VWAP: 417.59\n Volume: 238294.0\n MA5: 416.48\n MA20: 417.08\n Volume MA5: 182244.60\n Price Change: -0.10%\n Volume Change: 57.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 415.60\n VWAP: 417.57\n Volume: 253737.0\n MA5: 416.21\n MA20: 416.94\n Volume MA5: 185872.80\n Price Change: -0.06%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 416.43\n VWAP: 417.55\n Volume: 250281.0\n MA5: 416.21\n MA20: 416.81\n Volume MA5: 202990.20\n Price Change: 0.20%\n Volume Change: -1.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 416.51\n VWAP: 417.54\n Volume: 235283.0\n MA5: 416.13\n MA20: 416.75\n Volume MA5: 225733.20\n Price Change: 0.02%\n Volume Change: -5.99%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 415.75\n VWAP: 417.52\n Volume: 206500.0\n MA5: 416.03\n MA20: 416.64\n Volume MA5: 236819.00\n Price Change: -0.18%\n Volume Change: -12.23%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 416.08\n VWAP: 417.51\n Volume: 207417.0\n MA5: 416.07\n MA20: 416.57\n Volume MA5: 230643.60\n Price Change: 0.08%\n Volume Change: 0.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 415.86\n VWAP: 417.49\n Volume: 223244.0\n MA5: 416.13\n MA20: 416.52\n Volume MA5: 224545.00\n Price Change: -0.05%\n Volume Change: 7.63%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 416.14\n VWAP: 417.48\n Volume: 183515.0\n MA5: 416.07\n MA20: 416.47\n Volume MA5: 211191.80\n Price Change: 0.06%\n Volume Change: -17.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 416.47\n VWAP: 417.47\n Volume: 214901.0\n MA5: 416.06\n MA20: 416.43\n Volume MA5: 207115.40\n Price Change: 0.08%\n Volume Change: 17.10%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 416.14\n VWAP: 417.46\n Volume: 176223.0\n MA5: 416.14\n MA20: 416.39\n Volume MA5: 201060.00\n Price Change: -0.08%\n Volume Change: -18.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 416.33\n VWAP: 417.45\n Volume: 278362.0\n MA5: 416.19\n MA20: 416.37\n Volume MA5: 215249.00\n Price Change: 0.04%\n Volume Change: 57.96%\n Previous 5min VWAP Movement: down (-0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 416.33, \"suggested_stop_loss\": 416.6, \"suggested_take_profit\": 416.0, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Increasing volume with decreasing price\", \"Historical context showing similar patterns\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with prices consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while prices are decreasing, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0086):\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 5318912.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 11942246.40\n Price Change: -0.26%\n Volume Change: 98.52%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 482944.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4023910.40\n Price Change: 0.23%\n Volume Change: -90.92%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 5339008.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 3604608.00\n Price Change: -0.76%\n Volume Change: 1005.51%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 9962368.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4756505.60\n Price Change: -0.10%\n Volume Change: 86.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7177472.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 5656140.80\n Price Change: -0.10%\n Volume Change: -27.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0250):\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2940288.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4596403.20\n Price Change: 0.10%\n Volume Change: -16.28%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 2368384.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 4248499.20\n Price Change: -0.06%\n Volume Change: -19.45%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 2478387.20\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 984832.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1961088.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 1464064.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1551513.60\n Price Change: 0.08%\n Volume Change: 48.66%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0252):\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 963456.00\n Price Change: 0.11%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7513856.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1992550.40\n Price Change: 0.27%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.09%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 16319872.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 5256524.80\n Price Change: 0.60%\n Volume Change: 117.20%\n Previous 5min VWAP Movement: up (0.24%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 12258688.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 7511296.00\n Price Change: -0.14%\n Volume Change: -24.88%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4592358.40\n Price Change: -0.53%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4495769.60\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 3427968.00\n Price Change: 0.36%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1435494.40\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4986112.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 997222.40\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7286016.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 2454425.60\n Price Change: -0.00%\n Volume Change: 46.13%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 33203456.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 9095116.80\n Price Change: 0.62%\n Volume Change: 355.71%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.34\n Volume: 24845568.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 14064230.40\n Price Change: 0.33%\n Volume Change: -25.17%\n Previous 5min VWAP Movement: up (0.12%)\n \n===\nTime: 2025-01-31 15:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.34\n Volume: 6702464.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 15404723.20\n Price Change: -0.04%\n Volume Change: -73.02%\n Previous 5min VWAP Movement: up (0.03%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 0.34, \"suggested_stop_loss\": 0.33, \"suggested_take_profit\": 0.35, \"key_signals\": [\"Consistent VWAP upward movement in recent intervals\", \"Price stability around 0.34\", \"Volume spikes in recent intervals\", \"MA5 and MA20 alignment indicating bullish trend\"], \"reasoning\": \"The current market window shows a consistent upward movement in VWAP with recent intervals maintaining a price around 0.34. Historical context windows with similar patterns also resulted in VWAP increases. The recent volume spikes suggest increased market activity, supporting a potential upward movement. The alignment of MA5 and MA20 indicates a bullish trend. Given these factors, a VWAP increase is predicted with a high confidence score. The suggested entry, stop-loss, and take-profit levels are set to optimize risk-reward based on current price levels and expected volatility.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0157):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 130.51\n VWAP: 133.35\n Volume: 0.0\n MA5: 131.15\n MA20: 131.57\n Volume MA5: 0.00\n Price Change: -0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0322):\nTime: 2025-01-31 09:35:00+00:00\n\n Current Price: 129.50\n VWAP: 129.52\n Volume: 875392.0\n MA5: 129.53\n MA20: 129.53\n Volume MA5: 696768.00\n Price Change: -0.04%\n Volume Change: 68.95%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 09:40:00+00:00\n\n Current Price: 129.60\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.55\n MA20: 129.55\n Volume MA5: 464512.00\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:45:00+00:00\n\n Current Price: 129.78\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.61\n MA20: 129.61\n Volume MA5: 348384.00\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:50:00+00:00\n\n Current Price: 130.05\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.70\n MA20: 129.70\n Volume MA5: 278707.20\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:55:00+00:00\n\n Current Price: 130.26\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.84\n MA20: 129.79\n Volume MA5: 175078.40\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:00:00+00:00\n\n Current Price: 130.21\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.98\n MA20: 129.85\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:05:00+00:00\n\n Current Price: 130.34\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.13\n MA20: 129.91\n Volume MA5: 0.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:10:00+00:00\n\n Current Price: 130.37\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.25\n MA20: 129.96\n Volume MA5: 0.00\n Price Change: 0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:15:00+00:00\n\n Current Price: 130.29\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.30\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:20:00+00:00\n\n Current Price: 130.30\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.31\n MA20: 130.03\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:25:00+00:00\n\n Current Price: 131.06\n VWAP: 130.65\n Volume: 3770112.0\n MA5: 130.48\n MA20: 130.11\n Volume MA5: 754022.40\n Price Change: 0.58%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.87%)\n \n===\nTime: 2025-01-31 10:30:00+00:00\n\n Current Price: 131.37\n VWAP: 130.70\n Volume: 433152.0\n MA5: 130.68\n MA20: 130.21\n Volume MA5: 840652.80\n Price Change: 0.24%\n Volume Change: -88.51%\n Previous 5min VWAP Movement: up (0.04%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0346):\nTime: 2025-01-31 09:40:00+00:00\n\n Current Price: 129.60\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.55\n MA20: 129.55\n Volume MA5: 464512.00\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:45:00+00:00\n\n Current Price: 129.78\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.61\n MA20: 129.61\n Volume MA5: 348384.00\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:50:00+00:00\n\n Current Price: 130.05\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.70\n MA20: 129.70\n Volume MA5: 278707.20\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:55:00+00:00\n\n Current Price: 130.26\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.84\n MA20: 129.79\n Volume MA5: 175078.40\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:00:00+00:00\n\n Current Price: 130.21\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.98\n MA20: 129.85\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:05:00+00:00\n\n Current Price: 130.34\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.13\n MA20: 129.91\n Volume MA5: 0.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:10:00+00:00\n\n Current Price: 130.37\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.25\n MA20: 129.96\n Volume MA5: 0.00\n Price Change: 0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:15:00+00:00\n\n Current Price: 130.29\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.30\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:20:00+00:00\n\n Current Price: 130.30\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.31\n MA20: 130.03\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:25:00+00:00\n\n Current Price: 131.06\n VWAP: 130.65\n Volume: 3770112.0\n MA5: 130.48\n MA20: 130.11\n Volume MA5: 754022.40\n Price Change: 0.58%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.87%)\n \n===\nTime: 2025-01-31 10:30:00+00:00\n\n Current Price: 131.37\n VWAP: 130.70\n Volume: 433152.0\n MA5: 130.68\n MA20: 130.21\n Volume MA5: 840652.80\n Price Change: 0.24%\n Volume Change: -88.51%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 10:35:00+00:00\n\n Current Price: 131.70\n VWAP: 130.70\n Volume: 0.0\n MA5: 130.95\n MA20: 130.32\n Volume MA5: 840652.80\n Price Change: 0.25%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.47%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 129.90\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.67\n MA20: 130.26\n Volume MA5: 32435.20\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 129.98\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 130.17\n Volume MA5: 0.00\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 130.01\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.82\n MA20: 130.08\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 129.96\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.86\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 129.82\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.93\n MA20: 129.93\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 129.38\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.83\n MA20: 129.87\n Volume MA5: 0.00\n Price Change: -0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 129.60\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 129.82\n Volume MA5: 0.00\n Price Change: 0.17%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 129.44\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.64\n MA20: 129.78\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.54\n MA20: 129.73\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 129.85\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 129.72\n Volume MA5: 0.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 129.85, \"suggested_stop_loss\": 130.1, \"suggested_take_profit\": 129.6, \"key_signals\": [\"Consistent VWAP downtrend\", \"Price below MA5 and MA20\", \"No significant volume change\"], \"reasoning\": \"The current market window shows a consistent VWAP downtrend with no significant volume to suggest a reversal. Historical patterns with similar VWAP and price movements also resulted in continued VWAP declines. The price is below both MA5 and MA20, indicating bearish momentum. Given these factors, a short position is recommended with a high confidence score. The suggested entry, stop-loss, and take-profit levels are set to manage risk and capitalize on the expected VWAP decline.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0074):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 3344.66\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3356.10\n MA20: 3348.26\n Volume MA5: 77576601.60\n Price Change: -0.41%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 3358.40\n VWAP: 3325.09\n Volume: 851968.0\n MA5: 3355.24\n MA20: 3353.48\n Volume MA5: 11094016.00\n Price Change: 0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 3363.66\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3356.50\n MA20: 3354.01\n Volume MA5: 2964275.20\n Price Change: 0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 3365.16\n VWAP: 3325.09\n Volume: 0.0\n MA5: 3358.65\n MA20: 3354.97\n Volume MA5: 170393.60\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 3357.16\n VWAP: 3325.66\n Volume: 78342144.0\n MA5: 3359.04\n MA20: 3355.32\n Volume MA5: 15838822.40\n Price Change: -0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nSimilar context (score: 0.0331):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 3356.87\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3356.56\n MA20: 3345.94\n Volume MA5: 106810982.40\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 3358.50\n VWAP: 3324.35\n Volume: 59019264.0\n MA5: 3357.81\n MA20: 3347.43\n Volume MA5: 77576601.60\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 3344.66\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3356.10\n MA20: 3348.26\n Volume MA5: 77576601.60\n Price Change: -0.41%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 3346.58\n VWAP: 3324.35\n Volume: 0.0\n MA5: 3352.83\n MA20: 3348.74\n Volume MA5: 11803852.80\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 3353.68\n VWAP: 3324.67\n Volume: 46946304.0\n MA5: 3352.06\n MA20: 3350.03\n Volume MA5: 21193113.60\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 3352.11\n VWAP: 3324.67\n Volume: 0.0\n MA5: 3351.10\n MA20: 3351.23\n Volume MA5: 21193113.60\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 3357.36\n VWAP: 3324.98\n Volume: 40648704.0\n MA5: 3350.88\n MA20: 3352.27\n Volume MA5: 17519001.60\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 3354.39\n VWAP: 3325.08\n Volume: 13969408.0\n MA5: 3352.82\n MA20: 3352.85\n Volume MA5: 20312883.20\n Price Change: -0.09%\n Volume Change: -65.63%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 3355.24\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3354.56\n MA20: 3353.31\n Volume MA5: 20312883.20\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 3350.81\n VWAP: 3325.08\n Volume: 0.0\n MA5: 3353.98\n MA20: 3353.38\n Volume MA5: 10923622.40\n Price Change: -0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0340):\nTime: 2025-01-31 12:20:00+00:00\n\n Current Price: 3346.12\n VWAP: 3309.88\n Volume: 86097920.0\n MA5: 3336.28\n MA20: 3314.14\n Volume MA5: 134399180.80\n Price Change: 0.10%\n Volume Change: 36.75%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:25:00+00:00\n\n Current Price: 3349.42\n VWAP: 3312.36\n Volume: 189399040.0\n MA5: 3340.62\n MA20: 3318.28\n Volume MA5: 102964428.80\n Price Change: 0.10%\n Volume Change: 119.98%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 12:30:00+00:00\n\n Current Price: 3356.25\n VWAP: 3314.25\n Volume: 136105984.0\n MA5: 3346.25\n MA20: 3322.58\n Volume MA5: 130185625.60\n Price Change: 0.20%\n Volume Change: -28.14%\n Previous 5min VWAP Movement: up (0.06%)\n \n===\nTime: 2025-01-31 12:35:00+00:00\n\n Current Price: 3353.13\n VWAP: 3315.84\n Volume: 134987776.0\n MA5: 3349.53\n MA20: 3326.80\n Volume MA5: 121910067.20\n Price Change: -0.09%\n Volume Change: -0.82%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 12:40:00+00:00\n\n Current Price: 3345.99\n VWAP: 3316.69\n Volume: 95191040.0\n MA5: 3350.18\n MA20: 3330.35\n Volume MA5: 128356352.00\n Price Change: -0.21%\n Volume Change: -29.48%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 12:45:00+00:00\n\n Current Price: 3350.09\n VWAP: 3317.12\n Volume: 44724224.0\n MA5: 3350.97\n MA20: 3333.41\n Volume MA5: 120081612.80\n Price Change: 0.12%\n Volume Change: -53.02%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 12:50:00+00:00\n\n Current Price: 3353.20\n VWAP: 3318.40\n Volume: 126611456.0\n MA5: 3351.73\n MA20: 3336.27\n Volume MA5: 107524096.00\n Price Change: 0.09%\n Volume Change: 183.09%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 12:55:00+00:00\n\n Current Price: 3352.72\n VWAP: 3318.65\n Volume: 25733120.0\n MA5: 3351.02\n MA20: 3338.58\n Volume MA5: 85449523.20\n Price Change: -0.01%\n Volume Change: -79.68%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:00:00+00:00\n\n Current Price: 3352.27\n VWAP: 3320.47\n Volume: 205191168.0\n MA5: 3350.85\n MA20: 3340.19\n Volume MA5: 99490201.60\n Price Change: -0.01%\n Volume Change: 697.38%\n Previous 5min VWAP Movement: up (0.05%)\n \n===\nTime: 2025-01-31 13:05:00+00:00\n\n Current Price: 3353.22\n VWAP: 3320.47\n Volume: 0.0\n MA5: 3352.30\n MA20: 3341.33\n Volume MA5: 80451993.60\n Price Change: 0.03%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 3362.93\n VWAP: 3323.86\n Volume: 328863744.0\n MA5: 3354.87\n MA20: 3343.17\n Volume MA5: 137279897.60\n Price Change: 0.29%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 3357.53\n VWAP: 3323.86\n Volume: 0.0\n MA5: 3355.73\n MA20: 3344.64\n Volume MA5: 111957606.40\n Price Change: -0.16%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 3365.39\n VWAP: 3326.34\n Volume: 75356160.0\n MA5: 3361.95\n MA20: 3355.93\n Volume MA5: 30910054.40\n Price Change: 0.25%\n Volume Change: -3.81%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 3349.64\n VWAP: 3326.95\n Volume: 119881728.0\n MA5: 3360.20\n MA20: 3355.78\n Volume MA5: 54716006.40\n Price Change: -0.47%\n Volume Change: 59.09%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 3362.26\n VWAP: 3327.25\n Volume: 38631424.0\n MA5: 3359.92\n MA20: 3356.28\n Volume MA5: 62442291.20\n Price Change: 0.38%\n Volume Change: -67.78%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 3349.15\n VWAP: 3327.62\n Volume: 79978496.0\n MA5: 3356.72\n MA20: 3356.07\n Volume MA5: 78437990.40\n Price Change: -0.39%\n Volume Change: 107.03%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 3342.15\n VWAP: 3327.71\n Volume: 30007296.0\n MA5: 3353.72\n MA20: 3355.03\n Volume MA5: 68771020.80\n Price Change: -0.21%\n Volume Change: -62.48%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 3346.22\n VWAP: 3327.71\n Volume: 0.0\n MA5: 3349.88\n MA20: 3354.47\n Volume MA5: 53699788.80\n Price Change: 0.12%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 3356.33\n VWAP: 3328.10\n Volume: 63913984.0\n MA5: 3351.22\n MA20: 3354.44\n Volume MA5: 42506240.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 3357.97\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3350.36\n MA20: 3354.42\n Volume MA5: 34779955.20\n Price Change: 0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 3357.09\n VWAP: 3328.10\n Volume: 0.0\n MA5: 3351.95\n MA20: 3355.04\n Volume MA5: 18784256.00\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 3365.18\n VWAP: 3328.22\n Volume: 16121856.0\n MA5: 3356.56\n MA20: 3355.97\n Volume MA5: 16007168.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 3387.21\n VWAP: 3332.52\n Volume: 375947264.0\n MA5: 3364.76\n MA20: 3357.64\n Volume MA5: 91196620.80\n Price Change: 0.65%\n Volume Change: 2231.91%\n Previous 5min VWAP Movement: up (0.13%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 3390.28\n VWAP: 3334.26\n Volume: 160458752.0\n MA5: 3371.55\n MA20: 3359.55\n Volume MA5: 110505574.40\n Price Change: 0.09%\n Volume Change: -57.32%\n Previous 5min VWAP Movement: up (0.05%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.03, \"volatility_estimate\": 0.02, \"suggested_entry\": 3390.28, \"suggested_stop_loss\": 3380.0, \"suggested_take_profit\": 3400.0, \"key_signals\": [\"Recent strong upward price movement\", \"High volume in the last interval\", \"Consistent upward VWAP movement\", \"MA5 above MA20 indicating bullish trend\"], \"reasoning\": \"The current market window shows a strong upward price movement with a significant increase in volume, suggesting bullish momentum. The VWAP has been consistently moving up, and the MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also showed upward VWAP movements following such patterns. Given these signals, the VWAP is likely to continue moving up in the next interval. The suggested entry, stop-loss, and take-profit levels are set to optimize trade execution while managing risk, considering the current price and expected volatility.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0141):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 104626.39\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104632.21\n MA20: 104727.76\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 104561.80\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104620.95\n MA20: 104725.38\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 104619.02\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104613.29\n MA20: 104721.35\n Volume MA5: 0.00\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0283):\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0289):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 105006.83\n VWAP: 104689.98\n Volume: 100376576.0\n MA5: 104823.07\n MA20: 104735.29\n Volume MA5: 37095014.40\n Price Change: 0.03%\n Volume Change: 40.31%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 104505.77\n VWAP: 104694.66\n Volume: 15290368.0\n MA5: 104600.90\n MA20: 104713.61\n Volume MA5: 3058073.60\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 104268.98\n VWAP: 104692.86\n Volume: 5103616.0\n MA5: 104516.39\n MA20: 104692.45\n Volume MA5: 4078796.80\n Price Change: -0.23%\n Volume Change: -66.62%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 104533.95\n VWAP: 104678.50\n Volume: 119975936.0\n MA5: 104497.90\n MA20: 104679.93\n Volume MA5: 28073984.00\n Price Change: 0.25%\n Volume Change: 2250.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 104322.42\n VWAP: 104663.33\n Volume: 59072512.0\n MA5: 104450.03\n MA20: 104647.48\n Volume MA5: 39888486.40\n Price Change: -0.20%\n Volume Change: -50.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 104400.73\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104406.37\n MA20: 104617.18\n Volume MA5: 39888486.40\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 104414.38\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104388.10\n MA20: 104593.22\n Volume MA5: 36830412.80\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 104625.29\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104459.36\n MA20: 104582.41\n Volume MA5: 35809689.60\n Price Change: 0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 104651.27\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104482.82\n MA20: 104570.69\n Volume MA5: 11814502.40\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 104905.10\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104599.35\n MA20: 104582.51\n Volume MA5: 0.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 104794.17\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104678.04\n MA20: 104590.36\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 105016.59\n VWAP: 104668.16\n Volume: 19238912.0\n MA5: 104798.48\n MA20: 104608.57\n Volume MA5: 3847782.40\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 105162.55\n VWAP: 104699.17\n Volume: 94085120.0\n MA5: 104905.93\n MA20: 104632.97\n Volume MA5: 22664806.40\n Price Change: 0.14%\n Volume Change: 389.04%\n Previous 5min VWAP Movement: up (0.03%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 105162.55, \"suggested_stop_loss\": 104900.0, \"suggested_take_profit\": 105300.0, \"key_signals\": [\"Recent price increase\", \"High volume in the last interval\", \"VWAP upward movement in the last interval\", \"MA5 crossing above MA20\"], \"reasoning\": \"The current market window shows a strong upward price movement with significant volume, indicating buying pressure. The VWAP has started to move up, supported by a recent price increase and a high volume spike. The MA5 is crossing above the MA20, suggesting a bullish trend. Historical similar contexts also show VWAP moving up after such patterns. Therefore, a further upward movement in VWAP is expected with moderate volatility.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0124):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 122.06\n VWAP: 125.12\n Volume: 3632388.0\n MA5: 122.78\n MA20: 123.74\n Volume MA5: 2731326.40\n Price Change: -0.73%\n Volume Change: 47.90%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nSimilar context (score: 0.0305):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.04%)\n===\nSimilar context (score: 0.0308):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 121.76\n VWAP: 125.06\n Volume: 4011313.0\n MA5: 122.58\n MA20: 123.56\n Volume MA5: 2942127.60\n Price Change: -0.25%\n Volume Change: 10.43%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 121.99\n VWAP: 125.01\n Volume: 4478122.0\n MA5: 122.36\n MA20: 123.41\n Volume MA5: 3401208.60\n Price Change: 0.19%\n Volume Change: 11.64%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 121.67\n VWAP: 124.95\n Volume: 4678896.0\n MA5: 122.09\n MA20: 123.24\n Volume MA5: 3851341.00\n Price Change: -0.26%\n Volume Change: 4.48%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 121.88\n VWAP: 124.92\n Volume: 3032372.0\n MA5: 121.87\n MA20: 123.12\n Volume MA5: 3966618.20\n Price Change: 0.17%\n Volume Change: -35.19%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 121.10\n VWAP: 124.87\n Volume: 3839577.0\n MA5: 121.68\n MA20: 122.95\n Volume MA5: 4008056.00\n Price Change: -0.64%\n Volume Change: 26.62%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 120.98\n VWAP: 124.81\n Volume: 3871017.0\n MA5: 121.52\n MA20: 122.79\n Volume MA5: 3979996.80\n Price Change: -0.10%\n Volume Change: 0.82%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 120.87\n VWAP: 124.77\n Volume: 3214651.0\n MA5: 121.30\n MA20: 122.65\n Volume MA5: 3727302.60\n Price Change: -0.09%\n Volume Change: -16.96%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 120.71\n VWAP: 124.72\n Volume: 3259275.0\n MA5: 121.11\n MA20: 122.48\n Volume MA5: 3443378.40\n Price Change: -0.13%\n Volume Change: 1.39%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 120.38\n VWAP: 124.65\n Volume: 4637022.0\n MA5: 120.81\n MA20: 122.32\n Volume MA5: 3764308.40\n Price Change: -0.28%\n Volume Change: 42.27%\n Previous 5min VWAP Movement: down (-0.06%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 120.11\n VWAP: 124.55\n Volume: 6892730.0\n MA5: 120.61\n MA20: 122.14\n Volume MA5: 4374939.00\n Price Change: -0.22%\n Volume Change: 48.65%\n Previous 5min VWAP Movement: down (-0.08%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 120.09\n VWAP: 124.50\n Volume: 3596041.0\n MA5: 120.43\n MA20: 121.96\n Volume MA5: 4319943.80\n Price Change: -0.02%\n Volume Change: -47.83%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 119.64\n VWAP: 124.40\n Volume: 5993828.0\n MA5: 120.19\n MA20: 121.75\n Volume MA5: 4875779.20\n Price Change: -0.37%\n Volume Change: 66.68%\n Previous 5min VWAP Movement: down (-0.08%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.07, \"suggested_entry\": 119.5, \"suggested_stop_loss\": 120.2, \"suggested_take_profit\": 119.0, \"key_signals\": [\"Consistent downward VWAP movement\", \"High volume spikes\", \"Price consistently below MA5 and MA20\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical context windows with similar patterns also resulted in continued VWAP declines. Given these factors, the prediction is for a continued downward movement in VWAP with a high confidence score. The suggested entry, stop-loss, and take-profit levels are set to optimize risk management and potential reward based on the observed volatility and trend strength.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0141):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0270):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 130.51\n VWAP: 133.35\n Volume: 0.0\n MA5: 131.15\n MA20: 131.57\n Volume MA5: 0.00\n Price Change: -0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0282):\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 129.90\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.67\n MA20: 130.26\n Volume MA5: 32435.20\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 129.98\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 130.17\n Volume MA5: 0.00\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 130.01\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.82\n MA20: 130.08\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 129.96\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.86\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 129.82\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.93\n MA20: 129.93\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 129.38\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.83\n MA20: 129.87\n Volume MA5: 0.00\n Price Change: -0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 129.60\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 129.82\n Volume MA5: 0.00\n Price Change: 0.17%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 129.44\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.64\n MA20: 129.78\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.54\n MA20: 129.73\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 129.85\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 129.72\n Volume MA5: 0.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 130.50\n VWAP: 133.20\n Volume: 2725120.0\n MA5: 129.77\n MA20: 129.74\n Volume MA5: 545024.00\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.07%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 130.90\n VWAP: 133.04\n Volume: 6296960.0\n MA5: 130.03\n MA20: 129.78\n Volume MA5: 1804416.00\n Price Change: 0.30%\n Volume Change: 131.07%\n Previous 5min VWAP Movement: down (-0.12%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.02, \"suggested_entry\": 130.9, \"suggested_stop_loss\": 131.1, \"suggested_take_profit\": 130.5, \"key_signals\": [\"Consistent VWAP decline in historical windows\", \"Current VWAP below MA5 and MA20\", \"Recent high volume with no significant VWAP increase\"], \"reasoning\": \"The historical context shows a consistent pattern of VWAP decline with similar market conditions, where the VWAP remained below both MA5 and MA20. Despite recent high volume, the VWAP has not shown an upward trend, suggesting a continuation of the downward movement. The confidence score is high due to the strong resemblance of the current market window to past patterns. The suggested trade levels are based on the recent price peak and expected continuation of the VWAP decline.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0054):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 235.68\n VWAP: 240.82\n Volume: 439827.0\n MA5: 235.45\n MA20: 236.68\n Volume MA5: 635571.20\n Price Change: -0.06%\n Volume Change: -19.79%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 235.13\n VWAP: 240.77\n Volume: 549887.0\n MA5: 235.44\n MA20: 236.49\n Volume MA5: 589029.00\n Price Change: -0.23%\n Volume Change: 25.02%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0280):\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 236.79\n VWAP: 241.65\n Volume: 1267159.0\n MA5: 237.71\n MA20: 238.87\n Volume MA5: 744420.80\n Price Change: -0.31%\n Volume Change: 100.34%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 237.19\n VWAP: 241.58\n Volume: 830996.0\n MA5: 237.49\n MA20: 238.74\n Volume MA5: 780169.40\n Price Change: 0.17%\n Volume Change: -34.42%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 236.43\n VWAP: 241.50\n Volume: 807078.0\n MA5: 237.11\n MA20: 238.58\n Volume MA5: 860713.20\n Price Change: -0.32%\n Volume Change: -2.88%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0298):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 237.19\n VWAP: 241.58\n Volume: 830996.0\n MA5: 237.49\n MA20: 238.74\n Volume MA5: 780169.40\n Price Change: 0.17%\n Volume Change: -34.42%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 236.43\n VWAP: 241.50\n Volume: 807078.0\n MA5: 237.11\n MA20: 238.58\n Volume MA5: 860713.20\n Price Change: -0.32%\n Volume Change: -2.88%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 236.09\n VWAP: 241.42\n Volume: 729587.0\n MA5: 236.80\n MA20: 238.43\n Volume MA5: 853466.40\n Price Change: -0.14%\n Volume Change: -9.60%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 236.44\n VWAP: 241.37\n Volume: 604537.0\n MA5: 236.59\n MA20: 238.31\n Volume MA5: 847871.40\n Price Change: 0.15%\n Volume Change: -17.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 236.43\n VWAP: 241.32\n Volume: 545715.0\n MA5: 236.51\n MA20: 238.18\n Volume MA5: 703582.60\n Price Change: -0.00%\n Volume Change: -9.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 236.28\n VWAP: 241.28\n Volume: 381204.0\n MA5: 236.33\n MA20: 238.03\n Volume MA5: 613624.20\n Price Change: -0.06%\n Volume Change: -30.15%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 235.75\n VWAP: 241.22\n Volume: 638929.0\n MA5: 236.20\n MA20: 237.85\n Volume MA5: 579994.40\n Price Change: -0.22%\n Volume Change: 67.61%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 235.26\n VWAP: 241.13\n Volume: 752323.0\n MA5: 236.03\n MA20: 237.66\n Volume MA5: 584541.60\n Price Change: -0.21%\n Volume Change: 17.75%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 235.16\n VWAP: 241.05\n Volume: 782598.0\n MA5: 235.78\n MA20: 237.45\n Volume MA5: 620153.80\n Price Change: -0.04%\n Volume Change: 4.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 234.97\n VWAP: 240.96\n Volume: 816623.0\n MA5: 235.48\n MA20: 237.21\n Volume MA5: 674335.40\n Price Change: -0.08%\n Volume Change: 4.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 235.59\n VWAP: 240.91\n Volume: 590470.0\n MA5: 235.35\n MA20: 237.02\n Volume MA5: 716188.60\n Price Change: 0.26%\n Volume Change: -27.69%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 235.83\n VWAP: 240.86\n Volume: 548338.0\n MA5: 235.36\n MA20: 236.85\n Volume MA5: 698070.40\n Price Change: 0.10%\n Volume Change: -7.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 235.11\n VWAP: 240.72\n Volume: 543597.0\n MA5: 235.47\n MA20: 236.30\n Volume MA5: 534423.80\n Price Change: -0.01%\n Volume Change: -1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 234.34\n VWAP: 240.65\n Volume: 630795.0\n MA5: 235.22\n MA20: 236.10\n Volume MA5: 542488.80\n Price Change: -0.33%\n Volume Change: 16.04%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 233.98\n VWAP: 240.57\n Volume: 694889.0\n MA5: 234.85\n MA20: 235.88\n Volume MA5: 571799.00\n Price Change: -0.15%\n Volume Change: 10.16%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 234.05\n VWAP: 240.50\n Volume: 714674.0\n MA5: 234.52\n MA20: 235.70\n Volume MA5: 626768.40\n Price Change: 0.03%\n Volume Change: 2.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 234.42\n VWAP: 240.43\n Volume: 644748.0\n MA5: 234.38\n MA20: 235.55\n Volume MA5: 645740.60\n Price Change: 0.16%\n Volume Change: -9.78%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 234.13\n VWAP: 240.35\n Volume: 855693.0\n MA5: 234.18\n MA20: 235.41\n Volume MA5: 708159.80\n Price Change: -0.12%\n Volume Change: 32.72%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 233.70\n VWAP: 240.29\n Volume: 544523.0\n MA5: 234.06\n MA20: 235.24\n Volume MA5: 690905.40\n Price Change: -0.18%\n Volume Change: -36.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 233.82\n VWAP: 240.24\n Volume: 527381.0\n MA5: 234.02\n MA20: 235.11\n Volume MA5: 657403.80\n Price Change: 0.05%\n Volume Change: -3.15%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 233.80\n VWAP: 240.18\n Volume: 618535.0\n MA5: 233.97\n MA20: 234.99\n Volume MA5: 638176.00\n Price Change: -0.01%\n Volume Change: 17.28%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 234.02\n VWAP: 240.13\n Volume: 526266.0\n MA5: 233.89\n MA20: 234.87\n Volume MA5: 614479.60\n Price Change: 0.09%\n Volume Change: -14.92%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 233.99\n VWAP: 240.08\n Volume: 488490.0\n MA5: 233.87\n MA20: 234.75\n Volume MA5: 541039.00\n Price Change: -0.01%\n Volume Change: -7.18%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 234.29\n VWAP: 239.98\n Volume: 1156255.0\n MA5: 233.98\n MA20: 234.65\n Volume MA5: 663385.40\n Price Change: 0.13%\n Volume Change: 136.70%\n Previous 5min VWAP Movement: down (-0.04%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 234.29, \"suggested_stop_loss\": 234.6, \"suggested_take_profit\": 233.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Increasing volume with price decline\", \"Historical pattern of continued VWAP decline\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has increased significantly in the last interval, which often precedes further price declines. Historical similar contexts also show a pattern of continued VWAP decline. Given these factors, a short position is recommended with a high confidence score.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0132):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 409.98\n VWAP: 414.21\n Volume: 845583.0\n MA5: 409.26\n MA20: 413.60\n Volume MA5: 867935.20\n Price Change: 0.36%\n Volume Change: 29.79%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 406.95\n VWAP: 414.08\n Volume: 1052363.0\n MA5: 408.50\n MA20: 412.99\n Volume MA5: 888531.60\n Price Change: -0.74%\n Volume Change: 24.45%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 406.06\n VWAP: 413.97\n Volume: 868845.0\n MA5: 408.02\n MA20: 412.32\n Volume MA5: 879647.60\n Price Change: -0.22%\n Volume Change: -17.44%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nSimilar context (score: 0.0349):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 409.98\n VWAP: 414.21\n Volume: 845583.0\n MA5: 409.26\n MA20: 413.60\n Volume MA5: 867935.20\n Price Change: 0.36%\n Volume Change: 29.79%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 406.95\n VWAP: 414.08\n Volume: 1052363.0\n MA5: 408.50\n MA20: 412.99\n Volume MA5: 888531.60\n Price Change: -0.74%\n Volume Change: 24.45%\n Previous 5min VWAP Movement: down (-0.03%)\n \nNext Interval VWAP Movement: down (-0.03%)\n===\nSimilar context (score: 0.0350):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 415.90\n VWAP: 414.97\n Volume: 750406.0\n MA5: 417.88\n MA20: 418.50\n Volume MA5: 600859.20\n Price Change: -0.35%\n Volume Change: -32.87%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 405.73\n VWAP: 413.80\n Volume: 1399558.0\n MA5: 407.45\n MA20: 411.66\n Volume MA5: 963572.00\n Price Change: -0.08%\n Volume Change: 61.08%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 406.64\n VWAP: 413.69\n Volume: 986748.0\n MA5: 407.07\n MA20: 411.02\n Volume MA5: 1030619.40\n Price Change: 0.22%\n Volume Change: -29.50%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 406.55\n VWAP: 413.60\n Volume: 828548.0\n MA5: 406.39\n MA20: 410.46\n Volume MA5: 1027212.40\n Price Change: -0.02%\n Volume Change: -16.03%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 403.27\n VWAP: 413.42\n Volume: 1204327.0\n MA5: 405.65\n MA20: 409.76\n Volume MA5: 1057605.20\n Price Change: -0.81%\n Volume Change: 45.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 402.84\n VWAP: 413.23\n Volume: 1256449.0\n MA5: 405.01\n MA20: 409.10\n Volume MA5: 1135126.00\n Price Change: -0.11%\n Volume Change: 4.33%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 402.33\n VWAP: 413.12\n Volume: 688261.0\n MA5: 404.32\n MA20: 408.53\n Volume MA5: 992866.60\n Price Change: -0.13%\n Volume Change: -45.22%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 402.80\n VWAP: 412.98\n Volume: 974166.0\n MA5: 403.56\n MA20: 408.01\n Volume MA5: 990350.20\n Price Change: 0.12%\n Volume Change: 41.54%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 403.13\n VWAP: 412.90\n Volume: 584510.0\n MA5: 402.87\n MA20: 407.49\n Volume MA5: 941542.60\n Price Change: 0.08%\n Volume Change: -40.00%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 402.85\n VWAP: 412.80\n Volume: 711509.0\n MA5: 402.79\n MA20: 406.97\n Volume MA5: 842979.00\n Price Change: -0.07%\n Volume Change: 21.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 404.67\n VWAP: 412.71\n Volume: 864206.0\n MA5: 403.16\n MA20: 406.61\n Volume MA5: 764530.40\n Price Change: 0.45%\n Volume Change: 21.46%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 402.94\n VWAP: 412.56\n Volume: 1135118.0\n MA5: 403.28\n MA20: 406.19\n Volume MA5: 853901.80\n Price Change: -0.43%\n Volume Change: 31.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 403.17\n VWAP: 412.48\n Volume: 628805.0\n MA5: 403.35\n MA20: 405.77\n Volume MA5: 784829.60\n Price Change: 0.06%\n Volume Change: -44.60%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 403.0, \"suggested_stop_loss\": 405.0, \"suggested_take_profit\": 401.0, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume spikes with price drops\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of VWAP decline. The volume spikes during price drops suggest strong selling pressure. Given these signals, the VWAP is likely to continue its downward trajectory in the next interval. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0082):\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 129.90\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.67\n MA20: 130.26\n Volume MA5: 32435.20\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 129.98\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 130.17\n Volume MA5: 0.00\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0212):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 130.51\n VWAP: 133.35\n Volume: 0.0\n MA5: 131.15\n MA20: 131.57\n Volume MA5: 0.00\n Price Change: -0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0218):\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 130.01\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.82\n MA20: 130.08\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 129.96\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.86\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 129.82\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.93\n MA20: 129.93\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 129.38\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.83\n MA20: 129.87\n Volume MA5: 0.00\n Price Change: -0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 129.60\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 129.82\n Volume MA5: 0.00\n Price Change: 0.17%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 129.44\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.64\n MA20: 129.78\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.54\n MA20: 129.73\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 129.85\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 129.72\n Volume MA5: 0.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 130.50\n VWAP: 133.20\n Volume: 2725120.0\n MA5: 129.77\n MA20: 129.74\n Volume MA5: 545024.00\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.07%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 130.90\n VWAP: 133.04\n Volume: 6296960.0\n MA5: 130.03\n MA20: 129.78\n Volume MA5: 1804416.00\n Price Change: 0.30%\n Volume Change: 131.07%\n Previous 5min VWAP Movement: down (-0.12%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 130.78\n VWAP: 132.97\n Volume: 2711296.0\n MA5: 130.30\n MA20: 129.83\n Volume MA5: 2346675.20\n Price Change: -0.09%\n Volume Change: -56.94%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 15:45:00+00:00\n\n Current Price: 130.64\n VWAP: 132.97\n Volume: 0.0\n MA5: 130.54\n MA20: 129.89\n Volume MA5: 2346675.20\n Price Change: -0.10%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.02, \"suggested_entry\": 130.64, \"suggested_stop_loss\": 130.9, \"suggested_take_profit\": 130.3, \"key_signals\": [\"Consistent VWAP decline\", \"Price below VWAP\", \"High volume spikes followed by zero volume\", \"MA5 below MA20\"], \"reasoning\": \"The current market window shows a consistent pattern of VWAP decline with prices consistently below the VWAP, indicating bearish sentiment. Historical windows with similar patterns also resulted in VWAP declines. The recent high volume spikes followed by zero volume suggest a lack of buying interest to push prices higher. The MA5 is below MA20, reinforcing the bearish trend. Therefore, a short position is recommended with a high confidence score.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0132):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 205.13\n VWAP: 204.51\n Volume: 266431.0\n MA5: 205.13\n MA20: 204.97\n Volume MA5: 226461.80\n Price Change: 0.08%\n Volume Change: 21.66%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 204.61\n VWAP: 204.51\n Volume: 260109.0\n MA5: 204.99\n MA20: 204.97\n Volume MA5: 231002.40\n Price Change: -0.25%\n Volume Change: -2.37%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 204.30\n VWAP: 204.51\n Volume: 284775.0\n MA5: 204.83\n MA20: 204.94\n Volume MA5: 244937.60\n Price Change: -0.15%\n Volume Change: 9.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0320):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0323):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 204.22\n VWAP: 204.50\n Volume: 444270.0\n MA5: 204.65\n MA20: 204.90\n Volume MA5: 294918.00\n Price Change: -0.04%\n Volume Change: 56.01%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 204.28\n VWAP: 204.50\n Volume: 156725.0\n MA5: 204.51\n MA20: 204.87\n Volume MA5: 282462.00\n Price Change: 0.03%\n Volume Change: -64.72%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 204.29\n VWAP: 204.50\n Volume: 198333.0\n MA5: 204.34\n MA20: 204.85\n Volume MA5: 268842.40\n Price Change: 0.01%\n Volume Change: 26.55%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 203.53\n VWAP: 204.48\n Volume: 318524.0\n MA5: 204.13\n MA20: 204.76\n Volume MA5: 280525.40\n Price Change: -0.37%\n Volume Change: 60.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 203.53\n VWAP: 204.47\n Volume: 241736.0\n MA5: 203.97\n MA20: 204.69\n Volume MA5: 271917.60\n Price Change: 0.00%\n Volume Change: -24.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 203.56\n VWAP: 204.46\n Volume: 221707.0\n MA5: 203.84\n MA20: 204.66\n Volume MA5: 227405.00\n Price Change: 0.01%\n Volume Change: -8.29%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 203.73\n VWAP: 204.45\n Volume: 275884.0\n MA5: 203.73\n MA20: 204.60\n Volume MA5: 251236.80\n Price Change: 0.08%\n Volume Change: 24.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 203.84\n VWAP: 204.44\n Volume: 239855.0\n MA5: 203.64\n MA20: 204.55\n Volume MA5: 259541.20\n Price Change: 0.05%\n Volume Change: -13.06%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 203.57\n VWAP: 204.43\n Volume: 244267.0\n MA5: 203.65\n MA20: 204.48\n Volume MA5: 244689.80\n Price Change: -0.13%\n Volume Change: 1.84%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 203.71\n VWAP: 204.42\n Volume: 247524.0\n MA5: 203.68\n MA20: 204.41\n Volume MA5: 245847.40\n Price Change: 0.07%\n Volume Change: 1.33%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 203.51\n VWAP: 204.41\n Volume: 283365.0\n MA5: 203.67\n MA20: 204.33\n Volume MA5: 258179.00\n Price Change: -0.10%\n Volume Change: 14.48%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 203.64\n VWAP: 204.40\n Volume: 322643.0\n MA5: 203.65\n MA20: 204.25\n Volume MA5: 267530.80\n Price Change: 0.06%\n Volume Change: 13.86%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 203.6, \"suggested_stop_loss\": 204.0, \"suggested_take_profit\": 203.3, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with decreasing price\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP over the past several intervals, with the price consistently below both the MA5 and MA20, indicating a bearish sentiment. The volume is relatively high, yet the price is decreasing, suggesting selling pressure. Historical similar contexts also showed a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0115):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 122.06\n VWAP: 125.12\n Volume: 3632388.0\n MA5: 122.78\n MA20: 123.74\n Volume MA5: 2731326.40\n Price Change: -0.73%\n Volume Change: 47.90%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 121.76\n VWAP: 125.06\n Volume: 4011313.0\n MA5: 122.58\n MA20: 123.56\n Volume MA5: 2942127.60\n Price Change: -0.25%\n Volume Change: 10.43%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nSimilar context (score: 0.0318):\nTime: 2025-01-31 13:10:00-05:00\n\n Current Price: 124.96\n VWAP: 125.50\n Volume: 2031833.0\n MA5: 125.34\n MA20: 125.16\n Volume MA5: 2304681.40\n Price Change: -0.05%\n Volume Change: -11.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 124.37\n VWAP: 125.49\n Volume: 2170002.0\n MA5: 125.13\n MA20: 125.09\n Volume MA5: 2309730.00\n Price Change: -0.47%\n Volume Change: 6.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 124.47\n VWAP: 125.47\n Volume: 3470074.0\n MA5: 124.85\n MA20: 125.07\n Volume MA5: 2470088.00\n Price Change: 0.08%\n Volume Change: 59.91%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0324):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.04%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 121.99\n VWAP: 125.01\n Volume: 4478122.0\n MA5: 122.36\n MA20: 123.41\n Volume MA5: 3401208.60\n Price Change: 0.19%\n Volume Change: 11.64%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 121.67\n VWAP: 124.95\n Volume: 4678896.0\n MA5: 122.09\n MA20: 123.24\n Volume MA5: 3851341.00\n Price Change: -0.26%\n Volume Change: 4.48%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 121.88\n VWAP: 124.92\n Volume: 3032372.0\n MA5: 121.87\n MA20: 123.12\n Volume MA5: 3966618.20\n Price Change: 0.17%\n Volume Change: -35.19%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 121.10\n VWAP: 124.87\n Volume: 3839577.0\n MA5: 121.68\n MA20: 122.95\n Volume MA5: 4008056.00\n Price Change: -0.64%\n Volume Change: 26.62%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 120.98\n VWAP: 124.81\n Volume: 3871017.0\n MA5: 121.52\n MA20: 122.79\n Volume MA5: 3979996.80\n Price Change: -0.10%\n Volume Change: 0.82%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 120.87\n VWAP: 124.77\n Volume: 3214651.0\n MA5: 121.30\n MA20: 122.65\n Volume MA5: 3727302.60\n Price Change: -0.09%\n Volume Change: -16.96%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 120.71\n VWAP: 124.72\n Volume: 3259275.0\n MA5: 121.11\n MA20: 122.48\n Volume MA5: 3443378.40\n Price Change: -0.13%\n Volume Change: 1.39%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 120.38\n VWAP: 124.65\n Volume: 4637022.0\n MA5: 120.81\n MA20: 122.32\n Volume MA5: 3764308.40\n Price Change: -0.28%\n Volume Change: 42.27%\n Previous 5min VWAP Movement: down (-0.06%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 120.11\n VWAP: 124.55\n Volume: 6892730.0\n MA5: 120.61\n MA20: 122.14\n Volume MA5: 4374939.00\n Price Change: -0.22%\n Volume Change: 48.65%\n Previous 5min VWAP Movement: down (-0.08%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 120.09\n VWAP: 124.50\n Volume: 3596041.0\n MA5: 120.43\n MA20: 121.96\n Volume MA5: 4319943.80\n Price Change: -0.02%\n Volume Change: -47.83%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 119.64\n VWAP: 124.40\n Volume: 5993828.0\n MA5: 120.19\n MA20: 121.75\n Volume MA5: 4875779.20\n Price Change: -0.37%\n Volume Change: 66.68%\n Previous 5min VWAP Movement: down (-0.08%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 119.20\n VWAP: 124.30\n Volume: 6074899.0\n MA5: 119.88\n MA20: 121.53\n Volume MA5: 5438904.00\n Price Change: -0.37%\n Volume Change: 1.35%\n Previous 5min VWAP Movement: down (-0.08%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.07, \"suggested_entry\": 119.2, \"suggested_stop_loss\": 119.8, \"suggested_take_profit\": 118.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"High volume with increasing trend\", \"Price consistently below MA5 and MA20\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is coupled with high and increasing volume, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, the VWAP is likely to continue decreasing in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0092):\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 416.88\n VWAP: 417.62\n Volume: 121568.0\n MA5: 416.74\n MA20: 417.32\n Volume MA5: 166809.40\n Price Change: 0.11%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 416.26\n VWAP: 417.61\n Volume: 151071.0\n MA5: 416.61\n MA20: 417.22\n Volume MA5: 167200.20\n Price Change: -0.15%\n Volume Change: 24.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 415.86\n VWAP: 417.59\n Volume: 238294.0\n MA5: 416.48\n MA20: 417.08\n Volume MA5: 182244.60\n Price Change: -0.10%\n Volume Change: 57.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0288):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 416.81\n VWAP: 417.72\n Volume: 240815.0\n MA5: 417.80\n MA20: 418.04\n Volume MA5: 237719.80\n Price Change: -0.18%\n Volume Change: 20.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0302):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 417.15\n VWAP: 417.71\n Volume: 313355.0\n MA5: 417.44\n MA20: 418.06\n Volume MA5: 267993.20\n Price Change: 0.08%\n Volume Change: 30.12%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 417.17\n VWAP: 417.70\n Volume: 147473.0\n MA5: 417.32\n MA20: 418.07\n Volume MA5: 243127.00\n Price Change: 0.01%\n Volume Change: -52.94%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 416.99\n VWAP: 417.70\n Volume: 132914.0\n MA5: 417.13\n MA20: 418.06\n Volume MA5: 206728.80\n Price Change: -0.04%\n Volume Change: -9.87%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 416.82\n VWAP: 417.69\n Volume: 141533.0\n MA5: 416.99\n MA20: 417.99\n Volume MA5: 195218.00\n Price Change: -0.04%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 417.00\n VWAP: 417.69\n Volume: 110625.0\n MA5: 417.03\n MA20: 417.93\n Volume MA5: 169180.00\n Price Change: 0.04%\n Volume Change: -21.84%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 416.89\n VWAP: 417.68\n Volume: 174936.0\n MA5: 416.97\n MA20: 417.86\n Volume MA5: 141496.20\n Price Change: -0.03%\n Volume Change: 58.13%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 416.33\n VWAP: 417.66\n Volume: 256216.0\n MA5: 416.81\n MA20: 417.75\n Volume MA5: 163244.80\n Price Change: -0.14%\n Volume Change: 46.46%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 416.89\n VWAP: 417.66\n Volume: 149117.0\n MA5: 416.79\n MA20: 417.67\n Volume MA5: 166485.40\n Price Change: 0.13%\n Volume Change: -41.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 416.53\n VWAP: 417.65\n Volume: 163072.0\n MA5: 416.73\n MA20: 417.58\n Volume MA5: 170793.20\n Price Change: -0.09%\n Volume Change: 9.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 416.96\n VWAP: 417.64\n Volume: 235596.0\n MA5: 416.72\n MA20: 417.50\n Volume MA5: 195787.40\n Price Change: 0.10%\n Volume Change: 44.47%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 416.43\n VWAP: 417.63\n Volume: 164694.0\n MA5: 416.63\n MA20: 417.39\n Volume MA5: 193739.00\n Price Change: -0.13%\n Volume Change: -30.09%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 416.88\n VWAP: 417.62\n Volume: 121568.0\n MA5: 416.74\n MA20: 417.32\n Volume MA5: 166809.40\n Price Change: 0.11%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 415.60\n VWAP: 417.57\n Volume: 253737.0\n MA5: 416.21\n MA20: 416.94\n Volume MA5: 185872.80\n Price Change: -0.06%\n Volume Change: 6.48%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 416.43\n VWAP: 417.55\n Volume: 250281.0\n MA5: 416.21\n MA20: 416.81\n Volume MA5: 202990.20\n Price Change: 0.20%\n Volume Change: -1.36%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 416.51\n VWAP: 417.54\n Volume: 235283.0\n MA5: 416.13\n MA20: 416.75\n Volume MA5: 225733.20\n Price Change: 0.02%\n Volume Change: -5.99%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 415.75\n VWAP: 417.52\n Volume: 206500.0\n MA5: 416.03\n MA20: 416.64\n Volume MA5: 236819.00\n Price Change: -0.18%\n Volume Change: -12.23%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 416.08\n VWAP: 417.51\n Volume: 207417.0\n MA5: 416.07\n MA20: 416.57\n Volume MA5: 230643.60\n Price Change: 0.08%\n Volume Change: 0.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 415.86\n VWAP: 417.49\n Volume: 223244.0\n MA5: 416.13\n MA20: 416.52\n Volume MA5: 224545.00\n Price Change: -0.05%\n Volume Change: 7.63%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 416.14\n VWAP: 417.48\n Volume: 183515.0\n MA5: 416.07\n MA20: 416.47\n Volume MA5: 211191.80\n Price Change: 0.06%\n Volume Change: -17.80%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 416.47\n VWAP: 417.47\n Volume: 214901.0\n MA5: 416.06\n MA20: 416.43\n Volume MA5: 207115.40\n Price Change: 0.08%\n Volume Change: 17.10%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 416.14\n VWAP: 417.46\n Volume: 176223.0\n MA5: 416.14\n MA20: 416.39\n Volume MA5: 201060.00\n Price Change: -0.08%\n Volume Change: -18.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 416.33\n VWAP: 417.45\n Volume: 278362.0\n MA5: 416.19\n MA20: 416.37\n Volume MA5: 215249.00\n Price Change: 0.04%\n Volume Change: 57.96%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 416.12\n VWAP: 417.43\n Volume: 218043.0\n MA5: 416.24\n MA20: 416.32\n Volume MA5: 214208.80\n Price Change: -0.05%\n Volume Change: -21.67%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:40:00-05:00\n\n Current Price: 415.89\n VWAP: 417.42\n Volume: 284922.0\n MA5: 416.19\n MA20: 416.27\n Volume MA5: 234490.20\n Price Change: -0.06%\n Volume Change: 30.67%\n Previous 5min VWAP Movement: down (-0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 415.89, \"suggested_stop_loss\": 416.5, \"suggested_take_profit\": 415.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price consistently below VWAP\", \"MA5 and MA20 trending downwards\", \"High volume with no significant price recovery\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite high trading volumes. Historical context windows with similar patterns also resulted in continued VWAP declines. The MA5 and MA20 are both trending downwards, reinforcing the bearish sentiment. Given these factors, the VWAP is expected to continue its downward movement in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0071):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 123.01\n VWAP: 125.18\n Volume: 2428234.0\n MA5: 123.06\n MA20: 124.05\n Volume MA5: 2955277.20\n Price Change: -0.07%\n Volume Change: 11.25%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0301):\nTime: 2025-01-31 13:10:00-05:00\n\n Current Price: 124.96\n VWAP: 125.50\n Volume: 2031833.0\n MA5: 125.34\n MA20: 125.16\n Volume MA5: 2304681.40\n Price Change: -0.05%\n Volume Change: -11.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 124.37\n VWAP: 125.49\n Volume: 2170002.0\n MA5: 125.13\n MA20: 125.09\n Volume MA5: 2309730.00\n Price Change: -0.47%\n Volume Change: 6.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 124.47\n VWAP: 125.47\n Volume: 3470074.0\n MA5: 124.85\n MA20: 125.07\n Volume MA5: 2470088.00\n Price Change: 0.08%\n Volume Change: 59.91%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \nNext Interval VWAP Movement: down (-0.02%)\n===\nSimilar context (score: 0.0303):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 124.17\n VWAP: 125.46\n Volume: 2360174.0\n MA5: 124.60\n MA20: 125.00\n Volume MA5: 2466345.00\n Price Change: -0.25%\n Volume Change: -31.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 123.61\n VWAP: 125.42\n Volume: 4579289.0\n MA5: 124.32\n MA20: 124.89\n Volume MA5: 2922274.40\n Price Change: -0.45%\n Volume Change: 94.02%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 124.10\n VWAP: 125.40\n Volume: 3092909.0\n MA5: 124.15\n MA20: 124.83\n Volume MA5: 3134489.60\n Price Change: 0.40%\n Volume Change: -32.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 123.63\n VWAP: 125.38\n Volume: 2959046.0\n MA5: 124.00\n MA20: 124.76\n Volume MA5: 3292298.40\n Price Change: -0.38%\n Volume Change: -4.33%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 123.74\n VWAP: 125.36\n Volume: 2406931.0\n MA5: 123.85\n MA20: 124.69\n Volume MA5: 3079669.80\n Price Change: 0.09%\n Volume Change: -18.66%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 123.64\n VWAP: 125.35\n Volume: 2382812.0\n MA5: 123.74\n MA20: 124.62\n Volume MA5: 3084197.40\n Price Change: -0.08%\n Volume Change: -1.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 123.79\n VWAP: 125.33\n Volume: 2056703.0\n MA5: 123.78\n MA20: 124.61\n Volume MA5: 2579680.20\n Price Change: 0.12%\n Volume Change: -13.69%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 123.57\n VWAP: 125.32\n Volume: 2085612.0\n MA5: 123.67\n MA20: 124.54\n Volume MA5: 2378220.80\n Price Change: -0.18%\n Volume Change: 1.41%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 123.05\n VWAP: 125.27\n Volume: 4645256.0\n MA5: 123.56\n MA20: 124.43\n Volume MA5: 2715462.80\n Price Change: -0.42%\n Volume Change: 122.73%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 123.37\n VWAP: 125.25\n Volume: 2562872.0\n MA5: 123.48\n MA20: 124.36\n Volume MA5: 2746651.00\n Price Change: 0.26%\n Volume Change: -44.83%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 122.76\n VWAP: 125.22\n Volume: 2957307.0\n MA5: 123.31\n MA20: 124.24\n Volume MA5: 2861550.00\n Price Change: -0.50%\n Volume Change: 15.39%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 123.10\n VWAP: 125.20\n Volume: 2182717.0\n MA5: 123.17\n MA20: 124.15\n Volume MA5: 2886752.80\n Price Change: 0.28%\n Volume Change: -26.19%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.02%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 122.96\n VWAP: 125.16\n Volume: 2455986.0\n MA5: 123.04\n MA20: 123.93\n Volume MA5: 2517423.20\n Price Change: -0.04%\n Volume Change: 1.14%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 122.06\n VWAP: 125.12\n Volume: 3632388.0\n MA5: 122.78\n MA20: 123.74\n Volume MA5: 2731326.40\n Price Change: -0.73%\n Volume Change: 47.90%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 121.76\n VWAP: 125.06\n Volume: 4011313.0\n MA5: 122.58\n MA20: 123.56\n Volume MA5: 2942127.60\n Price Change: -0.25%\n Volume Change: 10.43%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 121.99\n VWAP: 125.01\n Volume: 4478122.0\n MA5: 122.36\n MA20: 123.41\n Volume MA5: 3401208.60\n Price Change: 0.19%\n Volume Change: 11.64%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 121.67\n VWAP: 124.95\n Volume: 4678896.0\n MA5: 122.09\n MA20: 123.24\n Volume MA5: 3851341.00\n Price Change: -0.26%\n Volume Change: 4.48%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 121.88\n VWAP: 124.92\n Volume: 3032372.0\n MA5: 121.87\n MA20: 123.12\n Volume MA5: 3966618.20\n Price Change: 0.17%\n Volume Change: -35.19%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 121.10\n VWAP: 124.87\n Volume: 3839577.0\n MA5: 121.68\n MA20: 122.95\n Volume MA5: 4008056.00\n Price Change: -0.64%\n Volume Change: 26.62%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 120.98\n VWAP: 124.81\n Volume: 3871017.0\n MA5: 121.52\n MA20: 122.79\n Volume MA5: 3979996.80\n Price Change: -0.10%\n Volume Change: 0.82%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 120.87\n VWAP: 124.77\n Volume: 3214651.0\n MA5: 121.30\n MA20: 122.65\n Volume MA5: 3727302.60\n Price Change: -0.09%\n Volume Change: -16.96%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 120.71\n VWAP: 124.72\n Volume: 3259275.0\n MA5: 121.11\n MA20: 122.48\n Volume MA5: 3443378.40\n Price Change: -0.13%\n Volume Change: 1.39%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 120.38\n VWAP: 124.65\n Volume: 4637022.0\n MA5: 120.81\n MA20: 122.32\n Volume MA5: 3764308.40\n Price Change: -0.28%\n Volume Change: 42.27%\n Previous 5min VWAP Movement: down (-0.06%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 120.11\n VWAP: 124.55\n Volume: 6892730.0\n MA5: 120.61\n MA20: 122.14\n Volume MA5: 4374939.00\n Price Change: -0.22%\n Volume Change: 48.65%\n Previous 5min VWAP Movement: down (-0.08%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.02, \"suggested_entry\": 120.1, \"suggested_stop_loss\": 120.5, \"suggested_take_profit\": 119.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"High volume with decreasing price\", \"MA5 below MA20 indicating bearish trend\", \"Price consistently below VWAP\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP with each interval, supported by high volume and decreasing prices. The MA5 is below the MA20, indicating a bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Given these signals, the VWAP is expected to continue its downward trajectory in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0086):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nSimilar context (score: 0.0297):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 205.23\n VWAP: 204.39\n Volume: 589179.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 266401.80\n Price Change: 0.28%\n Volume Change: 118.04%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0310):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 205.13\n VWAP: 204.51\n Volume: 266431.0\n MA5: 205.13\n MA20: 204.97\n Volume MA5: 226461.80\n Price Change: 0.08%\n Volume Change: 21.66%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 204.61\n VWAP: 204.51\n Volume: 260109.0\n MA5: 204.99\n MA20: 204.97\n Volume MA5: 231002.40\n Price Change: -0.25%\n Volume Change: -2.37%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 204.30\n VWAP: 204.51\n Volume: 284775.0\n MA5: 204.83\n MA20: 204.94\n Volume MA5: 244937.60\n Price Change: -0.15%\n Volume Change: 9.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 204.22\n VWAP: 204.50\n Volume: 444270.0\n MA5: 204.65\n MA20: 204.90\n Volume MA5: 294918.00\n Price Change: -0.04%\n Volume Change: 56.01%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 204.28\n VWAP: 204.50\n Volume: 156725.0\n MA5: 204.51\n MA20: 204.87\n Volume MA5: 282462.00\n Price Change: 0.03%\n Volume Change: -64.72%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 204.29\n VWAP: 204.50\n Volume: 198333.0\n MA5: 204.34\n MA20: 204.85\n Volume MA5: 268842.40\n Price Change: 0.01%\n Volume Change: 26.55%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 203.53\n VWAP: 204.48\n Volume: 318524.0\n MA5: 204.13\n MA20: 204.76\n Volume MA5: 280525.40\n Price Change: -0.37%\n Volume Change: 60.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 203.53\n VWAP: 204.47\n Volume: 241736.0\n MA5: 203.97\n MA20: 204.69\n Volume MA5: 271917.60\n Price Change: 0.00%\n Volume Change: -24.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 203.56\n VWAP: 204.46\n Volume: 221707.0\n MA5: 203.84\n MA20: 204.66\n Volume MA5: 227405.00\n Price Change: 0.01%\n Volume Change: -8.29%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 203.73\n VWAP: 204.45\n Volume: 275884.0\n MA5: 203.73\n MA20: 204.60\n Volume MA5: 251236.80\n Price Change: 0.08%\n Volume Change: 24.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 203.84\n VWAP: 204.44\n Volume: 239855.0\n MA5: 203.64\n MA20: 204.55\n Volume MA5: 259541.20\n Price Change: 0.05%\n Volume Change: -13.06%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 203.57\n VWAP: 204.43\n Volume: 244267.0\n MA5: 203.65\n MA20: 204.48\n Volume MA5: 244689.80\n Price Change: -0.13%\n Volume Change: 1.84%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 203.57, \"suggested_stop_loss\": 204.0, \"suggested_take_profit\": 203.3, \"key_signals\": [\"Consistent downward VWAP movement in the current window\", \"Decreasing MA5 and MA20\", \"Volume spikes followed by declines\", \"Price consistently below VWAP\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and moving averages (MA5 and MA20) trending downwards. Historical windows with similar patterns also showed a continuation of the downward VWAP movement. The volume spikes followed by declines suggest potential short-term volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.\"}"}]} diff --git a/fine_tune_val.jsonl b/fine_tune_val.jsonl new file mode 100644 index 0000000..050e636 --- /dev/null +++ b/fine_tune_val.jsonl @@ -0,0 +1,10 @@ +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0091):\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 104626.39\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104632.21\n MA20: 104727.76\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 104561.80\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104620.95\n MA20: 104725.38\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 104619.02\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104613.29\n MA20: 104721.35\n Volume MA5: 0.00\n Price Change: 0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 104505.77\n VWAP: 104694.66\n Volume: 15290368.0\n MA5: 104600.90\n MA20: 104713.61\n Volume MA5: 3058073.60\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 104268.98\n VWAP: 104692.86\n Volume: 5103616.0\n MA5: 104516.39\n MA20: 104692.45\n Volume MA5: 4078796.80\n Price Change: -0.23%\n Volume Change: -66.62%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 104533.95\n VWAP: 104678.50\n Volume: 119975936.0\n MA5: 104497.90\n MA20: 104679.93\n Volume MA5: 28073984.00\n Price Change: 0.25%\n Volume Change: 2250.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 104322.42\n VWAP: 104663.33\n Volume: 59072512.0\n MA5: 104450.03\n MA20: 104647.48\n Volume MA5: 39888486.40\n Price Change: -0.20%\n Volume Change: -50.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0252):\nTime: 2025-01-31 13:10:00+00:00\n\n Current Price: 105006.83\n VWAP: 104689.98\n Volume: 100376576.0\n MA5: 104823.07\n MA20: 104735.29\n Volume MA5: 37095014.40\n Price Change: 0.03%\n Volume Change: 40.31%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0257):\nTime: 2025-01-31 13:15:00+00:00\n\n Current Price: 104893.48\n VWAP: 104697.61\n Volume: 44007424.0\n MA5: 104869.64\n MA20: 104742.14\n Volume MA5: 43184128.00\n Price Change: -0.11%\n Volume Change: -56.16%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 104841.51\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104899.53\n MA20: 104747.76\n Volume MA5: 43184128.00\n Price Change: -0.05%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 104885.70\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104919.80\n MA20: 104761.04\n Volume MA5: 43184128.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 104668.58\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104859.22\n MA20: 104762.47\n Volume MA5: 28876800.00\n Price Change: -0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 104637.18\n VWAP: 104697.61\n Volume: 0.0\n MA5: 104785.29\n MA20: 104756.74\n Volume MA5: 8801484.80\n Price Change: -0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 104652.41\n VWAP: 104697.09\n Volume: 13721600.0\n MA5: 104737.07\n MA20: 104756.97\n Volume MA5: 2744320.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 104674.59\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104703.69\n MA20: 104754.55\n Volume MA5: 2744320.00\n Price Change: 0.02%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 104716.32\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104669.81\n MA20: 104753.34\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 104618.09\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104659.72\n MA20: 104747.68\n Volume MA5: 2744320.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 104657.35\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104663.75\n MA20: 104736.92\n Volume MA5: 2744320.00\n Price Change: 0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 104567.70\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104646.81\n MA20: 104728.98\n Volume MA5: 0.00\n Price Change: -0.09%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 104691.53\n VWAP: 104697.09\n Volume: 0.0\n MA5: 104650.20\n MA20: 104728.35\n Volume MA5: 0.00\n Price Change: 0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 104400.73\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104406.37\n MA20: 104617.18\n Volume MA5: 39888486.40\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 104414.38\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104388.10\n MA20: 104593.22\n Volume MA5: 36830412.80\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 104625.29\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104459.36\n MA20: 104582.41\n Volume MA5: 35809689.60\n Price Change: 0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 104651.27\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104482.82\n MA20: 104570.69\n Volume MA5: 11814502.40\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 104905.10\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104599.35\n MA20: 104582.51\n Volume MA5: 0.00\n Price Change: 0.24%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 104794.17\n VWAP: 104663.33\n Volume: 0.0\n MA5: 104678.04\n MA20: 104590.36\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 105016.59\n VWAP: 104668.16\n Volume: 19238912.0\n MA5: 104798.48\n MA20: 104608.57\n Volume MA5: 3847782.40\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 105162.55\n VWAP: 104699.17\n Volume: 94085120.0\n MA5: 104905.93\n MA20: 104632.97\n Volume MA5: 22664806.40\n Price Change: 0.14%\n Volume Change: 389.04%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 105477.88\n VWAP: 104699.17\n Volume: 0.0\n MA5: 105071.26\n MA20: 104671.05\n Volume MA5: 22664806.40\n Price Change: 0.30%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:35:00+00:00\n\n Current Price: 105839.16\n VWAP: 104867.84\n Volume: 260456448.0\n MA5: 105258.07\n MA20: 104732.10\n Volume MA5: 74756096.00\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.16%)\n \n===\nTime: 2025-01-31 15:40:00+00:00\n\n Current Price: 105649.51\n VWAP: 104977.28\n Volume: 286621696.0\n MA5: 105429.14\n MA20: 104781.71\n Volume MA5: 132080435.20\n Price Change: -0.18%\n Volume Change: 10.05%\n Previous 5min VWAP Movement: up (0.10%)\n \n===\nTime: 2025-01-31 15:45:00+00:00\n\n Current Price: 105731.30\n VWAP: 104977.28\n Volume: 0.0\n MA5: 105572.08\n MA20: 104839.89\n Volume MA5: 128232652.80\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.85, \"expected_vwap_change\": 0.12, \"volatility_estimate\": 0.15, \"suggested_entry\": 105750.0, \"suggested_stop_loss\": 105500.0, \"suggested_take_profit\": 106000.0, \"key_signals\": [\"Recent price increase\", \"High volume in the last intervals\", \"MA5 crossing above MA20\", \"Positive VWAP movement in recent intervals\"], \"reasoning\": \"The current market window shows a strong upward price movement with significant volume, indicating buying pressure. The MA5 has crossed above the MA20, a bullish signal, and the VWAP has been trending upwards in the recent intervals. Historical patterns with similar setups have also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0121):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 693.12\n VWAP: 698.51\n Volume: 145076.0\n MA5: 694.08\n MA20: 695.89\n Volume MA5: 180852.40\n Price Change: 0.03%\n Volume Change: -31.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 690.66\n VWAP: 698.40\n Volume: 194921.0\n MA5: 692.90\n MA20: 695.53\n Volume MA5: 181180.40\n Price Change: -0.35%\n Volume Change: 34.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nSimilar context (score: 0.0319):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0319):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 689.96\n VWAP: 698.28\n Volume: 203768.0\n MA5: 692.07\n MA20: 695.09\n Volume MA5: 192478.40\n Price Change: -0.10%\n Volume Change: 4.54%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 689.79\n VWAP: 698.16\n Volume: 196780.0\n MA5: 691.28\n MA20: 694.68\n Volume MA5: 190375.60\n Price Change: -0.02%\n Volume Change: -3.43%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 690.76\n VWAP: 698.06\n Volume: 180696.0\n MA5: 690.86\n MA20: 694.36\n Volume MA5: 184248.20\n Price Change: 0.14%\n Volume Change: -8.17%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 690.86\n VWAP: 697.99\n Volume: 132555.0\n MA5: 690.41\n MA20: 694.09\n Volume MA5: 181744.00\n Price Change: 0.01%\n Volume Change: -26.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 688.50\n VWAP: 697.88\n Volume: 168352.0\n MA5: 689.97\n MA20: 693.72\n Volume MA5: 176430.20\n Price Change: -0.34%\n Volume Change: 27.01%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 688.27\n VWAP: 697.80\n Volume: 126600.0\n MA5: 689.64\n MA20: 693.40\n Volume MA5: 160996.60\n Price Change: -0.03%\n Volume Change: -24.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 689.02\n VWAP: 697.72\n Volume: 133951.0\n MA5: 689.48\n MA20: 693.20\n Volume MA5: 148430.80\n Price Change: 0.11%\n Volume Change: 5.81%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 688.51\n VWAP: 697.61\n Volume: 179744.0\n MA5: 689.03\n MA20: 692.82\n Volume MA5: 148240.40\n Price Change: -0.07%\n Volume Change: 34.19%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 688.96\n VWAP: 697.51\n Volume: 169149.0\n MA5: 688.65\n MA20: 692.49\n Volume MA5: 155559.20\n Price Change: 0.07%\n Volume Change: -5.89%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 686.93\n VWAP: 697.38\n Volume: 190726.0\n MA5: 688.34\n MA20: 691.99\n Volume MA5: 160034.00\n Price Change: -0.29%\n Volume Change: 12.76%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 685.96\n VWAP: 697.20\n Volume: 245750.0\n MA5: 687.88\n MA20: 691.45\n Volume MA5: 183864.00\n Price Change: -0.14%\n Volume Change: 28.85%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 686.76\n VWAP: 697.05\n Volume: 227462.0\n MA5: 687.42\n MA20: 690.93\n Volume MA5: 202566.20\n Price Change: 0.12%\n Volume Change: -7.44%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 686.76, \"suggested_stop_loss\": 688.5, \"suggested_take_profit\": 685.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with decreasing VWAP\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical windows with similar patterns also resulted in a continued decrease in VWAP. The high volume suggests strong selling pressure, reinforcing the likelihood of further VWAP decline. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0151):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 409.98\n VWAP: 414.21\n Volume: 845583.0\n MA5: 409.26\n MA20: 413.60\n Volume MA5: 867935.20\n Price Change: 0.36%\n Volume Change: 29.79%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0356):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 415.90\n VWAP: 414.97\n Volume: 750406.0\n MA5: 417.88\n MA20: 418.50\n Volume MA5: 600859.20\n Price Change: -0.35%\n Volume Change: -32.87%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0366):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 406.95\n VWAP: 414.08\n Volume: 1052363.0\n MA5: 408.50\n MA20: 412.99\n Volume MA5: 888531.60\n Price Change: -0.74%\n Volume Change: 24.45%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 406.06\n VWAP: 413.97\n Volume: 868845.0\n MA5: 408.02\n MA20: 412.32\n Volume MA5: 879647.60\n Price Change: -0.22%\n Volume Change: -17.44%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 405.73\n VWAP: 413.80\n Volume: 1399558.0\n MA5: 407.45\n MA20: 411.66\n Volume MA5: 963572.00\n Price Change: -0.08%\n Volume Change: 61.08%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 406.64\n VWAP: 413.69\n Volume: 986748.0\n MA5: 407.07\n MA20: 411.02\n Volume MA5: 1030619.40\n Price Change: 0.22%\n Volume Change: -29.50%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 406.55\n VWAP: 413.60\n Volume: 828548.0\n MA5: 406.39\n MA20: 410.46\n Volume MA5: 1027212.40\n Price Change: -0.02%\n Volume Change: -16.03%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 403.27\n VWAP: 413.42\n Volume: 1204327.0\n MA5: 405.65\n MA20: 409.76\n Volume MA5: 1057605.20\n Price Change: -0.81%\n Volume Change: 45.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 402.84\n VWAP: 413.23\n Volume: 1256449.0\n MA5: 405.01\n MA20: 409.10\n Volume MA5: 1135126.00\n Price Change: -0.11%\n Volume Change: 4.33%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 402.33\n VWAP: 413.12\n Volume: 688261.0\n MA5: 404.32\n MA20: 408.53\n Volume MA5: 992866.60\n Price Change: -0.13%\n Volume Change: -45.22%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 402.80\n VWAP: 412.98\n Volume: 974166.0\n MA5: 403.56\n MA20: 408.01\n Volume MA5: 990350.20\n Price Change: 0.12%\n Volume Change: 41.54%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 403.13\n VWAP: 412.90\n Volume: 584510.0\n MA5: 402.87\n MA20: 407.49\n Volume MA5: 941542.60\n Price Change: 0.08%\n Volume Change: -40.00%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 402.85\n VWAP: 412.80\n Volume: 711509.0\n MA5: 402.79\n MA20: 406.97\n Volume MA5: 842979.00\n Price Change: -0.07%\n Volume Change: 21.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 404.67\n VWAP: 412.71\n Volume: 864206.0\n MA5: 403.16\n MA20: 406.61\n Volume MA5: 764530.40\n Price Change: 0.45%\n Volume Change: 21.46%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 404.67, \"suggested_stop_loss\": 406.0, \"suggested_take_profit\": 403.0, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume spikes with price drops\", \"Historical context showing similar downward trends\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Volume spikes have been associated with price drops, suggesting strong selling pressure. Historical windows with similar patterns also resulted in further VWAP declines. Given these factors, a continued downward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this trend while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0063):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0298):\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 239.41\n VWAP: 238.82\n Volume: 393525.0\n MA5: 239.67\n MA20: 239.55\n Volume MA5: 282221.00\n Price Change: -0.14%\n Volume Change: 101.70%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 239.83\n VWAP: 238.84\n Volume: 395156.0\n MA5: 239.76\n MA20: 239.58\n Volume MA5: 329386.00\n Price Change: 0.18%\n Volume Change: 0.41%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 239.63\n VWAP: 238.86\n Volume: 297308.0\n MA5: 239.73\n MA20: 239.59\n Volume MA5: 358250.40\n Price Change: -0.08%\n Volume Change: -24.76%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0301):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 239.83\n VWAP: 238.84\n Volume: 395156.0\n MA5: 239.76\n MA20: 239.58\n Volume MA5: 329386.00\n Price Change: 0.18%\n Volume Change: 0.41%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 239.63\n VWAP: 238.86\n Volume: 297308.0\n MA5: 239.73\n MA20: 239.59\n Volume MA5: 358250.40\n Price Change: -0.08%\n Volume Change: -24.76%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 237.94\n VWAP: 238.82\n Volume: 174609.0\n MA5: 238.41\n MA20: 238.92\n Volume MA5: 164473.20\n Price Change: -0.32%\n Volume Change: 31.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 237.62\n VWAP: 238.80\n Volume: 311919.0\n MA5: 238.26\n MA20: 238.82\n Volume MA5: 191495.60\n Price Change: -0.13%\n Volume Change: 78.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 237.45\n VWAP: 238.78\n Volume: 300454.0\n MA5: 238.04\n MA20: 238.69\n Volume MA5: 214343.80\n Price Change: -0.07%\n Volume Change: -3.68%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 237.95\n VWAP: 238.77\n Volume: 194348.0\n MA5: 237.93\n MA20: 238.60\n Volume MA5: 222773.60\n Price Change: 0.21%\n Volume Change: -35.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 238.18\n VWAP: 238.77\n Volume: 272447.0\n MA5: 237.83\n MA20: 238.54\n Volume MA5: 250755.40\n Price Change: 0.10%\n Volume Change: 40.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 237.20\n VWAP: 238.75\n Volume: 244577.0\n MA5: 237.68\n MA20: 238.41\n Volume MA5: 264749.00\n Price Change: -0.41%\n Volume Change: -10.23%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 237.55\n VWAP: 238.73\n Volume: 262313.0\n MA5: 237.67\n MA20: 238.30\n Volume MA5: 254827.80\n Price Change: 0.15%\n Volume Change: 7.25%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 237.46\n VWAP: 238.72\n Volume: 205971.0\n MA5: 237.67\n MA20: 238.25\n Volume MA5: 235931.20\n Price Change: -0.04%\n Volume Change: -21.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 237.52\n VWAP: 238.71\n Volume: 220455.0\n MA5: 237.58\n MA20: 238.17\n Volume MA5: 241152.60\n Price Change: 0.03%\n Volume Change: 7.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 237.22\n VWAP: 238.69\n Volume: 270784.0\n MA5: 237.39\n MA20: 238.08\n Volume MA5: 240820.00\n Price Change: -0.13%\n Volume Change: 22.83%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 237.20\n VWAP: 238.68\n Volume: 258368.0\n MA5: 237.39\n MA20: 238.00\n Volume MA5: 243578.20\n Price Change: -0.01%\n Volume Change: -4.59%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 237.2, \"suggested_stop_loss\": 237.8, \"suggested_take_profit\": 236.8, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"Increasing volume with decreasing price\", \"Historical pattern of similar VWAP movements\"], \"reasoning\": \"The current market window shows a consistent downward trend in both price and VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0079):\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 238.70\n VWAP: 238.82\n Volume: 132538.0\n MA5: 238.57\n MA20: 239.00\n Volume MA5: 166119.60\n Price Change: 0.08%\n Volume Change: -12.92%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nSimilar context (score: 0.0300):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 238.37\n VWAP: 238.83\n Volume: 176807.0\n MA5: 238.49\n MA20: 239.14\n Volume MA5: 219795.60\n Price Change: -0.15%\n Volume Change: -3.30%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 238.53\n VWAP: 238.83\n Volume: 186213.0\n MA5: 238.47\n MA20: 239.09\n Volume MA5: 218588.00\n Price Change: 0.07%\n Volume Change: 5.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 238.51\n VWAP: 238.82\n Volume: 152199.0\n MA5: 238.46\n MA20: 239.04\n Volume MA5: 206448.00\n Price Change: -0.01%\n Volume Change: -18.27%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n===\nSimilar context (score: 0.0311):\nTime: 2025-01-31 13:15:00-05:00\n\n Current Price: 239.41\n VWAP: 238.82\n Volume: 393525.0\n MA5: 239.67\n MA20: 239.55\n Volume MA5: 282221.00\n Price Change: -0.14%\n Volume Change: 101.70%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 239.83\n VWAP: 238.84\n Volume: 395156.0\n MA5: 239.76\n MA20: 239.58\n Volume MA5: 329386.00\n Price Change: 0.18%\n Volume Change: 0.41%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 239.63\n VWAP: 238.86\n Volume: 297308.0\n MA5: 239.73\n MA20: 239.59\n Volume MA5: 358250.40\n Price Change: -0.08%\n Volume Change: -24.76%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 238.41\n VWAP: 238.85\n Volume: 294239.0\n MA5: 239.41\n MA20: 239.52\n Volume MA5: 315066.20\n Price Change: -0.51%\n Volume Change: -1.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 239.20\n VWAP: 238.85\n Volume: 324052.0\n MA5: 239.29\n MA20: 239.50\n Volume MA5: 340856.00\n Price Change: 0.33%\n Volume Change: 10.13%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 238.93\n VWAP: 238.86\n Volume: 226751.0\n MA5: 239.20\n MA20: 239.49\n Volume MA5: 307501.20\n Price Change: -0.11%\n Volume Change: -30.03%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 238.87\n VWAP: 238.86\n Volume: 146698.0\n MA5: 239.01\n MA20: 239.48\n Volume MA5: 257809.60\n Price Change: -0.03%\n Volume Change: -35.30%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 238.52\n VWAP: 238.85\n Volume: 255148.0\n MA5: 238.79\n MA20: 239.43\n Volume MA5: 249377.60\n Price Change: -0.14%\n Volume Change: 73.93%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 238.67\n VWAP: 238.85\n Volume: 192251.0\n MA5: 238.84\n MA20: 239.38\n Volume MA5: 228980.00\n Price Change: 0.06%\n Volume Change: -24.65%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 238.56\n VWAP: 238.85\n Volume: 212899.0\n MA5: 238.71\n MA20: 239.33\n Volume MA5: 206749.40\n Price Change: -0.05%\n Volume Change: 10.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 238.15\n VWAP: 238.83\n Volume: 334180.0\n MA5: 238.56\n MA20: 239.24\n Volume MA5: 228235.20\n Price Change: -0.17%\n Volume Change: 56.97%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 238.72\n VWAP: 238.83\n Volume: 182841.0\n MA5: 238.53\n MA20: 239.20\n Volume MA5: 235463.80\n Price Change: 0.24%\n Volume Change: -45.29%\n Previous 5min VWAP Movement: down (-0.00%)\n \nNext Interval VWAP Movement: down (-0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 237.94\n VWAP: 238.82\n Volume: 174609.0\n MA5: 238.41\n MA20: 238.92\n Volume MA5: 164473.20\n Price Change: -0.32%\n Volume Change: 31.74%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 237.62\n VWAP: 238.80\n Volume: 311919.0\n MA5: 238.26\n MA20: 238.82\n Volume MA5: 191495.60\n Price Change: -0.13%\n Volume Change: 78.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 237.45\n VWAP: 238.78\n Volume: 300454.0\n MA5: 238.04\n MA20: 238.69\n Volume MA5: 214343.80\n Price Change: -0.07%\n Volume Change: -3.68%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 237.95\n VWAP: 238.77\n Volume: 194348.0\n MA5: 237.93\n MA20: 238.60\n Volume MA5: 222773.60\n Price Change: 0.21%\n Volume Change: -35.32%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 238.18\n VWAP: 238.77\n Volume: 272447.0\n MA5: 237.83\n MA20: 238.54\n Volume MA5: 250755.40\n Price Change: 0.10%\n Volume Change: 40.19%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 237.20\n VWAP: 238.75\n Volume: 244577.0\n MA5: 237.68\n MA20: 238.41\n Volume MA5: 264749.00\n Price Change: -0.41%\n Volume Change: -10.23%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 237.55\n VWAP: 238.73\n Volume: 262313.0\n MA5: 237.67\n MA20: 238.30\n Volume MA5: 254827.80\n Price Change: 0.15%\n Volume Change: 7.25%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 237.46\n VWAP: 238.72\n Volume: 205971.0\n MA5: 237.67\n MA20: 238.25\n Volume MA5: 235931.20\n Price Change: -0.04%\n Volume Change: -21.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 237.52\n VWAP: 238.71\n Volume: 220455.0\n MA5: 237.58\n MA20: 238.17\n Volume MA5: 241152.60\n Price Change: 0.03%\n Volume Change: 7.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 237.22\n VWAP: 238.69\n Volume: 270784.0\n MA5: 237.39\n MA20: 238.08\n Volume MA5: 240820.00\n Price Change: -0.13%\n Volume Change: 22.83%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 237.20\n VWAP: 238.68\n Volume: 258368.0\n MA5: 237.39\n MA20: 238.00\n Volume MA5: 243578.20\n Price Change: -0.01%\n Volume Change: -4.59%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 237.54\n VWAP: 238.66\n Volume: 332358.0\n MA5: 237.39\n MA20: 237.95\n Volume MA5: 257587.20\n Price Change: 0.14%\n Volume Change: 28.64%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 237.54, \"suggested_stop_loss\": 237.8, \"suggested_take_profit\": 237.2, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume spikes with price drops\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP with no significant upward corrections, similar to historical patterns where VWAP continued to decline. The price is consistently below both MA5 and MA20, indicating a bearish trend. Volume spikes have been associated with price drops, suggesting selling pressure. Given these signals, a further slight decline in VWAP is expected, with a high confidence score due to the strong alignment with historical patterns.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0104):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 205.13\n VWAP: 204.51\n Volume: 266431.0\n MA5: 205.13\n MA20: 204.97\n Volume MA5: 226461.80\n Price Change: 0.08%\n Volume Change: 21.66%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 204.61\n VWAP: 204.51\n Volume: 260109.0\n MA5: 204.99\n MA20: 204.97\n Volume MA5: 231002.40\n Price Change: -0.25%\n Volume Change: -2.37%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nSimilar context (score: 0.0297):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 204.97\n VWAP: 204.50\n Volume: 219005.0\n MA5: 205.10\n MA20: 204.95\n Volume MA5: 248356.40\n Price Change: -0.08%\n Volume Change: 12.68%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n===\nSimilar context (score: 0.0300):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 204.89\n VWAP: 204.40\n Volume: 264775.0\n MA5: 204.94\n MA20: 204.67\n Volume MA5: 297086.40\n Price Change: -0.16%\n Volume Change: -55.06%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 204.34\n VWAP: 204.40\n Volume: 303979.0\n MA5: 204.82\n MA20: 204.65\n Volume MA5: 318991.60\n Price Change: -0.27%\n Volume Change: 14.81%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 204.82\n VWAP: 204.41\n Volume: 285471.0\n MA5: 204.79\n MA20: 204.66\n Volume MA5: 342724.80\n Price Change: 0.24%\n Volume Change: -6.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 204.78\n VWAP: 204.41\n Volume: 181945.0\n MA5: 204.81\n MA20: 204.67\n Volume MA5: 325069.80\n Price Change: -0.02%\n Volume Change: -36.26%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 205.13\n VWAP: 204.42\n Volume: 160096.0\n MA5: 204.79\n MA20: 204.71\n Volume MA5: 239253.20\n Price Change: 0.17%\n Volume Change: -12.01%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 205.03\n VWAP: 204.43\n Volume: 280647.0\n MA5: 204.82\n MA20: 204.73\n Volume MA5: 242427.60\n Price Change: -0.05%\n Volume Change: 75.30%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 205.08\n VWAP: 204.44\n Volume: 207422.0\n MA5: 204.97\n MA20: 204.76\n Volume MA5: 223116.20\n Price Change: 0.02%\n Volume Change: -26.09%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 205.31\n VWAP: 204.46\n Volume: 276454.0\n MA5: 205.07\n MA20: 204.81\n Volume MA5: 221312.80\n Price Change: 0.11%\n Volume Change: 33.28%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 204.98\n VWAP: 204.47\n Volume: 375904.0\n MA5: 205.11\n MA20: 204.83\n Volume MA5: 260104.60\n Price Change: -0.16%\n Volume Change: 35.97%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 205.30\n VWAP: 204.48\n Volume: 237406.0\n MA5: 205.14\n MA20: 204.88\n Volume MA5: 275566.60\n Price Change: 0.16%\n Volume Change: -36.84%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 205.12\n VWAP: 204.49\n Volume: 215099.0\n MA5: 205.16\n MA20: 204.92\n Volume MA5: 262457.00\n Price Change: -0.09%\n Volume Change: -9.40%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 205.12\n VWAP: 204.50\n Volume: 194368.0\n MA5: 205.17\n MA20: 204.94\n Volume MA5: 259846.20\n Price Change: 0.00%\n Volume Change: -9.64%\n Previous 5min VWAP Movement: up (0.00%)\n \nNext Interval VWAP Movement: up (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 204.30\n VWAP: 204.51\n Volume: 284775.0\n MA5: 204.83\n MA20: 204.94\n Volume MA5: 244937.60\n Price Change: -0.15%\n Volume Change: 9.48%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 204.22\n VWAP: 204.50\n Volume: 444270.0\n MA5: 204.65\n MA20: 204.90\n Volume MA5: 294918.00\n Price Change: -0.04%\n Volume Change: 56.01%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 204.28\n VWAP: 204.50\n Volume: 156725.0\n MA5: 204.51\n MA20: 204.87\n Volume MA5: 282462.00\n Price Change: 0.03%\n Volume Change: -64.72%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 204.29\n VWAP: 204.50\n Volume: 198333.0\n MA5: 204.34\n MA20: 204.85\n Volume MA5: 268842.40\n Price Change: 0.01%\n Volume Change: 26.55%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 203.53\n VWAP: 204.48\n Volume: 318524.0\n MA5: 204.13\n MA20: 204.76\n Volume MA5: 280525.40\n Price Change: -0.37%\n Volume Change: 60.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 203.53\n VWAP: 204.47\n Volume: 241736.0\n MA5: 203.97\n MA20: 204.69\n Volume MA5: 271917.60\n Price Change: 0.00%\n Volume Change: -24.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 203.56\n VWAP: 204.46\n Volume: 221707.0\n MA5: 203.84\n MA20: 204.66\n Volume MA5: 227405.00\n Price Change: 0.01%\n Volume Change: -8.29%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 203.73\n VWAP: 204.45\n Volume: 275884.0\n MA5: 203.73\n MA20: 204.60\n Volume MA5: 251236.80\n Price Change: 0.08%\n Volume Change: 24.44%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 203.84\n VWAP: 204.44\n Volume: 239855.0\n MA5: 203.64\n MA20: 204.55\n Volume MA5: 259541.20\n Price Change: 0.05%\n Volume Change: -13.06%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 203.57\n VWAP: 204.43\n Volume: 244267.0\n MA5: 203.65\n MA20: 204.48\n Volume MA5: 244689.80\n Price Change: -0.13%\n Volume Change: 1.84%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 203.71\n VWAP: 204.42\n Volume: 247524.0\n MA5: 203.68\n MA20: 204.41\n Volume MA5: 245847.40\n Price Change: 0.07%\n Volume Change: 1.33%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 203.51\n VWAP: 204.41\n Volume: 283365.0\n MA5: 203.67\n MA20: 204.33\n Volume MA5: 258179.00\n Price Change: -0.10%\n Volume Change: 14.48%\n Previous 5min VWAP Movement: down (-0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 203.5, \"suggested_stop_loss\": 204.0, \"suggested_take_profit\": 203.0, \"key_signals\": [\"Consistent downward VWAP movement in current window\", \"Price consistently below MA5 and MA20\", \"Volume spikes without significant price recovery\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP with no significant recovery in price despite volume spikes. Historical patterns with similar VWAP and price movements suggest a continuation of the downward trend. The confidence score is high due to the alignment of multiple indicators pointing towards a bearish movement. The suggested trade levels are set to capitalize on the expected downward movement while managing risk with a stop-loss above recent price highs.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0145):\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 409.98\n VWAP: 414.21\n Volume: 845583.0\n MA5: 409.26\n MA20: 413.60\n Volume MA5: 867935.20\n Price Change: 0.36%\n Volume Change: 29.79%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 406.95\n VWAP: 414.08\n Volume: 1052363.0\n MA5: 408.50\n MA20: 412.99\n Volume MA5: 888531.60\n Price Change: -0.74%\n Volume Change: 24.45%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nSimilar context (score: 0.0358):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 415.90\n VWAP: 414.97\n Volume: 750406.0\n MA5: 417.88\n MA20: 418.50\n Volume MA5: 600859.20\n Price Change: -0.35%\n Volume Change: -32.87%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0362):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 413.74\n VWAP: 414.94\n Volume: 1095455.0\n MA5: 416.81\n MA20: 418.29\n Volume MA5: 746821.20\n Price Change: -0.52%\n Volume Change: 45.98%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 413.21\n VWAP: 414.90\n Volume: 1365064.0\n MA5: 415.59\n MA20: 418.02\n Volume MA5: 955443.80\n Price Change: -0.13%\n Volume Change: 24.61%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 413.49\n VWAP: 414.87\n Volume: 1018366.0\n MA5: 414.74\n MA20: 417.79\n Volume MA5: 1069431.20\n Price Change: 0.07%\n Volume Change: -25.40%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 413.36\n VWAP: 414.83\n Volume: 1485986.0\n MA5: 413.94\n MA20: 417.53\n Volume MA5: 1143055.40\n Price Change: -0.03%\n Volume Change: 45.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 411.81\n VWAP: 414.77\n Volume: 975520.0\n MA5: 413.12\n MA20: 417.15\n Volume MA5: 1188078.20\n Price Change: -0.37%\n Volume Change: -34.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 411.48\n VWAP: 414.74\n Volume: 648246.0\n MA5: 412.67\n MA20: 416.77\n Volume MA5: 1098636.40\n Price Change: -0.08%\n Volume Change: -33.55%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 411.48\n VWAP: 414.69\n Volume: 712560.0\n MA5: 412.32\n MA20: 416.37\n Volume MA5: 968135.60\n Price Change: 0.00%\n Volume Change: 9.92%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 409.20\n VWAP: 414.58\n Volume: 1247524.0\n MA5: 411.47\n MA20: 415.91\n Volume MA5: 1013967.20\n Price Change: -0.55%\n Volume Change: 75.08%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 410.75\n VWAP: 414.51\n Volume: 949381.0\n MA5: 410.94\n MA20: 415.53\n Volume MA5: 906646.20\n Price Change: 0.38%\n Volume Change: -23.90%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 408.44\n VWAP: 414.42\n Volume: 913265.0\n MA5: 410.27\n MA20: 415.06\n Volume MA5: 894195.20\n Price Change: -0.56%\n Volume Change: -3.80%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 408.60\n VWAP: 414.33\n Volume: 979936.0\n MA5: 409.69\n MA20: 414.58\n Volume MA5: 960533.20\n Price Change: 0.04%\n Volume Change: 7.30%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 408.51\n VWAP: 414.26\n Volume: 651511.0\n MA5: 409.10\n MA20: 414.06\n Volume MA5: 948323.40\n Price Change: -0.02%\n Volume Change: -33.51%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 406.06\n VWAP: 413.97\n Volume: 868845.0\n MA5: 408.02\n MA20: 412.32\n Volume MA5: 879647.60\n Price Change: -0.22%\n Volume Change: -17.44%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 405.73\n VWAP: 413.80\n Volume: 1399558.0\n MA5: 407.45\n MA20: 411.66\n Volume MA5: 963572.00\n Price Change: -0.08%\n Volume Change: 61.08%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 406.64\n VWAP: 413.69\n Volume: 986748.0\n MA5: 407.07\n MA20: 411.02\n Volume MA5: 1030619.40\n Price Change: 0.22%\n Volume Change: -29.50%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 406.55\n VWAP: 413.60\n Volume: 828548.0\n MA5: 406.39\n MA20: 410.46\n Volume MA5: 1027212.40\n Price Change: -0.02%\n Volume Change: -16.03%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 403.27\n VWAP: 413.42\n Volume: 1204327.0\n MA5: 405.65\n MA20: 409.76\n Volume MA5: 1057605.20\n Price Change: -0.81%\n Volume Change: 45.35%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 402.84\n VWAP: 413.23\n Volume: 1256449.0\n MA5: 405.01\n MA20: 409.10\n Volume MA5: 1135126.00\n Price Change: -0.11%\n Volume Change: 4.33%\n Previous 5min VWAP Movement: down (-0.05%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 402.33\n VWAP: 413.12\n Volume: 688261.0\n MA5: 404.32\n MA20: 408.53\n Volume MA5: 992866.60\n Price Change: -0.13%\n Volume Change: -45.22%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 402.80\n VWAP: 412.98\n Volume: 974166.0\n MA5: 403.56\n MA20: 408.01\n Volume MA5: 990350.20\n Price Change: 0.12%\n Volume Change: 41.54%\n Previous 5min VWAP Movement: down (-0.03%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 403.13\n VWAP: 412.90\n Volume: 584510.0\n MA5: 402.87\n MA20: 407.49\n Volume MA5: 941542.60\n Price Change: 0.08%\n Volume Change: -40.00%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 402.85\n VWAP: 412.80\n Volume: 711509.0\n MA5: 402.79\n MA20: 406.97\n Volume MA5: 842979.00\n Price Change: -0.07%\n Volume Change: 21.73%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:30:00-05:00\n\n Current Price: 404.67\n VWAP: 412.71\n Volume: 864206.0\n MA5: 403.16\n MA20: 406.61\n Volume MA5: 764530.40\n Price Change: 0.45%\n Volume Change: 21.46%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:35:00-05:00\n\n Current Price: 402.94\n VWAP: 412.56\n Volume: 1135118.0\n MA5: 403.28\n MA20: 406.19\n Volume MA5: 853901.80\n Price Change: -0.43%\n Volume Change: 31.35%\n Previous 5min VWAP Movement: down (-0.04%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.02, \"volatility_estimate\": 0.03, \"suggested_entry\": 402.5, \"suggested_stop_loss\": 404.0, \"suggested_take_profit\": 401.0, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume with negative price change\", \"Historical patterns showing continued VWAP decline\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in continued VWAP declines. Therefore, the prediction is for a further decrease in VWAP with a high confidence score. The suggested trade levels are set to capitalize on this expected movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0107):\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 129.76\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.62\n MA20: 130.48\n Volume MA5: 239360.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nSimilar context (score: 0.0279):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 130.51\n VWAP: 133.35\n Volume: 0.0\n MA5: 131.15\n MA20: 131.57\n Volume MA5: 0.00\n Price Change: -0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 130.35\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.84\n MA20: 131.48\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 130.38\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.62\n MA20: 131.40\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 130.12\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.41\n MA20: 131.31\n Volume MA5: 0.00\n Price Change: -0.20%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 130.09\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.29\n MA20: 131.23\n Volume MA5: 0.00\n Price Change: -0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 130.02\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.19\n MA20: 131.16\n Volume MA5: 0.00\n Price Change: -0.05%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 129.77\n VWAP: 133.35\n Volume: 0.0\n MA5: 130.08\n MA20: 131.08\n Volume MA5: 0.00\n Price Change: -0.19%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 129.48\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.90\n MA20: 130.97\n Volume MA5: 0.00\n Price Change: -0.22%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 129.81\n VWAP: 133.35\n Volume: 0.0\n MA5: 129.83\n MA20: 130.91\n Volume MA5: 0.00\n Price Change: 0.25%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 129.32\n VWAP: 133.30\n Volume: 1034624.0\n MA5: 129.68\n MA20: 130.80\n Volume MA5: 206924.80\n Price Change: -0.38%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.04%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 129.54\n VWAP: 133.29\n Volume: 162176.0\n MA5: 129.58\n MA20: 130.69\n Volume MA5: 239360.00\n Price Change: 0.18%\n Volume Change: -84.33%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 129.67\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.56\n MA20: 130.58\n Volume MA5: 239360.00\n Price Change: 0.09%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \nNext Interval VWAP Movement: down (0.00%)\n===\nSimilar context (score: 0.0285):\nTime: 2025-01-31 09:35:00+00:00\n\n Current Price: 129.50\n VWAP: 129.52\n Volume: 875392.0\n MA5: 129.53\n MA20: 129.53\n Volume MA5: 696768.00\n Price Change: -0.04%\n Volume Change: 68.95%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 09:40:00+00:00\n\n Current Price: 129.60\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.55\n MA20: 129.55\n Volume MA5: 464512.00\n Price Change: 0.08%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:45:00+00:00\n\n Current Price: 129.78\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.61\n MA20: 129.61\n Volume MA5: 348384.00\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:50:00+00:00\n\n Current Price: 130.05\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.70\n MA20: 129.70\n Volume MA5: 278707.20\n Price Change: 0.21%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 09:55:00+00:00\n\n Current Price: 130.26\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.84\n MA20: 129.79\n Volume MA5: 175078.40\n Price Change: 0.16%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:00:00+00:00\n\n Current Price: 130.21\n VWAP: 129.52\n Volume: 0.0\n MA5: 129.98\n MA20: 129.85\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:05:00+00:00\n\n Current Price: 130.34\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.13\n MA20: 129.91\n Volume MA5: 0.00\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:10:00+00:00\n\n Current Price: 130.37\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.25\n MA20: 129.96\n Volume MA5: 0.00\n Price Change: 0.03%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:15:00+00:00\n\n Current Price: 130.29\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.30\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:20:00+00:00\n\n Current Price: 130.30\n VWAP: 129.52\n Volume: 0.0\n MA5: 130.31\n MA20: 130.03\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 10:25:00+00:00\n\n Current Price: 131.06\n VWAP: 130.65\n Volume: 3770112.0\n MA5: 130.48\n MA20: 130.11\n Volume MA5: 754022.40\n Price Change: 0.58%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.87%)\n \n===\nTime: 2025-01-31 10:30:00+00:00\n\n Current Price: 131.37\n VWAP: 130.70\n Volume: 433152.0\n MA5: 130.68\n MA20: 130.21\n Volume MA5: 840652.80\n Price Change: 0.24%\n Volume Change: -88.51%\n Previous 5min VWAP Movement: up (0.04%)\n \nNext Interval VWAP Movement: down (0.00%)\n\nCurrent market state:\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 130.36\n Volume MA5: 239360.00\n Price Change: -0.23%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 129.90\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.67\n MA20: 130.26\n Volume MA5: 32435.20\n Price Change: 0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 129.98\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 130.17\n Volume MA5: 0.00\n Price Change: 0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 130.01\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.82\n MA20: 130.08\n Volume MA5: 0.00\n Price Change: 0.02%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 129.96\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.86\n MA20: 130.00\n Volume MA5: 0.00\n Price Change: -0.04%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 129.82\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.93\n MA20: 129.93\n Volume MA5: 0.00\n Price Change: -0.11%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 129.38\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.83\n MA20: 129.87\n Volume MA5: 0.00\n Price Change: -0.34%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 129.60\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.75\n MA20: 129.82\n Volume MA5: 0.00\n Price Change: 0.17%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 129.44\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.64\n MA20: 129.78\n Volume MA5: 0.00\n Price Change: -0.12%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 129.46\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.54\n MA20: 129.73\n Volume MA5: 0.00\n Price Change: 0.01%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 129.85\n VWAP: 133.29\n Volume: 0.0\n MA5: 129.55\n MA20: 129.72\n Volume MA5: 0.00\n Price Change: 0.30%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:30:00+00:00\n\n Current Price: 130.50\n VWAP: 133.20\n Volume: 2725120.0\n MA5: 129.77\n MA20: 129.74\n Volume MA5: 545024.00\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (-0.07%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.05, \"volatility_estimate\": 0.02, \"suggested_entry\": 130.5, \"suggested_stop_loss\": 130.8, \"suggested_take_profit\": 130.2, \"key_signals\": [\"Consistent VWAP decline\", \"Price below MA5 and MA20\", \"No volume support for price increases\", \"Historical pattern of VWAP decline in similar contexts\"], \"reasoning\": \"The current market window shows a consistent decline in VWAP with no volume support, similar to historical windows where VWAP continued to decline. The price is below both MA5 and MA20, indicating bearish momentum. Given the lack of volume and the historical pattern, a further VWAP decline is expected. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0066):\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:25:00-05:00\n\n Current Price: 692.89\n VWAP: 698.57\n Volume: 211333.0\n MA5: 694.59\n MA20: 696.18\n Volume MA5: 192017.80\n Price Change: -0.12%\n Volume Change: 1.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nSimilar context (score: 0.0277):\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:20:00-05:00\n\n Current Price: 693.72\n VWAP: 698.66\n Volume: 207294.0\n MA5: 695.52\n MA20: 696.48\n Volume MA5: 178248.40\n Price Change: -0.06%\n Volume Change: 40.75%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n===\nSimilar context (score: 0.0281):\nTime: 2025-01-31 13:20:00-05:00\n\n Current Price: 696.07\n VWAP: 699.22\n Volume: 129501.0\n MA5: 697.23\n MA20: 699.08\n Volume MA5: 107147.60\n Price Change: -0.01%\n Volume Change: -1.76%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:25:00-05:00\n\n Current Price: 694.60\n VWAP: 699.14\n Volume: 188263.0\n MA5: 696.40\n MA20: 698.74\n Volume MA5: 127902.40\n Price Change: -0.21%\n Volume Change: 45.38%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:30:00-05:00\n\n Current Price: 693.04\n VWAP: 699.04\n Volume: 199026.0\n MA5: 695.39\n MA20: 698.30\n Volume MA5: 148263.60\n Price Change: -0.22%\n Volume Change: 5.72%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 13:35:00-05:00\n\n Current Price: 696.05\n VWAP: 698.99\n Volume: 172927.0\n MA5: 695.18\n MA20: 697.98\n Volume MA5: 164307.00\n Price Change: 0.43%\n Volume Change: -13.11%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:40:00-05:00\n\n Current Price: 695.66\n VWAP: 698.95\n Volume: 154842.0\n MA5: 695.08\n MA20: 697.70\n Volume MA5: 168911.80\n Price Change: -0.06%\n Volume Change: -10.46%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 13:45:00-05:00\n\n Current Price: 696.78\n VWAP: 698.93\n Volume: 113823.0\n MA5: 695.23\n MA20: 697.50\n Volume MA5: 165776.20\n Price Change: 0.16%\n Volume Change: -26.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:50:00-05:00\n\n Current Price: 696.77\n VWAP: 698.92\n Volume: 80782.0\n MA5: 695.66\n MA20: 697.33\n Volume MA5: 144280.00\n Price Change: -0.00%\n Volume Change: -29.03%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 13:55:00-05:00\n\n Current Price: 697.30\n VWAP: 698.90\n Volume: 102993.0\n MA5: 696.51\n MA20: 697.26\n Volume MA5: 125073.40\n Price Change: 0.08%\n Volume Change: 27.49%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:00:00-05:00\n\n Current Price: 697.53\n VWAP: 698.89\n Volume: 142486.0\n MA5: 696.81\n MA20: 697.15\n Volume MA5: 118985.20\n Price Change: 0.03%\n Volume Change: 38.35%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:05:00-05:00\n\n Current Price: 695.65\n VWAP: 698.83\n Volume: 200903.0\n MA5: 696.81\n MA20: 696.96\n Volume MA5: 128197.40\n Price Change: -0.27%\n Volume Change: 41.00%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:10:00-05:00\n\n Current Price: 696.55\n VWAP: 698.80\n Volume: 193281.0\n MA5: 696.76\n MA20: 696.89\n Volume MA5: 144089.00\n Price Change: 0.13%\n Volume Change: -3.79%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:15:00-05:00\n\n Current Price: 694.14\n VWAP: 698.75\n Volume: 147278.0\n MA5: 696.23\n MA20: 696.67\n Volume MA5: 157388.20\n Price Change: -0.35%\n Volume Change: -23.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \nNext Interval VWAP Movement: down (-0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00-05:00\n\n Current Price: 693.12\n VWAP: 698.51\n Volume: 145076.0\n MA5: 694.08\n MA20: 695.89\n Volume MA5: 180852.40\n Price Change: 0.03%\n Volume Change: -31.35%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:35:00-05:00\n\n Current Price: 690.66\n VWAP: 698.40\n Volume: 194921.0\n MA5: 692.90\n MA20: 695.53\n Volume MA5: 181180.40\n Price Change: -0.35%\n Volume Change: 34.36%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:40:00-05:00\n\n Current Price: 689.96\n VWAP: 698.28\n Volume: 203768.0\n MA5: 692.07\n MA20: 695.09\n Volume MA5: 192478.40\n Price Change: -0.10%\n Volume Change: 4.54%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:45:00-05:00\n\n Current Price: 689.79\n VWAP: 698.16\n Volume: 196780.0\n MA5: 691.28\n MA20: 694.68\n Volume MA5: 190375.60\n Price Change: -0.02%\n Volume Change: -3.43%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 14:50:00-05:00\n\n Current Price: 690.76\n VWAP: 698.06\n Volume: 180696.0\n MA5: 690.86\n MA20: 694.36\n Volume MA5: 184248.20\n Price Change: 0.14%\n Volume Change: -8.17%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:55:00-05:00\n\n Current Price: 690.86\n VWAP: 697.99\n Volume: 132555.0\n MA5: 690.41\n MA20: 694.09\n Volume MA5: 181744.00\n Price Change: 0.01%\n Volume Change: -26.64%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:00:00-05:00\n\n Current Price: 688.50\n VWAP: 697.88\n Volume: 168352.0\n MA5: 689.97\n MA20: 693.72\n Volume MA5: 176430.20\n Price Change: -0.34%\n Volume Change: 27.01%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:05:00-05:00\n\n Current Price: 688.27\n VWAP: 697.80\n Volume: 126600.0\n MA5: 689.64\n MA20: 693.40\n Volume MA5: 160996.60\n Price Change: -0.03%\n Volume Change: -24.80%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:10:00-05:00\n\n Current Price: 689.02\n VWAP: 697.72\n Volume: 133951.0\n MA5: 689.48\n MA20: 693.20\n Volume MA5: 148430.80\n Price Change: 0.11%\n Volume Change: 5.81%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:15:00-05:00\n\n Current Price: 688.51\n VWAP: 697.61\n Volume: 179744.0\n MA5: 689.03\n MA20: 692.82\n Volume MA5: 148240.40\n Price Change: -0.07%\n Volume Change: 34.19%\n Previous 5min VWAP Movement: down (-0.02%)\n \n===\nTime: 2025-01-31 15:20:00-05:00\n\n Current Price: 688.96\n VWAP: 697.51\n Volume: 169149.0\n MA5: 688.65\n MA20: 692.49\n Volume MA5: 155559.20\n Price Change: 0.07%\n Volume Change: -5.89%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 15:25:00-05:00\n\n Current Price: 686.93\n VWAP: 697.38\n Volume: 190726.0\n MA5: 688.34\n MA20: 691.99\n Volume MA5: 160034.00\n Price Change: -0.29%\n Volume Change: 12.76%\n Previous 5min VWAP Movement: down (-0.02%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"down\", \"confidence_score\": 0.85, \"expected_vwap_change\": -0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 686.5, \"suggested_stop_loss\": 688.0, \"suggested_take_profit\": 684.5, \"key_signals\": [\"Consistent downward VWAP movement\", \"Price below MA5 and MA20\", \"High volume relative to recent intervals\", \"Negative price change trend\"], \"reasoning\": \"The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating a bearish sentiment. Historical similar contexts also showed a continuation of the downward VWAP movement. The volume is relatively high, suggesting strong selling pressure. Given these factors, a further slight decrease in VWAP is expected. The suggested trade levels are set to capitalize on this expected movement while managing risk effectively.\"}"}]} +{"messages": [{"role": "system", "content": "\n Predict the VWAP movement for the next 5-minute interval using historical and current market data. Aim for high accuracy, estimate movement magnitude, assess volatility, and provide actionable trading insights.\n\n Input Data:\n Historical Context Windows:\n - Top 5 similar past market windows based on resemblance to the current market window.\n - Each window consists of multiple 5-minute intervals leading up to the current window.\n - These windows help identify patterns preceding previous VWAP movements.\n\n Current Window:\n - Recent 5-minute intervals, with the latest interval being the most recent market data.\n - Metrics include: Price, VWAP, Volume, MA5, MA20, Volume MA5, Price Change, Volume Change, VWAP Change.\n\n Tasks:\n 1. Analyze the Current Window:\n - Extract key trends, anomalies, or signals.\n 2. Compare Against Historical Context:\n - Identify how similar historical windows evolved.\n - Detect patterns indicating VWAP increases or decreases.\n 3. Predict the Next Interval\u2019s VWAP Movement:\n - Determine if VWAP will move up or down.\n - Provide a confidence score (0.0 to 1.0).\n 4. Estimate Movement Magnitude and Volatility:\n - Predict expected VWAP change.\n - Assess short-term volatility.\n 5. Optimize Trade Execution and Risk Management:\n - Recommend trade levels: Entry Price, Stop-Loss Level, Take-Profit Level.\n - Ensure realistic market conditions and risk-adjusted reward expectations.\n 6. Identify Key Signals Used in Prediction:\n - List relevant signals or indicators.\n 7. Provide Justification for the Prediction:\n - Offer data-driven reasoning for the prediction and trade levels.\n\n Output Format (strict JSON):\n {\n \"vwap_direction_next_5min\": \"up\" or \"down\",\n \"confidence_score\": ,\n \"expected_vwap_change\": ,\n \"volatility_estimate\": ,\n \"suggested_entry\": ,\n \"suggested_stop_loss\": ,\n \"suggested_take_profit\": ,\n \"key_signals\": [\"list of relevant signals or indicators used\"],\n \"reasoning\": \"concise explanation of the logic behind your prediction and recommendations\"\n }\n "}, {"role": "user", "content": "Historical context:\nSimilar context (score: 0.0119):\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 5318912.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 11942246.40\n Price Change: -0.26%\n Volume Change: 98.52%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nSimilar context (score: 0.0286):\nTime: 2025-01-31 13:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 6474752.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 8513433.60\n Price Change: -0.17%\n Volume Change: -47.18%\n Previous 5min VWAP Movement: up (0.04%)\n \n===\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \nNext Interval VWAP Movement: up (0.01%)\n===\nSimilar context (score: 0.0289):\nTime: 2025-01-31 13:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 3713024.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 9256038.40\n Price Change: 0.10%\n Volume Change: -42.65%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 7753267.20\n Price Change: -0.19%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:35:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4489292.80\n Price Change: -0.06%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 13:40:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 9288576.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 3895270.40\n Price Change: 0.40%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.07%)\n \n===\nTime: 2025-01-31 13:45:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7192960.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4038912.00\n Price Change: -0.30%\n Volume Change: -22.56%\n Previous 5min VWAP Movement: up (0.03%)\n \n===\nTime: 2025-01-31 13:50:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4754560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4247219.20\n Price Change: 0.16%\n Volume Change: -33.90%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 13:55:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 1068800.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 4460979.20\n Price Change: -0.07%\n Volume Change: -77.52%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:00:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 8162560.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 6093491.20\n Price Change: -0.19%\n Volume Change: 663.71%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:05:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 40074624.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12250700.80\n Price Change: 0.29%\n Volume Change: 390.96%\n Previous 5min VWAP Movement: up (0.15%)\n \n===\nTime: 2025-01-31 14:10:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 7435520.0\n MA5: 0.34\n MA20: 0.33\n Volume MA5: 12299212.80\n Price Change: 0.05%\n Volume Change: -81.45%\n Previous 5min VWAP Movement: up (0.02%)\n \n===\nTime: 2025-01-31 14:15:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4202880.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12188876.80\n Price Change: 0.03%\n Volume Change: -43.48%\n Previous 5min VWAP Movement: up (0.01%)\n \n===\nTime: 2025-01-31 14:20:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 2679296.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 12510976.00\n Price Change: 0.12%\n Volume Change: -36.25%\n Previous 5min VWAP Movement: up (0.01%)\n \nNext Interval VWAP Movement: up (0.01%)\n\nCurrent market state:\nTime: 2025-01-31 14:30:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 482944.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4023910.40\n Price Change: 0.23%\n Volume Change: -90.92%\n Previous 5min VWAP Movement: up (0.00%)\n \n===\nTime: 2025-01-31 14:35:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 5339008.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 3604608.00\n Price Change: -0.76%\n Volume Change: 1005.51%\n Previous 5min VWAP Movement: down (-0.00%)\n \n===\nTime: 2025-01-31 14:40:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 9962368.0\n MA5: 0.34\n MA20: 0.34\n Volume MA5: 4756505.60\n Price Change: -0.10%\n Volume Change: 86.60%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:45:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 7177472.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 5656140.80\n Price Change: -0.10%\n Volume Change: -27.95%\n Previous 5min VWAP Movement: down (-0.01%)\n \n===\nTime: 2025-01-31 14:50:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4592358.40\n Price Change: -0.53%\n Volume Change: -100.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 14:55:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 4495769.60\n Price Change: 0.14%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:00:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.34\n Volume MA5: 3427968.00\n Price Change: 0.36%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:05:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 1435494.40\n Price Change: 0.10%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:10:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.13%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:15:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.18%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:20:00+00:00\n\n Current Price: 0.33\n VWAP: 0.33\n Volume: 0.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 0.00\n Price Change: 0.07%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: down (0.00%)\n \n===\nTime: 2025-01-31 15:25:00+00:00\n\n Current Price: 0.34\n VWAP: 0.33\n Volume: 4986112.0\n MA5: 0.33\n MA20: 0.33\n Volume MA5: 997222.40\n Price Change: 0.50%\n Volume Change: 0.00%\n Previous 5min VWAP Movement: up (0.01%)\n "}, {"role": "assistant", "content": "{\"vwap_direction_next_5min\": \"up\", \"confidence_score\": 0.75, \"expected_vwap_change\": 0.01, \"volatility_estimate\": 0.02, \"suggested_entry\": 0.33, \"suggested_stop_loss\": 0.32, \"suggested_take_profit\": 0.34, \"key_signals\": [\"Price Change\", \"Volume Change\", \"MA5 and MA20 alignment\", \"Historical VWAP movement patterns\"], \"reasoning\": \"The current market window shows a stabilization in price and VWAP at 0.33 with a recent uptick in price to 0.34, indicating potential upward momentum. Historical patterns with similar conditions often resulted in a slight increase in VWAP. The alignment of MA5 and MA20 at 0.33 suggests a neutral to slightly bullish trend. The recent increase in volume and price change supports a short-term upward movement. Given these factors, a cautious upward prediction is made with a moderate confidence score. The suggested trade levels are set to capture a small upward movement while managing risk with a tight stop-loss.\"}"}]} diff --git a/main.py b/main.py index b1f4217..e1b754c 100644 --- a/main.py +++ b/main.py @@ -5,7 +5,7 @@ Market Window Analysis Script This script performs rolling window analysis on market data using the market_predictor package. Example Usage: - python analyze_market_windows.py \ + python main.py \ --symbol BTC-USD \ --start-date 2024-01-01 \ --end-date 2024-01-31 \ @@ -31,64 +31,165 @@ from datetime import datetime import pandas as pd from tqdm import tqdm import nest_asyncio -import logging # Added logging im +import logging +from typing import Optional +from pathlib import Path +import matplotlib.pyplot as plt from market_predictor.market_data_fetcher import MarketDataFetcher from market_predictor.data_processor import MarketDataProcessor from market_predictor.prediction_service import PredictionService from market_predictor.performance_metrics import PerformanceMetrics +from market_predictor.analysis import PredictionAnalyzer -# Enable nested event loops -nest_asyncio.apply() +class MarketAnalyzer: + REQUIRED_COLUMNS = {'CLOSE', 'VOLUME', 'HIGH', 'LOW', 'OPEN'} + DEFAULT_OUTPUT_DIR = Path("output") + + def __init__(self, symbol: str, start_date: str, end_date: str): + self.logger = logging.getLogger(__name__) + self.timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + + # Create descriptive directory name + dir_name = f"{symbol}_{start_date}_{end_date}_{self.timestamp}" + self.output_dir = self.DEFAULT_OUTPUT_DIR / dir_name + self.output_dir.mkdir(parents=True, exist_ok=True) + + def get_output_path(self, filename: str) -> Path: + """Get path for output file""" + return self.output_dir / filename + + def validate_dataframe(self, df: pd.DataFrame) -> bool: + """Validate DataFrame meets requirements""" + if df is None: + return False + if df.empty: + return False + return True + + def prepare_market_data(self, df: pd.DataFrame) -> pd.DataFrame: + """Standardize and validate market data""" + if not self.validate_dataframe(df): + raise ValueError("No market data provided") + + # Standardize columns once + df = df.copy() + df.columns = [col.upper() for col in df.columns] + + # Validate required columns + missing = self.REQUIRED_COLUMNS - set(df.columns) + if missing: + raise ValueError(f"Missing required columns: {missing}") + + return df + + async def process_chunk(self, chunk_data: pd.DataFrame, chunk_id: int, + training_window: int, inference_window: int, + inference_offset: int) -> Optional[pd.DataFrame]: + """Process single data chunk""" + try: + if not self.validate_dataframe(chunk_data): + self.logger.error(f"Invalid chunk data for chunk {chunk_id}") + return None + + processor = MarketDataProcessor( + df=chunk_data, + training_window_size=training_window, + inference_window_size=inference_window, + inference_offset=inference_offset + ) + + service = PredictionService( + market_data=processor.df, + training_window_size=training_window, + inference_window_size=inference_window, + inference_offset=inference_offset + ) + + predictions = await service.main() + return pd.DataFrame(predictions) if predictions else None + + except Exception as e: + self.logger.error(f"Chunk {chunk_id} processing failed: {str(e)}") + return None + + def is_valid_dataframe(self, df: Optional[pd.DataFrame]) -> bool: + """Explicit DataFrame validation""" + return df is not None and not df.empty and isinstance(df, pd.DataFrame) -async def analyze_market_data( - market_data: pd.DataFrame, - training_window_size: int = 78, - inference_window_size: int = 12, - inference_offset: int = 0 -) -> pd.DataFrame: - """ - Analyze market data and generate predictions - - Args: - market_data: DataFrame containing market data - training_window_size: Size of training window - inference_window_size: Size of inference window - inference_offset: Offset for inference window - - Returns: - pd.DataFrame: DataFrame containing predictions - """ - # Initialize processor and service - processor = MarketDataProcessor( - df=market_data, - training_window_size=training_window_size, - inference_window_size=inference_window_size, - inference_offset=inference_offset - ) - - service = PredictionService( - market_data=processor.df, - training_window_size=training_window_size, - inference_window_size=inference_window_size, - inference_offset=inference_offset - ) - - # Get predictions and convert to DataFrame - predictions = await service.main() - if not predictions: # Handle empty list case - return pd.DataFrame() - - predictions_df = pd.DataFrame(predictions) - - # Generate performance report if we have predictions - if len(predictions_df) > 0: - metrics = PerformanceMetrics(predictions_df, processor.df) - report = metrics.generate_report() - print("\nPerformance Report:") - print(report) - - return predictions_df + async def analyze(self, market_data: pd.DataFrame, **kwargs) -> Optional[pd.DataFrame]: + """Main analysis pipeline""" + try: + if not self.is_valid_dataframe(market_data): + self.logger.error("Invalid market data provided") + return None + + market_data = self.prepare_market_data(market_data) + self.logger.info(f"Processing {len(market_data)} rows") + + chunk_size = kwargs.get('chunk_size', 100) + chunks = [] + + for i in range(0, len(market_data), chunk_size): + end_idx = min(i + chunk_size, len(market_data)) + chunk_data = market_data.iloc[i:end_idx] + + if self.is_valid_dataframe(chunk_data): + chunks.append((chunk_data, i//chunk_size)) + + tasks = [ + self.process_chunk(chunk_data, chunk_id, + kwargs['training_window'], + kwargs['inference_window'], + kwargs['inference_offset']) + for chunk_data, chunk_id in chunks + ] + + results = [] + with tqdm(total=len(tasks), desc="Processing") as pbar: + for task in asyncio.as_completed(tasks): + result = await task + if self.is_valid_dataframe(result): + results.append(result) + pbar.update(1) + + if not results: + return None + + predictions = pd.concat(results, ignore_index=True) + metrics = PerformanceMetrics(predictions, market_data) + predictions = metrics.get_predictions_df() + + if predictions is not None: + # Save predictions + predictions_file = self.get_output_path("predictions.csv") + predictions.to_csv(predictions_file, index=False) + + # Generate analysis + analyzer = PredictionAnalyzer(predictions_file) + + # Save plots with correct function references + plots = [ + ("accuracy_over_time.png", analyzer.plot_accuracy_over_time), + ("confusion_matrix.png", analyzer.plot_confusion_matrix), + ("returns_distribution.png", analyzer.plot_returns_distribution), + ("hourly_performance.png", analyzer.plot_hourly_performance), + ("vwap_changes_comparison.png", lambda: analyzer.plot_vwap_changes_comparison(window_size=20)) + + ] + + for plot_name, plot_func in plots: + plt.figure() + plot_func() + plt.savefig(self.get_output_path(plot_name)) + plt.close() + + self.logger.info(f"Analysis results saved to: {self.output_dir}") + return predictions + + except Exception as e: + self.logger.error(f"Analysis failed: {str(e)}") + return None def parse_args(): """Parse command line arguments.""" @@ -100,38 +201,44 @@ def parse_args(): parser.add_argument("--interval", default="5m", help="Data interval") parser.add_argument("--training-window", type=int, default=60, help="Training window size") parser.add_argument("--inference-window", type=int, default=12, help="Inference window size") - parser.add_argument("--inference-offset", type=int, default=0, help="Inference offset") + parser.add_argument("--inference-offset", type=int, default = 0, help="Inference offset") parser.add_argument("--output", help="Output file path for predictions CSV") return parser.parse_args() async def main(): - args = parse_args() - - fetcher = MarketDataFetcher(args.symbol) - market_data = fetcher.fetch_data( - start_date=args.start_date, - end_date=args.end_date, - interval=args.interval - ) - print(f"Fetched {len(market_data)} rows of data") - try: - predictions_df = await analyze_market_data( + args = parse_args() + analyzer = MarketAnalyzer( + symbol=args.symbol, + start_date=args.start_date, + end_date=args.end_date + ) + + # Fetch data + fetcher = MarketDataFetcher(args.symbol) + market_data = fetcher.fetch_data( + start_date=args.start_date, + end_date=args.end_date, + interval=args.interval + ) + + # Run analysis + predictions = await analyzer.analyze( market_data, - training_window_size=args.training_window, - inference_window_size=args.inference_window, + training_window=args.training_window, + inference_window=args.inference_window, inference_offset=args.inference_offset ) - print(predictions_df) - if args.output and not predictions_df.empty: - predictions_df.to_csv(args.output) - print(f"\nPredictions saved to: {args.output}") - + if predictions is not None: + print(f"Saved predictions and analysis results to: {analyzer.output_dir}") + except Exception as e: - print(f"Analysis failed: {str(e)}") + logging.error(f"Analysis failed: {str(e)}", exc_info=True) + raise if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) nest_asyncio.apply() asyncio.run(main()) \ No newline at end of file diff --git a/market_predictor/analysis.py b/market_predictor/analysis.py new file mode 100644 index 0000000..28f341b --- /dev/null +++ b/market_predictor/analysis.py @@ -0,0 +1,318 @@ +""" +Market Prediction Analysis Module +=============================== + +This module provides tools for analyzing market prediction performance metrics and visualizations. + +Features +-------- +- Prediction accuracy analysis +- VWAP and price comparison +- Performance metrics calculation +- Time-series visualizations +- Error analysis + +Example Usage +------------ +```python +analyzer = PredictionAnalyzer("predictions.csv") +analyzer.plot_accuracy_over_time() +analyzer.plot_hourly_performance() +analyzer.plot_returns_distribution() +``` +""" + +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import seaborn as sns +from sklearn.metrics import confusion_matrix, classification_report +from pathlib import Path +import argparse +from datetime import datetime + +class PredictionAnalyzer: + """ + This class provides methods for analyzing prediction accuracy, + comparing predicted vs actual values, and generating performance + visualizations for both VWAP and price predictions. + + Attributes + ---------- + df : pd.DataFrame + Predictions data with timestamp index + metrics : Dict[str, Union[float, Dict]] + Calculated performance metrics + + Methods + ------- + plot_accuracy_over_time() + Plots prediction accuracy trends + plot_hourly_performance() + Plots hourly performance metrics + plot_returns_distribution() + Plots return distribution analysis + plot_confusion_matrix() + Plots prediction confusion matrix + """ + + def __init__(self, predictions_file: Union[str, Path]) -> None: + """ + Initialize analyzer with predictions data. + + Parameters + ---------- + predictions_file : str or Path + Path to CSV file containing predictions data + """ + self.df = pd.read_csv(predictions_file) + self.df['timestamp_prediction'] = pd.to_datetime(self.df['timestamp_prediction']) + self._calculate_metrics() + + def _calculate_metrics(self) -> None: + """ + Calculate performance metrics from predictions data. + + Computes: + - Cumulative returns + - Rolling accuracy + - RMSE for VWAP and price predictions + """ + self.df['cumulative_return'] = self.df['actual_return'].cumsum() + self.df['rolling_accuracy'] = ( + self.df['prediction_correct'].rolling(20, min_periods=1).mean() + ) + + def plot_accuracy_over_time(self) -> None: + """ + Plot prediction accuracy trends over time. + + Generates: + - Direction accuracy plot + - VWAP change comparison plot + """ + fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(15, 10)) + + # Direction accuracy + ax1.plot(self.df['timestamp_prediction'], + self.df['prediction_correct'].rolling(20).mean(), + label='Direction Accuracy', color='blue') + ax1.set_title('Prediction Accuracy Over Time') + ax1.set_ylabel('Direction Accuracy') + ax1.grid(True, alpha=0.3) + ax1.legend() + + # Magnitude accuracy + ax2.plot(self.df['timestamp_prediction'], + self.df['actual_vwap_change'], + label='Actual VWAP Change', alpha=0.6) + ax2.plot(self.df['timestamp_prediction'], + self.df['expected_vwap_change'], + label='Predicted VWAP Change', alpha=0.6) + ax2.set_title('VWAP Change Prediction vs Actual') + ax2.set_ylabel('VWAP Change %') + ax2.grid(True, alpha=0.3) + ax2.legend() + + plt.tight_layout() + + def plot_confusion_matrix(self): + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6)) + + # Direction confusion matrix + cm_direction = confusion_matrix( + self.df['actual_movement'], + self.df['vwap_direction_next_5min'] + ) + sns.heatmap(cm_direction, annot=True, fmt='d', cmap='Blues', + xticklabels=['down', 'up'], + yticklabels=['down', 'up'], + ax=ax1) + ax1.set_title('Direction Prediction Matrix') + + # Magnitude error distribution + magnitude_error = self.df['actual_vwap_change'] - self.df['expected_vwap_change'] + sns.histplot(magnitude_error, bins=50, ax=ax2) + ax2.set_title('VWAP Change Prediction Error') + ax2.set_xlabel('Error (Actual - Predicted)') + + plt.tight_layout() + + def plot_returns_distribution(self): + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6)) + + # Returns by prediction accuracy + sns.histplot(data=self.df, x='actual_return', + hue='prediction_correct', bins=50, ax=ax1) + ax1.set_title('Return Distribution by Direction Accuracy') + + # VWAP vs Price changes + sns.scatterplot(data=self.df, + x='actual_vwap_change', + y='actual_price_change', + hue='prediction_correct', + alpha=0.6, + ax=ax2) + ax2.set_title('VWAP vs Price Changes') + ax2.set_xlabel('VWAP Change') + ax2.set_ylabel('Price Change') + + plt.tight_layout() + + def plot_hourly_performance(self): + """Plot performance metrics, VWAP and price prediction accuracy""" + # Calculate RMSE for both VWAP and price + self.df['vwap_rmse'] = np.sqrt( + (self.df['actual_next_vwap'] - self.df['predicted_vwap'])**2 + ).rolling(window=20).mean() + + self.df['price_rmse'] = np.sqrt( + (self.df['actual_next_price'] - self.df['predicted_price'])**2 + ).rolling(window=20).mean() + + # Group metrics by hour + hourly_metrics = self.df.groupby( + pd.Grouper(key='timestamp_prediction', freq='H') + ).agg({ + 'prediction_correct': 'mean', + 'actual_return': ['mean', 'sum'], + 'actual_vwap_change': 'mean', + 'predicted_vwap': 'mean', + 'actual_next_vwap': 'mean', + 'predicted_price': 'mean', + 'actual_next_price': 'mean', + 'vwap_rmse': 'mean', + 'price_rmse': 'mean' + }).reset_index() + + fig, (ax1, ax2, ax3, ax4) = plt.subplots(4, 1, figsize=(15, 20)) + + # Plot 1: Direction Accuracy + ax1.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['prediction_correct'], + marker='o', linestyle='-') + ax1.set_title('Direction Prediction Accuracy') + ax1.set_ylabel('Accuracy') + ax1.grid(True, alpha=0.3) + + # Plot 2: VWAP Comparison + ax2.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['predicted_vwap'], + label='Predicted VWAP', color='blue') + ax2.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['actual_next_vwap'], + label='Actual VWAP', color='red') + ax2.set_title('Predicted vs Actual VWAP') + ax2.set_ylabel('VWAP Value') + ax2.grid(True, alpha=0.3) + ax2.legend() + + # Plot 3: Price Comparison + ax3.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['predicted_price'], + label='Predicted Price', color='green') + ax3.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['actual_next_price'], + label='Actual Price', color='orange') + ax3.set_title('Predicted vs Actual Price') + ax3.set_ylabel('Price Value') + ax3.grid(True, alpha=0.3) + ax3.legend() + + # Plot 4: Rolling RMSE Comparison + ax4.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['vwap_rmse'], + label='VWAP RMSE', color='purple') + ax4.plot(hourly_metrics['timestamp_prediction'], + hourly_metrics['price_rmse'], + label='Price RMSE', color='brown') + ax4.set_title('Prediction RMSE (20-period rolling)') + ax4.set_ylabel('RMSE') + ax4.grid(True, alpha=0.3) + ax4.legend() + + # Format datetime x-axis + for ax in [ax1, ax2, ax3, ax4]: + ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M')) + ax.xaxis.set_major_locator(mdates.HourLocator(interval=4)) + plt.setp(ax.xaxis.get_majorticklabels(), rotation=45, ha='right') + + plt.tight_layout() + + def plot_vwap_changes_comparison(self, window_size: int = 20): + """Plot rolling average of predicted vs actual VWAP changes""" + plt.figure(figsize=(15, 6)) + + # Calculate rolling averages + actual_rolling = self.df['actual_vwap_change'].rolling(window=window_size).mean() + predicted_rolling = self.df['expected_vwap_change'].rolling(window=window_size).mean() + + # Plot both lines + plt.plot(self.df['timestamp_prediction'], actual_rolling, + label='Actual VWAP Change', color='blue', alpha=0.7) + plt.plot(self.df['timestamp_prediction'], predicted_rolling, + label='Predicted VWAP Change', color='red', alpha=0.7) + + plt.title(f'Predicted vs Actual VWAP Changes ({window_size}-period rolling average)') + plt.xlabel('Time') + plt.ylabel('VWAP Change %') + plt.grid(True, alpha=0.3) + plt.legend() + plt.xticks(rotation=45) + plt.tight_layout() + + def generate_report(self) -> str: + report = ( + f"\nPerformance Metrics:\n" + f"Total Predictions: {len(self.df)}\n" + f"Overall Accuracy: {self.df['prediction_correct'].mean():.2%}\n" + f"Mean Return: {self.df['actual_return'].mean():.4f}\n" + f"Cumulative Return: {self.df['actual_return'].sum():.4f}\n\n" + f"Classification Report:\n" + f"{classification_report(self.df['actual_movement'], self.df['vwap_direction_next_5min'])}" + ) + print(report) + return report + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('predictions_file', help='Path to predictions CSV') + parser.add_argument('--output-dir', default='analysis_output', + help='Directory for output plots') + args = parser.parse_args() + + # Create output directory + output_dir = Path(args.output_dir) + output_dir.mkdir(exist_ok=True) + + # Analyze predictions + analyzer = PredictionAnalyzer(args.predictions_file) + analyzer.generate_report() + + # Generate and save plots + analyzer.plot_accuracy_over_time() + plt.savefig(output_dir / 'accuracy_over_time.png') + plt.close() + + analyzer.plot_confusion_matrix() + plt.savefig(output_dir / 'confusion_matrix.png') + plt.close() + + analyzer.plot_returns_distribution() + plt.savefig(output_dir / 'returns_distribution.png') + plt.close() + + analyzer.plot_hourly_performance() + plt.savefig(output_dir / 'hourly_performance.png') + plt.close() + + # Add VWAP changes comparison plot + analyzer.plot_vwap_changes_comparison(window_size=20) + plt.savefig(output_dir / 'vwap_changes_comparison.png') + plt.close() + + plt.show() + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/market_predictor/config.py b/market_predictor/config.py index b77c0e6..d17b659 100644 --- a/market_predictor/config.py +++ b/market_predictor/config.py @@ -9,7 +9,7 @@ if not OPENAI_API_KEY: raise ValueError("OpenAI API key not found in environment variables") # Model Configuration -MODEL_NAME = 'gpt-4o-2024-08-06' #'ft:gpt-4o-mini-2024-07-18:yasha-sheynin::AwgWhL48' #"gpt-4o-2024-08-06" #"ft:gpt-4o-mini-2024-07-18:yasha-sheynin::Awacdfg6" +MODEL_NAME = 'ft:gpt-4o-mini-2024-07-18:yasha-sheynin::Ax4hibRK' #'gpt-4o-2024-08-06' #'ft:gpt-4o-mini-2024-07-18:yasha-sheynin::AwgWhL48' #"gpt-4o-2024-08-06" #"ft:gpt-4o-mini-2024-07-18:yasha-sheynin::Awacdfg6" # RAG Configuration VECTOR_STORE_TYPE = "faiss" diff --git a/market_predictor/data_processor.py b/market_predictor/data_processor.py index 2520c9c..68f92b9 100644 --- a/market_predictor/data_processor.py +++ b/market_predictor/data_processor.py @@ -6,11 +6,25 @@ import logging logging.basicConfig(level=logging.INFO) class MarketDataProcessor: - REQUIRED_COLUMNS = ['Close', 'VWAP', 'Volume'] + # Column name constants + COL_CLOSE = 'CLOSE' + COL_HIGH = 'HIGH' + COL_LOW = 'LOW' + COL_OPEN = 'OPEN' + COL_VOLUME = 'VOLUME' + COL_VWAP = 'VWAP' - def __init__(self, df: pd.DataFrame, training_window_size: int = 78, - inference_offset = 1, inference_window_size: int = 12): + # Technical indicator names + COL_MA5 = 'MA5' + COL_MA20 = 'MA20' + COL_VOLUME_MA5 = 'VOLUME_MA5' + + REQUIRED_COLUMNS = [COL_CLOSE, COL_VWAP, COL_VOLUME] + + def __init__(self, df: pd.DataFrame, training_window_size: int = 78, + inference_offset = 1, inference_window_size: int = 12): self.df = df.copy() + self.df.columns = [col.upper() for col in self.df.columns] self.training_window_size = training_window_size self.inference_offset = inference_offset self.inference_window_size = inference_window_size @@ -51,10 +65,10 @@ class MarketDataProcessor: raise ValueError(f"Missing required columns: {missing}") def _initialize_moving_averages(self): - """Initialize or update moving averages""" - self.df['MA5'] = self.df['Close'].rolling(window=5, min_periods=1).mean() - self.df['MA20'] = self.df['Close'].rolling(window=20, min_periods=1).mean() - self.df['Volume_MA5'] = self.df['Volume'].rolling(window=5, min_periods=1).mean() + """Initialize or update moving averages using standardized column names""" + self.df[self.COL_MA5] = self.df[self.COL_CLOSE].rolling(window=5, min_periods=1).mean() + self.df[self.COL_MA20] = self.df[self.COL_CLOSE].rolling(window=20, min_periods=1).mean() + self.df[self.COL_VOLUME_MA5] = self.df[self.COL_VOLUME].rolling(window=5, min_periods=1).mean() def generate_description(self, window: pd.DataFrame, is_training: bool = False) -> str: """Generate market state description using main DataFrame for calculations""" @@ -69,19 +83,22 @@ class MarketDataProcessor: prev = self.df.iloc[current_idx - 1] if current_idx > 0 else current # Calculate changes - price_change = ((current['Close'] - prev['Close']) / prev['Close'] * 100) if prev['Close'] != 0 else 0 - volume_change = ((current['Volume'] - prev['Volume']) / prev['Volume'] * 100) if prev['Volume'] != 0 else 0 - vwap_change = ((current['VWAP'] - prev['VWAP']) / prev['VWAP'] * 100) if prev['VWAP'] != 0 else 0 + price_change = ((current[self.COL_CLOSE] - prev[self.COL_CLOSE]) / + prev[self.COL_CLOSE] * 100) if prev[self.COL_CLOSE] != 0 else 0 + volume_change = ((current[self.COL_VOLUME] - prev[self.COL_VOLUME]) / + prev[self.COL_VOLUME] * 100) if prev[self.COL_VOLUME] != 0 else 0 + vwap_change = ((current[self.COL_VWAP] - prev[self.COL_VWAP]) / + prev[self.COL_VWAP] * 100) if prev[self.COL_VWAP] != 0 else 0 vwap_direction = "up" if vwap_change > 0 else "down" return f""" - Current Price: {current['Close']:.2f} - VWAP: {current['VWAP']:.2f} - Volume: {current['Volume']} - MA5: {current['MA5']:.2f} - MA20: {current['MA20']:.2f} - Volume MA5: {current['Volume_MA5']:.2f} + Current Price: {current[self.COL_CLOSE]:.2f} + VWAP: {current[self.COL_VWAP]:.2f} + Volume: {current[self.COL_VOLUME]} + MA5: {current[self.COL_MA5]:.2f} + MA20: {current[self.COL_MA20]:.2f} + Volume MA5: {current[self.COL_VOLUME_MA5]:.2f} Price Change: {price_change:.2f}% Volume Change: {volume_change:.2f}% Previous 5min VWAP Movement: {vwap_direction} ({vwap_change:.2f}%) @@ -132,7 +149,7 @@ class MarketDataProcessor: def _get_vwap_supervision(target: pd.Series, last: pd.Series) -> str: """Calculate and format VWAP movement supervision info""" - vwap_change = ((target['VWAP'] - last['VWAP']) / last['VWAP'] * 100) + vwap_change = ((target[self.COL_VWAP] - last[self.COL_VWAP]) / last[self.COL_VWAP] * 100) vwap_direction = "up" if vwap_change > 0 else "down" return f"\nNext Interval VWAP Movement: {vwap_direction} ({vwap_change:.2f}%)" diff --git a/market_predictor/fine_tune_dataset_generator.py b/market_predictor/fine_tune_dataset_generator.py index 3a9f018..895e10a 100644 --- a/market_predictor/fine_tune_dataset_generator.py +++ b/market_predictor/fine_tune_dataset_generator.py @@ -322,7 +322,7 @@ class FineTuneDatasetGenerator: # If run standalone async def main(): symbols = [ "ETH-USD", 'NVDA', 'BTC-USD', 'AAPL', 'TSLA', - 'MSFT', 'META', 'AMZN', 'GOOGL', 'LTC-USD', 'DOGE-USD'] + 'MSFT', 'META', 'AMZN', 'GOOGL', 'LTC-USD', 'SPOT', 'DOGE-USD', 'SOL-USD'] generator = FineTuneDatasetGenerator(symbols) # Clear existing file diff --git a/market_predictor/performance_metrics.py b/market_predictor/performance_metrics.py index 5abece0..90ae6a6 100644 --- a/market_predictor/performance_metrics.py +++ b/market_predictor/performance_metrics.py @@ -2,31 +2,104 @@ import numpy as np import pandas as pd from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix from typing import Dict +import logging from collections import Counter, defaultdict class PerformanceMetrics: def __init__(self, predictions_df: pd.DataFrame, market_data: pd.DataFrame): + """Initialize with standardized column names""" self.predictions_df = predictions_df self.market_data = market_data - - # Calculate actual movements first - self.predictions_df['actual_movement'] = self._calculate_actual_movements() - - # Map vwap_direction_next_5min to predicted_movement if it exists - if 'vwap_direction_next_5min' in self.predictions_df.columns: - self.predictions_df['predicted_movement'] = self.predictions_df['vwap_direction_next_5min'] - elif 'direction' in self.predictions_df.columns: - self.predictions_df['predicted_movement'] = self.predictions_df['direction'] - else: - raise ValueError("No prediction column found in DataFrame. Expected 'vwap_direction_next_5min' or 'direction'") - - # Now extract y_true and y_pred - y_true = self.predictions_df['actual_movement'] - y_pred = self.predictions_df['predicted_movement'] - - # Calculate metrics - self.metrics = self._calculate_metrics(y_true, y_pred) + self.market_data.columns = [col.upper() for col in market_data.columns] + self._validate_data() + self._calculate_all_metrics() + + def _validate_data(self): + """Validate required columns exist""" + required_columns = {'CLOSE', 'VOLUME', 'HIGH', 'LOW', 'OPEN', 'VWAP'} + missing_columns = required_columns - set(self.market_data.columns) + if missing_columns: + raise ValueError(f"Market data missing required columns: {missing_columns}") + + def _calculate_all_metrics(self): + """Calculate performance metrics""" + try: + # Add price columns + self.predictions_df['current_vwap'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction'], 'VWAP'], + axis=1 + ) + + self.predictions_df['current_price'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction'], 'CLOSE'], + axis=1 + ) + + self.predictions_df['predicted_vwap'] = self.predictions_df.apply( + lambda row: row['current_vwap'] * (1 + row['expected_vwap_change']), + axis=1 + ) + + self.predictions_df['predicted_price'] = self.predictions_df.apply( + lambda row: row['current_price'] * (1 + row['expected_vwap_change']), + axis=1 + ) + + self.predictions_df['actual_next_vwap'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction']:].iloc[1]['VWAP'] + if len(self.market_data.loc[row['timestamp_prediction']:]) > 1 else None, + axis=1 + ) + + self.predictions_df['actual_next_price'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction']:].iloc[1]['CLOSE'] + if len(self.market_data.loc[row['timestamp_prediction']:]) > 1 else None, + axis=1 + ) + + # Calculate actual VWAP changes + self.predictions_df['actual_vwap_change'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction']:].iloc[1:6]['VWAP'].pct_change().mean(), + axis=1 + ) + + # Calculate actual price changes + self.predictions_df['actual_price_change'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction']:].iloc[1:6]['CLOSE'].pct_change().mean(), + axis=1 + ) + + # Calculate actual volume + self.predictions_df['actual_volume'] = self.predictions_df.apply( + lambda row: self.market_data.loc[row['timestamp_prediction']:].iloc[1:6]['VOLUME'].mean(), + axis=1 + ) + + # Calculate actual returns + self.predictions_df['actual_return'] = self.predictions_df['actual_vwap_change'].apply( + lambda x: abs(x) if x > 0 else -abs(x) + ) + + # Calculate actual movements + self.predictions_df['actual_movement'] = self._calculate_actual_movements() + + # Calculate prediction accuracy + self.predictions_df['prediction_correct'] = ( + self.predictions_df['vwap_direction_next_5min'] == self.predictions_df['actual_movement'] + ) + + # Add time-based features + self.predictions_df['hour'] = pd.to_datetime(self.predictions_df['timestamp_prediction']).dt.hour + self.predictions_df['day_of_week'] = pd.to_datetime(self.predictions_df['timestamp_prediction']).dt.dayofweek + + except Exception as e: + logging.error(f"Error calculating metrics: {str(e)}") + raise + + def get_predictions_df(self) -> pd.DataFrame: + """Return the processed predictions DataFrame""" + return self.predictions_df.copy() def _calculate_actual_movements(self) -> pd.Series: """Calculate actual VWAP movements with detailed logging""" diff --git a/market_predictor/prediction_service.py b/market_predictor/prediction_service.py index 68e4192..0587cba 100644 --- a/market_predictor/prediction_service.py +++ b/market_predictor/prediction_service.py @@ -21,8 +21,10 @@ class PredictionService: inference_offset: int = 0, max_concurrent: int = 3, ): + self.market_data = market_data.copy() + self.market_data.columns = [col.upper() for col in self.market_data.columns] self.processor = MarketDataProcessor( - df=market_data, + df=self.market_data, training_window_size=training_window_size, inference_window_size=inference_window_size, inference_offset=inference_offset, @@ -32,7 +34,6 @@ class PredictionService: self.training_window_size = training_window_size self.inference_window_size = inference_window_size self.inference_offset = inference_offset - self.market_data = market_data async def main(self) -> List[Dict]: """Coordinate prediction process using sliding windows""" diff --git a/market_predictor/split_and_fine_tune.py b/market_predictor/split_and_fine_tune.py new file mode 100644 index 0000000..61de724 --- /dev/null +++ b/market_predictor/split_and_fine_tune.py @@ -0,0 +1,71 @@ +import json +import random +import asyncio +import logging +from pathlib import Path +from openai import OpenAI +from typing import Tuple, List, Dict + +from .config import OPENAI_API_KEY + +async def split_dataset(input_path: str, train_ratio: float = 0.8) -> Tuple[str, str]: + """Split dataset into train and validation files.""" + # Load examples + with open(input_path, 'r') as f: + examples = [json.loads(line) for line in f] + + # Shuffle and split + random.shuffle(examples) + split_idx = int(len(examples) * train_ratio) + train_examples = examples[:split_idx] + val_examples = examples[split_idx:] + + # Save splits + base_path = Path(input_path).parent + train_path = base_path / 'fine_tune_train.jsonl' + val_path = base_path / 'fine_tune_val.jsonl' + + for path, data in [(train_path, train_examples), (val_path, val_examples)]: + with open(path, 'w') as f: + for ex in data: + f.write(json.dumps(ex) + '\n') + + logging.info(f"Split dataset: {len(train_examples)} train, {len(val_examples)} validation") + return str(train_path), str(val_path) + +async def create_fine_tuning_job(train_path: str, val_path: str) -> str: + """Create fine-tuning job with validation set.""" + client = OpenAI(api_key=OPENAI_API_KEY) + + # Upload files + train_file = client.files.create( + file=open(train_path, "rb"), + purpose="fine-tune" + ) + val_file = client.files.create( + file=open(val_path, "rb"), + purpose="fine-tune" + ) + + logging.info(f"Uploaded files - Train: {train_file.id}, Val: {val_file.id}") + await asyncio.sleep(5) # Wait for processing + + # Create job + job = client.fine_tuning.jobs.create( + training_file=train_file.id, + validation_file=val_file.id, + model="gpt-4o-mini-2024-07-18", + hyperparameters={"n_epochs": 3} + ) + + logging.info(f"Created fine-tuning job: {job.id}") + return job.id + +async def main(): + input_path = "fine_tune_data.jsonl" + train_path, val_path = await split_dataset(input_path) + job_id = await create_fine_tuning_job(train_path, val_path) + print(f"Started fine-tuning job: {job_id}") + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/notebooks/rolling_window_analysis.ipynb b/notebooks/rolling_window_analysis.ipynb index 4da2a82..dd5e160 100644 --- a/notebooks/rolling_window_analysis.ipynb +++ b/notebooks/rolling_window_analysis.ipynb @@ -299,6 +299,224 @@ "print(client.fine_tuning.jobs.list(limit=10))\n" ] }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
vwap_direction_next_5minconfidence_scoreexpected_vwap_changevolatility_estimatesuggested_entrysuggested_stop_losssuggested_take_profitkey_signalsreasoningtimestamp_predictionactual_vwap_changeactual_price_changeactual_volumeactual_returnactual_movementprediction_correcthourday_of_week
0up0.850.010.02701.50700.5702.5['Consistent upward VWAP movement', 'Price abo...The current market window shows a consistent u...2025-01-31 10:50:00-05:000.0000480.000126149963.00.000048upTrue104
1up0.850.010.02699.50698.5700.5['Consistent upward VWAP movement', 'Price sta...The current market window shows a consistent u...2025-01-31 10:55:00-05:000.000044-0.000251135296.60.000044upTrue104
2up0.850.010.02700.00698.5701.5['Consistent upward VWAP movement', 'Price sta...The current market window shows a consistent u...2025-01-31 11:00:00-05:000.0000430.000080131817.60.000043upTrue114
3up0.850.010.02700.84699.5702.0['Consistent upward VWAP movement', 'Price sta...The current market window shows a consistent u...2025-01-31 11:05:00-05:000.000041-0.000457131642.20.000041upTrue114
4up0.850.010.02699.50698.5700.5['Consistent upward VWAP movement', 'Price sta...The current market window shows a consistent u...2025-01-31 11:10:00-05:000.000044-0.000564139622.60.000044upTrue114
\n", + "
" + ], + "text/plain": [ + " vwap_direction_next_5min confidence_score expected_vwap_change \\\n", + "0 up 0.85 0.01 \n", + "1 up 0.85 0.01 \n", + "2 up 0.85 0.01 \n", + "3 up 0.85 0.01 \n", + "4 up 0.85 0.01 \n", + "\n", + " volatility_estimate suggested_entry suggested_stop_loss \\\n", + "0 0.02 701.50 700.5 \n", + "1 0.02 699.50 698.5 \n", + "2 0.02 700.00 698.5 \n", + "3 0.02 700.84 699.5 \n", + "4 0.02 699.50 698.5 \n", + "\n", + " suggested_take_profit key_signals \\\n", + "0 702.5 ['Consistent upward VWAP movement', 'Price abo... \n", + "1 700.5 ['Consistent upward VWAP movement', 'Price sta... \n", + "2 701.5 ['Consistent upward VWAP movement', 'Price sta... \n", + "3 702.0 ['Consistent upward VWAP movement', 'Price sta... \n", + "4 700.5 ['Consistent upward VWAP movement', 'Price sta... \n", + "\n", + " reasoning \\\n", + "0 The current market window shows a consistent u... \n", + "1 The current market window shows a consistent u... \n", + "2 The current market window shows a consistent u... \n", + "3 The current market window shows a consistent u... \n", + "4 The current market window shows a consistent u... \n", + "\n", + " timestamp_prediction actual_vwap_change actual_price_change \\\n", + "0 2025-01-31 10:50:00-05:00 0.000048 0.000126 \n", + "1 2025-01-31 10:55:00-05:00 0.000044 -0.000251 \n", + "2 2025-01-31 11:00:00-05:00 0.000043 0.000080 \n", + "3 2025-01-31 11:05:00-05:00 0.000041 -0.000457 \n", + "4 2025-01-31 11:10:00-05:00 0.000044 -0.000564 \n", + "\n", + " actual_volume actual_return actual_movement prediction_correct hour \\\n", + "0 149963.0 0.000048 up True 10 \n", + "1 135296.6 0.000044 up True 10 \n", + "2 131817.6 0.000043 up True 11 \n", + "3 131642.2 0.000041 up True 11 \n", + "4 139622.6 0.000044 up True 11 \n", + "\n", + " day_of_week \n", + "0 4 \n", + "1 4 \n", + "2 4 \n", + "3 4 \n", + "4 4 " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv('/Users/ysheynin/deepseek_playground/market_predictor/output/META_2025-01-29_2025-02-02_20250204_044205/predictions.csv')\n", + "df.head()" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/output/20250204_030912/accuracy_over_time.png b/output/20250204_030912/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e181863b28a2e8d34574e6a7afee516c4faf23 GIT binary patch literal 43755 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 baqF+VRkN7ER6VSXlZ~bEF&ER@j+XXz=lL%3 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 Tvk%vqWb2}`=K0K@tZw`_Z?tAN literal 0 HcmV?d00001 diff --git a/output/20250204_030912/predictions.csv b/output/20250204_030912/predictions.csv new file mode 100644 index 0000000..825e7d7 --- /dev/null +++ b/output/20250204_030912/predictions.csv @@ -0,0 +1,7 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.02,0.03,105162.55,104900.0,105300.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:30:00+00:00,0.0006223595103330148,-0.0007945831827385064,227617177.6,0.0006223595103330148,up,True,15,4 +up,0.85,0.02,0.03,105477.88,105162.55,105700.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:35:00+00:00,0.0003614422540174633,-0.00023517400595893245,175525888.0,0.0003614422540174633,up,True,15,4 +up,0.85,0.15,0.2,105839.16,105477.88,106200.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:40:00+00:00,0.00048192300535661775,-0.0005716415553996083,147751936.0,0.00048192300535661775,down,False,15,4 +up,0.85,0.12,0.15,105649.51,105477.88,105839.16,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price consistently above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes in the last few intervals. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:45:00+00:00,0.0001648807271268371,-0.0009348253007103735,197002581.33333334,0.0001648807271268371,up,True,15,4 +up,0.85,0.12,0.15,105731.3,105500.0,105900.0,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price above MA5 and MA20', 'Positive price change trend']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume in the last few intervals. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:50:00+00:00,0.0,0.00044570787170150616,111935488.0,-0.0,up,True,15,4 +up,0.85,0.12,0.15,105747.66,105600.0,105900.0,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price consistently above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume increases in the last few intervals. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:55:00+00:00,,,0.0,,down,False,15,4 diff --git a/output/20250204_030912/returns_distribution.png b/output/20250204_030912/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb31be7c1a7ae385fcb3b7eea6cfd682364b5da GIT binary patch literal 20477 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031042/accuracy_over_time.png b/output/20250204_031042/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f1b94530a55002ebd0a2742a915f3d7831251d GIT binary patch literal 31717 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031042/confusion_matrix.png b/output/20250204_031042/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..893cd2063e575974d46f0b3342d73d187eb27bf2 GIT binary patch literal 15980 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 E20f0mI{*Lx literal 0 HcmV?d00001 diff --git a/output/20250204_031042/predictions.csv b/output/20250204_031042/predictions.csv new file mode 100644 index 0000000..5191c45 --- /dev/null +++ b/output/20250204_031042/predictions.csv @@ -0,0 +1,28 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.02,0.03,105162.55,104900.0,105300.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:30:00+00:00,0.0006223595103330148,-0.0007945831827385064,227617177.6,0.0006223595103330148,up,True,15,4 +up,0.85,0.02,0.03,105477.88,105162.55,105700.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating buying interest. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:35:00+00:00,0.0003614422540174633,-0.00023517400595893245,175525888.0,0.0003614422540174633,up,True,15,4 +up,0.85,0.15,0.25,105839.16,105477.88,106200.0,"['Recent price increase', 'High volume in the last interval', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movement has been upward. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:40:00+00:00,-0.0014883077588609683,-0.023308805598208915,166704742.4,-0.0014883077588609683,down,False,15,4 +up,0.85,0.12,0.15,105649.51,105477.88,105839.16,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price consistently above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with significant volume, indicating bullish momentum. The price is consistently above both MA5 and MA20, reinforcing the upward trend. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:45:00+00:00,-0.002523906460331682,-0.02349016782276636,188891955.2,-0.002523906460331682,up,True,15,4 +up,0.85,0.12,0.15,105731.3,105500.0,105900.0,"['Recent upward price movement', 'High volume in the last intervals', 'MA5 crossing above MA20', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 is crossing above the MA20, a bullish signal, and the recent VWAP movements have been upward. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:50:00+00:00,-0.0033000420628661042,-0.023140542575743855,137055436.8,-0.0033000420628661042,up,True,15,4 +up,0.85,0.12,0.15,105747.66,105600.0,105900.0,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price consistently above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume increases in the last few intervals. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:55:00+00:00,-0.003939657237668287,-0.023191589248990535,113619763.2,-0.003939657237668287,down,False,15,4 +up,0.85,0.05,0.02,105502.82,105400.0,105600.0,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price consistently above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with significant volume, indicating bullish momentum. The price is consistently above both MA5 and MA20, reinforcing the upward trend. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 16:00:00+00:00,-0.0025478517400487066,-0.00048331237943743943,129640038.4,-0.0025478517400487066,down,False,16,4 +up,0.85,0.05,0.02,105549.84,105500.0,105600.0,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a recent upward movement in VWAP with significant volume, indicating strong buying interest. The price is above both MA5 and MA20, suggesting a bullish trend. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-02-03 09:30:00+00:00,-0.0019624994097485193,-0.0010803548593049106,87098982.4,-0.0019624994097485193,down,False,9,0 +down,0.85,-0.1,0.15,95889.89,96050.0,95750.0,"['Recent VWAP downtrend', 'High volume with price drop', 'MA5 below MA20', 'Price significantly below VWAP']","The current market window shows a significant price drop with high volume, indicating strong selling pressure. The VWAP has been in a downtrend, and the MA5 is below the MA20, suggesting bearish momentum. Historical similar contexts also show a continuation of the VWAP downtrend. Given these factors, a further decline in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 09:35:00+00:00,-0.0012690830789904017,-0.0007716002445726788,64921600.0,-0.0012690830789904017,down,True,9,0 +down,0.85,-0.2,0.15,95889.89,96050.0,95750.0,"['Consistent downward VWAP movement', 'High volume spikes followed by drops', 'Price consistently below MA5 and MA20', 'Recent significant price drop']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by drops suggest volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score.",2025-02-03 09:40:00+00:00,-0.0007034570128953144,-0.0012592659432294484,45894860.8,-0.0007034570128953144,down,True,9,0 +down,0.85,-0.25,0.5,95747.3,95900.0,95500.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Recent price drop of over 9%']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. The price has dropped significantly by over 9% in the last interval, accompanied by high volume, suggesting strong selling pressure. The MA5 is below the MA20, reinforcing the bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-02-03 09:45:00+00:00,-0.000574828002260358,-0.001029831006786941,36243046.4,-0.000574828002260358,down,True,9,0 +down,0.85,-0.25,0.5,95770.42,95900.0,95600.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with high volume, indicating strong selling pressure. The MA5 is below the MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 09:50:00+00:00,-0.00040358352154387656,-0.0013037343668237389,20222771.2,-0.00040358352154387656,down,True,9,0 +down,0.85,-0.2,0.15,95704.61,95850.0,95650.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. The price is consistently below the VWAP, and the MA5 is below the MA20, suggesting a bearish trend. Additionally, the volume is relatively high, yet the price continues to decrease, indicating strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued decrease in VWAP with a high confidence score. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 09:55:00+00:00,-0.001183069623110794,-0.0006894437197721981,43121049.6,-0.001183069623110794,down,True,9,0 +down,0.85,-0.2,0.15,95421.43,95600.0,95200.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with no significant recovery, despite high trading volumes. The price is consistently below the VWAP and moving averages, indicating a bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:00:00+00:00,-0.0018789393552591516,-0.0003151991194174919,73936076.8,-0.0018789393552591516,down,True,10,0 +down,0.85,-0.1,0.15,95451.79,95600.0,95300.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with the last several intervals all indicating a decrease. The price is consistently below the VWAP, and the MA5 is below the MA20, reinforcing a bearish sentiment. Additionally, the volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 10:05:00+00:00,-0.0017027657433157373,4.63260824656031e-05,77953433.6,-0.0017027657433157373,down,True,10,0 +down,0.85,-0.02,0.03,95288.65,95451.79,95100.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 10:10:00+00:00,-0.0023487905895289707,0.001288012249143794,95734988.8,-0.0023487905895289707,down,True,10,0 +down,0.85,-0.1,0.15,95310.62,95500.0,95100.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with no significant recovery, supported by high volume and decreasing prices. The MA5 is below the MA20, indicating a bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:15:00+00:00,-0.001971807712725704,0.00056292364654012,115231948.8,-0.001971807712725704,down,True,10,0 +down,0.85,-0.1,0.15,94900.0,95100.0,94700.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with no significant recovery, supported by high volume and decreasing prices. The MA5 is below the MA20, indicating a bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-02-03 10:20:00+00:00,-0.0014750216378725534,0.0005410348287316902,100075110.4,-0.0014750216378725534,down,True,10,0 +down,0.85,-0.2,0.15,95187.62,95300.0,95000.0,"['Consistent downward VWAP movement', 'High volume spikes followed by low volume', 'Price consistently below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP with no significant upward corrections, similar to historical windows where VWAP continued to decline. The price is consistently below both MA5 and MA20, indicating bearish momentum. High volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:25:00+00:00,-0.0014159445399825887,0.0005858379518163814,74212966.4,-0.0014159445399825887,down,True,10,0 +down,0.85,-0.25,0.02,95167.43,95300.0,95000.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP with no significant recovery, supported by high volume and decreasing prices. The MA5 is below the MA20, indicating a bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:30:00+00:00,-0.0012200658872231207,0.0008953503530998996,93108633.6,-0.0012200658872231207,down,True,10,0 +down,0.85,-0.2,0.15,95326.99,95500.0,95100.0,"['Consistent downward VWAP movement', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Price consistently below VWAP']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume during price declines, suggesting strong selling pressure. The MA5 is below the MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 10:35:00+00:00,-0.0008366105869009322,0.0008536890851608137,64762675.2,-0.0008366105869009322,down,True,10,0 +down,0.85,-0.25,0.02,95413.95,95500.0,95300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-02-03 10:40:00+00:00,-0.0005639323130552376,0.0009285983037241041,45288652.8,-0.0005639323130552376,down,True,10,0 +down,0.85,-0.2,0.15,95402.02,95500.0,95300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:45:00+00:00,-0.000652030736258441,0.00018354226197977996,42116710.4,-0.000652030736258441,down,True,10,0 +down,0.85,-0.15,0.2,95373.43,95500.0,95250.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:50:00+00:00,-0.00020585948493839767,-0.0003499241322496849,37386649.6,-0.00020585948493839767,down,True,10,0 +down,0.85,-0.15,0.02,95550.43,95700.0,95300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 10:55:00+00:00,-0.00018653265228404936,-0.0005172907432183516,11909529.6,-0.00018653265228404936,down,True,10,0 +down,0.85,-0.15,0.2,95755.89,95900.0,95500.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 11:00:00+00:00,-0.00018613816012744144,-0.0008798446564309004,10787225.6,-0.00018613816012744144,down,True,11,0 +down,0.85,-0.02,0.03,95727.96,95850.0,95600.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-02-03 11:05:00+00:00,-3.97494213372207e-06,-0.0008143953928873848,10764288.0,-3.97494213372207e-06,down,True,11,0 diff --git a/output/20250204_031042/returns_distribution.png b/output/20250204_031042/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..dcdcbfd664e92bac45f8a762b66b22db6dfb7a9b GIT binary patch literal 20767 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

N(_+hGo(ibj#Q!X1Aa#<}2>ilpWr_G1f--hhG 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/accuracy_over_time.png b/output/20250204_031520/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..48301114f450e1e606b39038c35e299b86636371 GIT binary patch literal 40049 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 qE=H+x*8-V9OZ@*A-&F0)SFB{HHh;h!+jh8 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/analysis/accuracy_over_time.png b/output/20250204_031520/analysis/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..48301114f450e1e606b39038c35e299b86636371 GIT binary patch literal 40049 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 qE=H+x*8-V9OZ@*A-&F0)SFB{HHh;h!+jh8 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/analysis/confusion_matrix.png b/output/20250204_031520/analysis/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..2a020070cbb870b213e1c8861c7d818cc468c475 GIT binary patch literal 14232 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/analysis/hourly_performance.png b/output/20250204_031520/analysis/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..b46ef466e429c32902179c83485e367b1e104ece GIT binary patch literal 15162 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/analysis/vwap_changes_comparison.png b/output/20250204_031520/analysis/vwap_changes_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..15435d27ba433147632d40edcbdde66322112e97 GIT binary patch literal 44470 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 R>zn-`Nl#Zlmvv4FO#pSyRl)!O literal 0 HcmV?d00001 diff --git a/output/20250204_031520/confusion_matrix.png b/output/20250204_031520/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..2a020070cbb870b213e1c8861c7d818cc468c475 GIT binary patch literal 14232 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 literal 0 HcmV?d00001 diff --git a/output/20250204_031520/hourly_performance.png b/output/20250204_031520/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..b46ef466e429c32902179c83485e367b1e104ece GIT binary patch literal 15162 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 literal 0 HcmV?d00001 diff --git a/output/20250204_033516/accuracy_over_time.png b/output/20250204_033516/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..71bf3251475c0bac5aa7da3707ff577dea324265 GIT binary patch literal 31088 zcmbrm2UJwq(m%?W9Tda>f;NbViV~D4U;~N-MS^5RKt!_SBs4)B1(765MuL(ggQO;- zBt>#mXu1U?LnEPSGOtcI-h03A-Tzx}y*F#knx4Zs`|PS+yXsfJs(t)al;jTn&GI)5 z4b8!u@;6jzXm;ahXm)7t+XGh~=bt$P{}FYR(RNg`F>!P;v^SmrQ)Z5iwhm%^d{+Ouf!D^~l#lfl-V6rWZ!53kKtn@si2VE42gy`( z7=PgAjce+U-_8u|jl5^PBJ$HkmnE%$hW+SnnO8yTw5MhM*}blQboXXL!g)rObjM@r zN!lupzB6Ft4$)qCnxGz{zw;T*UmZ6;8dpxa=I2|lo)s^1uph0=vCRMR+GzkXLYvd8iPpL!LoyZTVgZprQAwLrK>>?unrBT_r!-ewW!(ZOw zlpkGBs!^057E(XyC_jWw+3rPtJYo5NIZQQ8|HC(m9a|fOEt0!?vrunRN=nLlrRLCD ztm|l$(3e#ra@s4s=VBro4++y0FDdD@vFF62S3dM?an3)CBOFQHTJ-Zg-Vc7*f8*)g zT$_zolH6Eyv-z8*?bO|=3Q+DpgVXt~N-@@@=FuWH`lU;KmYrIa^I<3N%k>VwVBpx} zqJ!^A)?a=H%1^3}5B)P_hqkZsWawzW#-ZUo2yfu4U(I4g617bj+1Grql8&Rsf$a+RcM!)IHw*R zfA`?=kDC+9UeOZsA;C$_B801Kk6z|%d^6a5t-m=Rk$PJ6*DLAynd4%PW*0KtB+stI zlPhLDR`PyV@1##+s{H+≫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 literal 0 HcmV?d00001 diff --git a/output/20250204_033516/confusion_matrix.png b/output/20250204_033516/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..961aa9a004bb8841a8885c116b4c886aa0a5df5b GIT binary patch literal 14079 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 MIn`@9SMEIcKR#)3o&W#< literal 0 HcmV?d00001 diff --git a/output/20250204_033516/hourly_performance.png b/output/20250204_033516/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..99006d7739e632bb91ff8e34cce6456db98e896d GIT binary patch literal 15159 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 I^tC(x3qEJfqW}N^ literal 0 HcmV?d00001 diff --git a/output/20250204_034250/accuracy_over_time.png b/output/20250204_034250/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..4b88602f8fd479e88163fa572dc2d565403ce2e5 GIT binary patch literal 32476 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 MIn`@9SMEIcKR#)3o&W#< literal 0 HcmV?d00001 diff --git a/output/20250204_034250/hourly_performance.png b/output/20250204_034250/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..99006d7739e632bb91ff8e34cce6456db98e896d GIT binary patch literal 15159 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 I^tC(x3qEJfqW}N^ literal 0 HcmV?d00001 diff --git a/output/20250204_035519/accuracy_over_time.png b/output/20250204_035519/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..72407be99f02cf439408ea221a1c35513b680e1f GIT binary patch literal 36763 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 literal 0 HcmV?d00001 diff --git a/output/20250204_035519/confusion_matrix.png b/output/20250204_035519/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..9776188c6d85a55acc24c4a0c5ecb5cb340395f4 GIT binary patch literal 16707 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 literal 0 HcmV?d00001 diff --git a/output/20250204_035519/hourly_performance.png b/output/20250204_035519/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..357183972ca33ff35dfa0a0ed9392033e823e7c9 GIT binary patch literal 14927 zcmeHuXH=Bgwrv5X#zv$i*dSnQn~Ed~ND$Dr5lIq@oDs<&2#8<-Y9o?ul^|K52vtPM zu}~?nK|zWrASj6BB$=Y%tzCW3>2vQJ@BX^?ym#L?jNy=?zOcW&*IsL`Ip-Imbyb;- zm6sKR!LX@Z`Bevl*-?nWFdOdK1%L7QD##1}$#^Omdg{7e_q=80VT;kQ^1R{f=IQKU zec0R9se75Q3>J0_MVO5C}*SVCnr&9amLp4!?ed?Q-Qx92LSGRpz=M)#??=oqNon=2ew>ssO zC^MGq*LJflY06e%5nq?3ouh}{34_60Bf6WhqhB!kmjlsXE_ClOL?5qd{MUZ$j2AVl zYWQ7Qz^GEe>eX-do!Qz8rKZ#o`m~**Q2&UwA9X6moP2xnYuBN}N4j*3FI#-UyxDSV%Xq^5~Y@^{ZgkQDg*Ganl^%+G*VY=}3r0>a2%YxdKP?z$L zWsUvj0rchJQrf6kfYHb4XvN_w?-^b}|23=gE4?=E?<9LT@4jDb zQxwcIDbMdJx-%+d5yGypb~yf=+g8qOY@=Tn&YC)9T-NU@M0~fk zIi}cjZ|7d?nbMy8;sp$*b2kfb> z(3)8oWB;jcqpN`1Lib^Gh5*hfuT;NgW0K@v&$OGf>(UTya5c0)M%0Y=sB&buOWB9a zJ)wQ2PCSYm?NP(zZTg%C?h22&kCk)PM5Yq1XV7nse|xP-F-C4B)YpI+tlip} zQcjR^v8K(GM+xOuqoub>CTS++u9Taz9a)-1=1g7=16YME%*BV=Mh`WXI2M zL(i{$y6^t};%>_E1ZSNcJTv{}Q9KrR#AhqVlC9+y{M=ZINw9wlJs4k#JOxgxhk8p$L_&Ce&Zb+rwY~ZuNouyX(3IufuLi!gz*n>s=Wcx;>T@7C0HKxM}5F+NG~lcoSBg2Pf^II_fu9 zYY;9cznUJUAnQHg-gKn5k~Ui%##&J3(%+c1oU*-{wdY$M?c*Fb&gWF1I@KxuUM=SU zp@3a+^Tq;iYl@KPxLR< z97iv6UK}a#UnU*-nf}hrUw2^ZzToEJNV(Yx>prJ0bA3&P^=q4pDcj*U+vHadME(A% zGCrOn#@Bc}M|r@tdPcuSYGO>G*1)xH{j2nsN0&l-go6@OD50=esk@G0QZH6OG^kCa zZ$A$fz`je8E0?fo45!A4+o+;I$ib2H3FiiV(tF+N1DPoPb}4x8Qkvq%csgap#I=&p zw?dmEllxX=Zhn0V$-rE8zMe%*Emkydz-|81ON#%*f>5}iVqI@c-EqNyP4^t9o_s=U zl3eT-?0tQ?t6fd9=+S9iKf4IZdfJcrlKttS3uwni_g`;KG&1&^DOIyrZ#IaLQ^ap9 z<#^|!`0vb6c|w(&t62;gTZ2Fm6Bx1B-Y_Uq2-w=xX^9b0i?#5-T}t0rowINpsBoY7 z<3x(-tT;AO{@R;I!$q@@H@IeX#lQBL`{nh`v?TXr+?pGtlxe457FqRybh72q@4u8T z7;RkcYPK=|nq9HW>E_z!;8Qa;LS4FT0*$ zq2)z)g(}YpopsZeWnT=Y_n5fVI+o+` zxwvSe^VVv>_PLGaDV_wEGNaKIy^Ed=9Lk&;)4I{xxSS)z$s!#tJ>SHDZQ4+ZPmP{! z3CuXjP zD9hE)GsgL+#J6VkNXpOYxi3-G#PGzP;~MVjT-Ui2*;RbECJqj5beHQpB<6&Yh)czK z?KO%jiovjwJz>|^w_}aAhMba!U#Lz=nNt3b^*%>qn`6xUSF49a%H3pLiE(ONAzak9 zI~ztSIA5`v`CpzcE@Ln;cC0^PBu?i9bjFyt8cE1%>c;4_rP?NBXZ7ol3B;}Cf&fbO zTpb^uTa9}}l$>2_;;@s_`(g^WiC(pQ&~*pLL87`{uB^!P;+0yG&Yma9BQMGZeW#A7 z$BWxsZtozy;;EYta-`wHD>HL!afFG$Q{z`U*eq_3MmNvEb^SOl6LMT8YO=%$@28(6 z+sN{ec-L}?oI2f}lqQLHXEdtSba%(HEm57!#go50X-r~n<=mh79=pt|HYUAOA<-qKA!f>T>Wiw??2DKg3*5rl+G)Lx z(3Iz){faGZ(`Zjy-bO{xQs#g6jl+_>1u9B}w$KdL z(oU8sSQU{NTf(CE*7}&TOkVa6q|C2VE&9edwm}`;rOu<%_x6gOe3jOjs<wX=egO2~OS`iPmR7xW~aEG8rwL0;}Q3Bw3QoC;E!knyKhu4Uk{#Me4|a9u?8 zTe*+&!(-z^hTNO@mG?YXtcqz6sR;GK3ZhCqf{t;~#qxYB^0a@Ud)6LR5EXljvAM$dSkQ-RrNk--iHT$|gZRSYppp~dNmGnu|Z z@t`mF@N}HeEhv=`S?*B3nTMqdADalpL&)Ac#i?PCsczu1c^+pj^dvt+#(|mryGmU{ug!%fo{Or)hpHWP(Ym$a7l{d+ z4+#6m9$ng(v#{d1kLs=)tv^YSxU)8&R(VG@D~H2plCacm;>I;5E*Yb#K@HgGNNJoY z9}+;=Yh*k z?_R6mv`LYqa?gFbZ^~p7@hcyc1PeG*2{)g%F1|ZAWEy^Urzcm3OUnYJcOk9U(cduz z`i?j9xv7Wz$|z0~{w%w`KUwO~aXqNq0xBLMS>7+kxYQBHD1ZGfb#~jTR1&U1xAOi`X`A^jQ z>s=brhllcmY8qSfLq2kaYQZAfF zgko${H~(rc;S#%iiFD(}RDnezTx>11k!E^lfkMGQU>B@wZZi5%=>yG3XjAo<$7)0u z%`uq>huY|wzenx`+Na0QuQF!M%l6V4T6zvn%3?MmXU z!P}%6>6~wKP#c9ZABy_zRKcWfy=U2r34EdUu1j}2t24{dOC=z<_VWY2(44qeLYVBK zrFv#es8RK98Xb~tpi0mYHY_|0kY;}bU%-YhmP!9t4s)-`&Yb*U zbc9yHyEyTqQXf4#H1Ue?o%U^<`wu-vc1cwN`{3&fwPyfprTJtZxxZer!*D_;d^@1e zlC|K^rkK=Z=khTlL=Fzb7#;ZcgZig^Y!R*Z{qno=@TdFik^A^%e@(v}F`QpLyU{>X zk30PnLhR68DLDfucJI(Q*VSx@9@{>UsryyX-gJmQcj##Is9UHfJ>>K0ZV~K+CO~5& zow}M4Hc|3Y0`SK!1%334`sB>tpV3!`$cFk|u%Xf*lHDf=vD{M-pk9prd3`iid8iI= zFmi=)mq%QNDcubr2ht((yUGZkur3zAD}`}WHrE$PBIt@=PF1t!YC;!c)Shov?buKC zWhE#;CuHA6?DAOsQQZ31MA-7}k33~)gH-~|DX*u<(uMiK^<$st<<}RtOp0%B=Y6Qz z#wf_A;GLvW@XHm{mnJ%d zvbLA!hR7bz>3w`)W55a@fz5@4`y(d&J3 zoN8yFKOUz2bm;--lw0kxzHMBz=S-jEZ0+h`+9VMz2ux|?a*u_DX~=$bvZRH#d?DH( zC!uEYfeO-1^Wqri`7h+aQcvkIeMvQ__UIhy}I_UB(${%@ky{;3oDf~_#W zYLYlkC8(7+e>el|0~b&%#uHnJa}vW(sI?Puq;be4iQat<3!j4pyZd|?Y2gA>cW;r6 z&8Pai;-2I0~XZ>-Gl-TeAC$9)^piDat+ZQ6PpQ6R1rpC1g1?_w7)owC^t zVV=sg!!Xv&+vw1(0eAOKZDpl$*N@gv;M=RbrVh&cdPdL`7a9%}K>}#vP(Gxs=K>hX z-yIs;0P8MB!B~fsX-`#dCIA#4G{?gSw{-vrCf{$07@Z3 zt+THJjoVN@{_^#&?-F>_VuVAyXZmpc$=w#d69nG5C)ffi9nn9qMHd#D1e>A)Hb=Ow z{$vWsphz!HF~I*>3WHx=E`$6OciQTg?*$dk=htmarrCA#-x}aRZS(hhQn`(EAz-H^*8d zAOkk!8WpDjXm;PGuNp{srzqfkOG8OO@0>$5{0<&KrA>N-6!sMfXr?i*wLjBbIg`Ez zU`HgIW)DCZ@#zO)J8+ms9FjSMvZNS!)5E!D zp|NF#?6WZ33t1|x-xa#yamcEhz&Az$bx?4%5eYdLyEJ4vx)M&qV?;RvPz9FTl25?|v7XwfWCQ*Zz3SyJ`VB?`?`AxesNW3&{YVAY~ft z&^+~!h|Oz@mn1dP)Dxug;$-7yV>ir!>A%eYJV89>h9g@?FNZ&bY*g+s(V5fXcv}>W zr1Ldqs@Sl~)1iHP5>QYCN?s_3j3wT@D!yEJ{QfSsP?&;pk7qz#x}7r*hhG8s5-f`iw>!gwnByfEK=&XZuhH3Q08ts1;8rJN z4jtGUQZn}Pi00N{tspmsIRtW1XC|<}WhHv3a+nf?xHFH>=HxKi2B)&=%>Bo6g1ZJP zZ`yz`K#`~ykoRo>kZtjy7v_C}68)V}#_?(P^Ya%_87-o(^eaPy8Fm^VY%B4#9V$#0 zYS{`OAJ9BsWaxMX#I(^e!bDI2t$)bT>KYnkuDkA@YR`!ucua3x)c%oChhWrM$-a)z z9Pk%?xSl|%qs{UG8y*7SJbL6gqey>h=C;&Gl9hyDC5qfC~7p8-=9$4Y0BM6#e zB(!X6Sw90qe~=7Xlr@MHsGwJXax~InvE|YJ8-8iLT^k$Sd|MhF&Kvkb%6%J{ieac- z;m}x%3*4E1*^7jgIGe~2VBe2InLorXzoa$bJC!$j{%3U7vZ)bsu7t+vAbp@MOe9v%mlB z^|ywuG+1e)0VD-uym&2Zp%*U#jZU;255mStP!{0?S++vp1vrZBV2jaU{34le)&k`leAqvYi^=vh&d zv^L`wU=n!=-TVE8=wtPhu<6g!ri${4{$0dvx)?%@XBY-9m&9a0O`~ z9Kc$J&P>o?qaPcU{_`*`qx@fdnoni@+LLc))0!xQU>Hb=TO3j6zg?LI;y@fi@~>Is zGCXkNYIv}qzcd0h5q#%FW8_zQVc#F*KqA6<`clVVSH>1nIbT9cU%jRfWC-oOaNQj2 zlbX$MEu+#q7=zR^!WNbR^zr%n%r4a7w_4xj&@iz&X;5ecfG~1#F8gr(uS1!05wrlw z)$mTh%bh$87kBe>`ps6_IRnBJ_nz+kYm`j-(8UUohwd!CV>ESuAmzF(0_e>`9E`M< zv{VnuP*fU3(Zc3pn?Zlw%UyhX3eb?UX&91G@%4ouu{+Q0zaSC;V`LsQ50ESbsg)hO z&}tm67BDn0zinIdty!r3`K91-cq{-inSC?5nd+yStk7BZfz3ZyE>HCo9AZZig(01& z=LMi6Bfy9|eNA=-8hTU3OoCL^4*fXS;4EtpIJjC?FjbjC8JOpVRB=Ym18W%yN|CRo~D}2nte!kG~ap&qJ7$L&Wwn`sGkO5kxQ$1E_ zwDy+GR2I@NkYxgySki#lWKc#O-)*mylcN{^EF-5=s+kc9gcvFcERU9+IetuT2$dr) zT~^5(jJEHpP@&Eo3H6l=u$GN)em`mh1!rLjgtVLN$f$#9*15YJOWr(oRbl-LqXwHe z7g5G;pG4oC4A|KXbQbqsZsCW3ATFcs1Z4Seu$bVJgHbXG{I=5&kdm6|t&d&{z_U}L zKpj1J_PTm|J$`~pSb)}s`!gefcdq01fIHv-=vAKDzb_BmY@@&?69D&tm^F&YOZ#Lp z{vp6{ILAr<1qx3SL^TJhVU>ac=zhC0r6vDs!_xHw%-Y%b(Qd)BFEV z0$<}Yrf!^p8JAg=XGn~Q37Si5pr=WmWO18DL_nrlko`&ca5V1{?=en)1F?|3kmaH3 z)|>#Iwh{qSdhU{c0eQ@;#DB~5kXNU6JD7100xog=D0?|d zp!O9F93DT{t=7&_*2hu=k-VE1$-vCJI4woYYoz~o&?;0jw3EklKO*xF-Fz!vDgllz z494+N$D6mXV?!N@|E`~3gjOEK;eOq$t7ZfnVdIi)Lo9&W?VFLv_!YQI_wKTT2=L1O z^Y;ZC0I>47^p}|tXh=Ki24LJwfD=jhM0AhNCjcmak#wN`e7!B%%*D^xZK#g!K_i3o zue7*=L;#O|U{JyeKt7KER3lRdVWeN(mU{7i=4&3Z2OM-%?WZR82E1T0@X-Z+%D8(KQ0K}(4jO0CS zc>&erBH;g<&<^_iDu{yn?#ULN#z2)hfg&bl;m9=AM@L%v@YIWbbiU!@wI40{LH`lI zH9K$+q=C2bl0v>q;~c9)0Rgr)s}mhrJO;5RC)32`66FDJEY-=Tw0yCR_X`4xO(>9C2#!BoM! zngV3rA<(+SL61b@vgc&yDdg$$0q)8PKaHYWA`mkLGHe)X5hB49Hr}0Q0s<`-d^h~* z%2D}1c)C^|iv(j0H08>usc{D^)dWew23$R*3f|}Gij9+EXKFuUmFW zM7%9=>6eO^aQFc_o%}NSymGf8f5IvqSuJ-MqD~IU^g;s#XkZNJy!C?gw?tNK%(4>t zV7eM6pLOmQs*r_NuZOp2b5Tj&eK|3g5$SW`KB-<6%|23&?`6YiWG+V@`VqQo;e6G& zrMV$RS?_7Xr5CEARpV(WGa)pC$d+bvBV>wX^o50Ao6pqCf-ls1cA!$}Wb~_SXtFt@ zaa<7}vour8O`jFMlI$_nHLab0e~CSBMH;Pi3RqD~75x8g?xPbyo}}nJ`R>4RJri(~ z_Bc7{p|5_uGzV@8_`&^uKvn(g5nv(zXOWHnM|N==x##pvTyWE5qzvF!KN>jMph!)< zyVDTJ`iQ$MyBooKYt#JnRC}%8Dzd!3eRejhk)8sPE)75*b%P;UDgLrxp)(L}Q{29j z7sU@32;8;b5*kBWcVLew+RFS~;GziwZa`_OJI@CA9?97N3YS4cPu)uC8kn4U5qSjK zhA@(%E1=)~x2*Wo0I=6ECCujAmp_n0rP&3@fJg=WMgv2L(dzK`E^p; z9C>|vyE0mpu)$%8d>JvqMnBB-m69M^k-@GfIcNt-QF1n=tmj(8Lk@Rvh>4Zg0)R_# znl7x$m3xt|jA4si73}1nQ_SWY^wYY<`-}>a%_Es-xh>MTq`rGnZhu1sS9OeX^JekCXkaZeCM+zhTaGXwCjRJ!%cWv%t-K#Rkd{<}rW6gaXkWD}ws({aAPS!9mvUwwR zjLcs9ec?X2>B2a#cqYTXVGycY#r76Wh_4h30JRlotb!mGMO@(_qyenjfN{16 z9EqF;hX;T{o|-q(GNF1xOa_ad6X7(Z*KDI_y7+N^@P5?@y{AwTi|?M|VcbgOP5y31 zE2ej>{y)PG-6i?EF)7f@)p8+95P1|Rt0>NZ@eoGVP{ca`0?5b@Mg+rC?Q|V@6=IC# z)#MWRACy3lvW7Yy1s+cdMCHiCqmd6OVLVOH^6p1b50aT;x4GX;l>oNWWP==Fs-15C(CX{ax%j6z{irim>%nqQj z9zZnuLU00T0197QlT3PE|K>Xpac=M-G{(66tRW^cYO|94W`7*o-dYV)%%{CcjaRd!0R+64#; zrH9KecMEcI{eEEv+RZ8g(}h~G!eN`yrw|ED9LpuV|5smRc+_=tqztj zN!5+uOOt*$4od=AIslw^(c~*`5PKAh#=x!-P;8?>DG=c?KjzR65F|9f9y5vvqx_{6 z=*TL&8=2WYAW{hAXm<|tV+pQR4yK;%N+<(%Ex%7S-vGW-TW{?IqNae5Y6AZd?luj? z&mS*6_@2X3azC?h_sIz{Q^l=?sFBBNqDb!HBntzOtR4@>EwHb_E@LdIF*rho0fR>U z`QA#0i-TZl4eGNZ05AH^36re-Hdu27xaJCAF~|!PG5?}Imz;A`kh!PquW6AbUHT-r zg$=dtY{R~!0FttpSt&7>e4pljz_RFaB@oqNthuP?j643j@BYo%TV&EoRM^wEETpEQ zCIJ)m1L}lJw%84!%Z67S}vxO3)mg-E}EwVf8ju!f6aC1#W zWeMV!v=`Jom6WbL&g9t`VapZBG5n0)iSd0mQ}}uxWhWv;Bt@|C-s}8XcDY^^_XvuP@2EwF?y_>#4^|s{dx5kwLUEa8*Osgl zqzufSQw<%EU`~^GovlxteJ8b-nvnCU-%8U z`N8SPJ;D(Ud&Lwc3=TBK( zxWBm*G0Ti!zo63`&3@k~aDDN|@#xRdZR7`tNYpoqPb)dok*Pr{EyA>HGv_hyXl}C; z{L(UJ@%l(Tvt=|vfMuef87IlXWLG~ZDrxYZLaBlj#?b7}mUi^NQDD!0K^gi# zdml|pIr99sH{(48LmvGn)Z?^Fc{fpzJaK2jd_ixsy~p4orvhjImp0-b-V7k~7Rr@S zTe(rsPyuj&^f8%OiYmKfKdKvym(J#Z`d_wADY9w0JU3XI4%rT=EuE9_;@;Z%c>jDq z7EGbB2G~jJ7L(>0+Wc3FrJ>mXk3#Z8Fm)#M0sKhcCkX53GEC5>-p?9i4A2!H!gBRTvUhNfYI2LRAEr%r+6^Od^cWyBb zUoe=`CeB|#YC`T+{T>E4F)iQ8MHPl2kUSLV)w={(K_ z_x8#Lx~T}5b%XvD$h3EeO;_l7ss!o@DF@9aW{ly195g|_Fa!MX#)nU-i-WwzF=rt8 zit5@g^HE@8aJT)4t-fH~aKh(;I1vUOw7~ErcrR=LdOw*5Y<&6>?kUg^n?kK~U+yw6 zm|g5D@GtExgTlkz!P+J}m5bD=q)0wYYNDPc6Xu#TDgvm=plZhul|c}72cbsK=~HsP zaBq%oRxb!Rj4F(HX7t`l*2pf*$*ju+TRsM_bm20((m!}Z|H&?i{W7!wql2fjT00#W QN{ouq)nD^}vAp-c0DA=DZU6uP literal 0 HcmV?d00001 diff --git a/output/20250204_035519/predictions.csv b/output/20250204_035519/predictions.csv new file mode 100644 index 0000000..c413290 --- /dev/null +++ b/output/20250204_035519/predictions.csv @@ -0,0 +1,28 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.02,0.03,105593.26,105500.0,105700.0,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with the last several intervals consistently moving up. The volume has significantly increased in the last interval, indicating strong buying interest. The price is above both the MA5 and MA20, suggesting a bullish trend. Historical similar contexts also show a tendency for VWAP to continue moving up after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:30:00+00:00,2.0703800599208844e-06,-0.0006147392890319403,126079795.2,2.0703800599208844e-06,up,True,15,3 +up,0.85,0.02,0.03,105749.41,105593.26,105900.0,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a recent upward trend in VWAP with a significant increase in volume, indicating strong buying interest. The price is above both the MA5 and MA20, suggesting a bullish trend. Historical similar contexts also show a tendency for VWAP to continue moving up after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:35:00+00:00,-7.202990855936786e-06,-0.0003740372259137814,100960665.6,-7.202990855936786e-06,up,True,15,3 +up,0.85,0.02,0.03,105835.98,105749.41,106085.3,"['Recent upward VWAP movement', 'High volume in the last intervals', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with significant volume, indicating bullish momentum. The price is consistently above both MA5 and MA20, reinforcing the upward trend. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:40:00+00:00,-1.5997582161808577e-05,-0.004425958111348827,80823910.4,-1.5997582161808577e-05,up,True,15,3 +up,0.85,0.02,0.03,105854.91,105749.41,106085.3,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with a recent high volume spike, indicating strong buying interest. The price is consistently above both MA5 and MA20, suggesting bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:45:00+00:00,-1.8021726384764847e-05,-0.0038491243890105553,74643046.4,-1.8021726384764847e-05,up,True,15,3 +up,0.85,0.02,0.03,106146.31,105800.0,106300.0,"['Current Price above MA5 and MA20', 'Recent VWAP upward trend', 'High volume in recent intervals', 'Price Change positive in recent intervals']","The current market window shows a strong upward trend with the current price consistently above both the MA5 and MA20, indicating bullish momentum. The recent VWAP movements have been upward, supported by high trading volumes, suggesting strong buying interest. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:50:00+00:00,-1.797305273137928e-06,-0.003295469374941351,43089920.0,-1.797305273137928e-06,down,False,15,3 +up,0.85,0.02,0.03,105761.55,105700.0,105800.0,"['Recent upward VWAP movement', 'High volume in the current window', 'Price above MA5 and MA20', 'Consistent upward price change']","The current market window shows a strong upward trend in VWAP with consistent price increases and high volume, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. The price is above both MA5 and MA20, reinforcing the bullish outlook. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:55:00+00:00,-1.1380808689009925e-05,-0.0036764402869707558,12949094.4,-1.1380808689009925e-05,down,False,15,3 +down,0.75,-0.01,0.02,105574.79,105800.0,105500.0,"['Recent VWAP downtrend', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Price change volatility']","The current market window shows a recent VWAP downtrend with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a pattern of VWAP decline following such setups. The volume spikes followed by declines suggest potential exhaustion of buying pressure. Given these factors, a short position is recommended with a high confidence score. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected VWAP decline while managing risk.",2025-01-30 16:00:00+00:00,-4.7686111396827435e-05,-0.00023247190037536947,10579968.0,-4.7686111396827435e-05,down,True,16,3 +down,0.85,-0.01,0.02,105695.32,105800.0,105600.0,"['Recent VWAP downtrend', 'Price below MA5 and MA20', 'High volume with price decrease', 'Historical context showing similar patterns']","The current market window shows a recent VWAP downtrend with the price consistently below both the MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price is decreasing, suggesting selling pressure. Historical context windows with similar patterns also resulted in VWAP declines. Given these factors, a further VWAP decrease is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 09:30:00+00:00,-4.7686111396827435e-05,0.0002021628548601051,10448896.0,-4.7686111396827435e-05,down,True,9,4 +down,0.85,-0.01,0.02,104273.21,1045.0,1041.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with price decrease', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 09:35:00+00:00,-4.7686111396827435e-05,0.0001828258274677308,10448896.0,-4.7686111396827435e-05,down,True,9,4 +down,0.85,-0.01,0.02,104135.84,104300.0,104000.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 09:40:00+00:00,-3.687094162035942e-05,0.00023231446782845389,10448896.0,-3.687094162035942e-05,down,True,9,4 +down,0.85,-0.01,0.02,104182.56,104300.0,104100.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 09:45:00+00:00,0.0,0.0001358386204755313,8141209.6,-0.0,down,True,9,4 +down,0.85,-0.01,0.02,104142.74,104273.21,104135.84,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 09:50:00+00:00,0.0,9.952321788633811e-05,0.0,-0.0,down,True,9,4 +down,0.85,-0.01,0.02,104176.18,104300.0,104100.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with price decline', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 09:55:00+00:00,-3.9409746398211265e-06,-0.00040444853853488505,833126.4,-3.9409746398211265e-06,down,True,9,4 +down,0.85,-0.01,0.02,104220.05,104300.0,104150.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:00:00+00:00,-3.9409746398211265e-06,-0.00028867550278860454,833126.4,-3.9409746398211265e-06,down,True,10,4 +down,0.85,-0.01,0.02,104258.75,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further slight decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:05:00+00:00,-1.2578227915283069e-05,-0.0002691665832900425,2700083.2,-1.2578227915283069e-05,down,True,10,4 +down,0.85,-0.01,0.02,104239.54,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:10:00+00:00,-1.2578227915283069e-05,-0.00018040286797135763,2700083.2,-1.2578227915283069e-05,down,True,10,4 +down,0.85,-0.01,0.02,104232.78,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no price recovery']","The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite high volume. Historical similar contexts also indicate a continuation of the downward VWAP movement. The price is below both MA5 and MA20, reinforcing the bearish sentiment. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 10:15:00+00:00,-1.930986315762384e-05,0.00032337413035843365,5182259.2,-1.930986315762384e-05,down,True,10,4 +down,0.85,-0.01,0.02,104261.53,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP with no significant upward corrections, similar to historical windows where VWAP continued to decline. The price is below both MA5 and MA20, indicating bearish momentum. Volume is low, suggesting a lack of buying interest to reverse the trend. Given these factors, a further slight decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:20:00+00:00,-4.6126463147777574e-05,0.0004736689164059893,11073126.4,-4.6126463147777574e-05,down,True,10,4 +down,0.85,-0.01,0.02,104090.07,104300.0,103900.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP with no significant upward corrections, similar to historical windows where VWAP continued to decline. The price is below both MA5 and MA20, indicating bearish momentum. Volume is low, suggesting a lack of buying pressure to reverse the trend. Given these factors, a further slight decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:25:00+00:00,-5.890598806543301e-05,0.0006134491213340421,16771481.6,-5.890598806543301e-05,down,True,10,4 +down,0.85,-0.01,0.02,104119.09,104273.21,104090.07,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively low, suggesting a lack of buying pressure to reverse the trend. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:30:00+00:00,-5.9396876816941724e-05,0.00025762139651741567,15028224.0,-5.9396876816941724e-05,down,True,10,4 +down,0.85,-0.01,0.02,104120.47,104200.0,104050.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite some minor fluctuations. Historical similar contexts also indicate a continuation of the downward VWAP movement. The price is below both MA5 and MA20, suggesting a bearish trend. Volume remains low, indicating a lack of buying pressure to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 10:35:00+00:00,-4.8724266934779825e-05,0.00030469988434478346,15028224.0,-4.8724266934779825e-05,down,True,10,4 +down,0.85,-0.01,0.02,104186.16,10425.0,1041.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is low and lacks significant spikes, suggesting a lack of buying interest to reverse the trend. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:40:00+00:00,-3.183560654065887e-05,0.00031352846959376013,15369011.2,-3.183560654065887e-05,down,True,10,4 +down,0.85,-0.01,0.02,104224.77,104300.0,104150.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both the MA5 and MA20, indicating bearish momentum. The volume is relatively low, suggesting a lack of buying interest to push prices higher. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 10:45:00+00:00,-4.1265721340111305e-05,0.0006063911163570745,19102105.6,-4.1265721340111305e-05,down,True,10,4 +down,0.85,-0.01,0.02,104316.48,104350.0,104280.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been relatively high, yet there is no significant price recovery, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:50:00+00:00,-0.00011466399651877124,0.0009092958450139244,40743731.2,-0.00011466399651877124,down,True,10,4 +down,0.85,-0.01,0.02,104376.19,104450.0,104300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:55:00+00:00,-0.0001585922863683864,0.0008522513372706819,58378649.6,-0.0001585922863683864,down,True,10,4 +down,0.85,-0.01,0.02,104293.48,104376.19,104220.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:00:00+00:00,-0.00016847226314337105,0.0008220011825032514,67463577.6,-0.00016847226314337105,down,True,11,4 +down,0.85,-0.01,0.02,104351.77,104400.0,104300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:05:00+00:00,-0.0001733104226588067,0.0002357391074638282,80257843.2,-0.0001733104226588067,down,True,11,4 diff --git a/output/20250204_035519/returns_distribution.png b/output/20250204_035519/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..56032aa7abdfc2e1de31cfa6da260ee74d65d8a8 GIT binary patch literal 23015 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 YwOyv=-9N@raE(D#SyL(Z!nOPV59+$)aR2}S literal 0 HcmV?d00001 diff --git a/output/20250204_040012/accuracy_over_time.png b/output/20250204_040012/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..e992b75259f26b84b4266843aaca1dd935eaab9b GIT binary patch literal 34144 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

-C zakg=D^Zq9O&UGY0f)t+n;+SHEEu!v1 z>LtE722Ew%950?(gPaZ=oJ-R`sBAw6FtZAfg+7)(bv1=eOiAXFVb!xiv>bBMp|WBk zEnOn|ip?OT>Fd4+-p}nZiPWVo<{}}%kdp093{eVG$;S>Rn39Crio(fN@uRum6?eEd zZs+09mbJWg{pIzNhk1A*mCBBJ-Vwfeh?I2~*N| zbeAH+CWzmLaMrk>@C5(8VbYaWoD+&&0QoeYc~u;m=o>gjA-ZuF`eErnZ&tt& z&4=;o*?QtF+RC(#?LG#d7FSvaL9TFh4$Ia|rV*m5(m1e}3T1vf_0t$~{DYDOC5J?| z|31dw$}}KLf|9*HY5scq$im-gbjttP68`z6Uk53x*nj?C1w7N)WHjbCY}ltn5P?Pm Or^MxNW?jGY;C}(K$3J`k literal 0 HcmV?d00001 diff --git a/output/20250204_040012/hourly_performance.png b/output/20250204_040012/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..f29e0449d87a1582d8925cee4a1332e432081d4a GIT binary patch literal 14909 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 literal 0 HcmV?d00001 diff --git a/output/20250204_040012/predictions.csv b/output/20250204_040012/predictions.csv new file mode 100644 index 0000000..0df84a4 --- /dev/null +++ b/output/20250204_040012/predictions.csv @@ -0,0 +1,28 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.02,0.03,105593.26,105500.0,105700.0,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with the last several intervals consistently moving up, supported by high trading volume. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:30:00+00:00,2.0703800599208844e-06,-0.0006147392890319403,126079795.2,2.0703800599208844e-06,up,True,15,3 +up,0.85,0.02,0.03,105749.41,105593.26,105900.0,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a recent upward trend in VWAP with a significant increase in volume, indicating strong buying interest. The price is above both MA5 and MA20, suggesting a bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:35:00+00:00,-7.202990855936786e-06,-0.0003740372259137814,100960665.6,-7.202990855936786e-06,up,True,15,3 +up,0.85,0.02,0.03,105835.98,105749.41,106085.3,"['Recent upward VWAP movement', 'High volume in recent intervals', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with recent intervals consistently moving up, supported by high trading volumes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:40:00+00:00,-1.5997582161808577e-05,-0.004425958111348827,80823910.4,-1.5997582161808577e-05,up,True,15,3 +up,0.85,0.02,0.03,105854.91,105749.41,106085.3,"['Recent upward VWAP movement', 'High volume in the last interval', 'Price above MA5 and MA20', 'Positive price change in recent intervals']","The current market window shows a strong upward trend in VWAP with the last interval having a significant volume spike, indicating strong buying interest. The price is consistently above both MA5 and MA20, suggesting bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:45:00+00:00,-1.8021726384764847e-05,-0.0038491243890105553,74643046.4,-1.8021726384764847e-05,up,True,15,3 +up,0.85,0.02,0.03,106146.31,105800.0,106300.0,"['Current Price above MA5 and MA20', 'Consistent upward VWAP movement', 'High volume in recent intervals', 'Price Change positive in recent intervals']","The current market window shows a strong upward trend with the current price consistently above both MA5 and MA20, indicating bullish momentum. The VWAP has been moving up steadily, supported by high volume in recent intervals, suggesting strong buying interest. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:50:00+00:00,-1.797305273137928e-06,-0.003295469374941351,43089920.0,-1.797305273137928e-06,down,False,15,3 +up,0.85,0.02,0.03,105761.55,105700.0,105800.0,"['Recent upward VWAP movement', 'High volume in the current window', 'Price above MA5 and MA20', 'Consistent upward price change']","The current market window shows a strong upward trend in VWAP with consistent price increases and high trading volume, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. The price is above both MA5 and MA20, reinforcing the bullish outlook. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 15:55:00+00:00,-1.1380808689009925e-05,-0.0036764402869707558,12949094.4,-1.1380808689009925e-05,down,False,15,3 +up,0.75,0.02,0.03,105574.79,105500.0,105650.0,"['Recent upward VWAP movement', 'Price above MA5 and MA20', 'High volume in recent intervals', 'Price change stability']","The current market window shows a recent upward trend in VWAP with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been relatively high, suggesting strong market participation. Historical similar contexts also show a tendency for VWAP to continue moving up after such patterns. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 16:00:00+00:00,-4.7686111396827435e-05,-0.00023247190037536947,10579968.0,-4.7686111396827435e-05,down,False,16,3 +down,0.75,-0.01,0.02,105695.32,105800.0,105600.0,"['Recent VWAP downtrend', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a recent VWAP downtrend with the price consistently below both the MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP is decreasing, suggesting selling pressure. Historical similar contexts also show a continuation of the VWAP downtrend. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-31 09:30:00+00:00,-4.7686111396827435e-05,0.0002021628548601051,10448896.0,-4.7686111396827435e-05,down,True,9,4 +down,0.85,-0.01,0.02,104273.21,104350.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns leading to VWAP decline']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price is declining, suggesting selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 09:35:00+00:00,-4.7686111396827435e-05,0.0001828258274677308,10448896.0,-4.7686111396827435e-05,down,True,9,4 +down,0.85,-0.01,0.02,104135.84,104300.0,104000.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by drops', 'Recent price drop of 1.35%']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent price drop of 1.35% and high volume spikes followed by drops suggest increased selling pressure. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 09:40:00+00:00,-3.687094162035942e-05,0.00023231446782845389,10448896.0,-3.687094162035942e-05,down,True,9,4 +down,0.85,-0.01,0.02,104182.56,104300.0,104100.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 09:45:00+00:00,0.0,0.0001358386204755313,8141209.6,-0.0,down,True,9,4 +down,0.85,-0.01,0.02,104142.74,104273.21,104135.84,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 09:50:00+00:00,0.0,9.952321788633811e-05,0.0,-0.0,down,True,9,4 +down,0.85,-0.01,0.02,104176.18,104300.0,104100.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price']","The current market window shows a consistent downward trend in VWAP with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price is decreasing, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 09:55:00+00:00,-3.9409746398211265e-06,-0.00040444853853488505,833126.4,-3.9409746398211265e-06,down,True,9,4 +down,0.85,-0.01,0.02,104220.05,104300.0,104150.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 10:00:00+00:00,-3.9409746398211265e-06,-0.00028867550278860454,833126.4,-3.9409746398211265e-06,down,True,10,4 +down,0.85,-0.01,0.02,104258.75,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:05:00+00:00,-1.2578227915283069e-05,-0.0002691665832900425,2700083.2,-1.2578227915283069e-05,down,True,10,4 +down,0.85,-0.01,0.02,104239.54,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by low volume suggest a lack of buying interest to push prices higher. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:10:00+00:00,-1.2578227915283069e-05,-0.00018040286797135763,2700083.2,-1.2578227915283069e-05,down,True,10,4 +down,0.85,-0.01,0.02,104232.78,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite high volume. Historical similar contexts also indicate a continuation of the downward VWAP movement. The price is below both MA5 and MA20, reinforcing the bearish sentiment. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 10:15:00+00:00,-1.930986315762384e-05,0.00032337413035843365,5182259.2,-1.930986315762384e-05,down,True,10,4 +down,0.85,-0.01,0.02,104261.53,104300.0,104200.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite some minor fluctuations. The price is consistently below both MA5 and MA20, indicating a bearish trend. Volume is low, suggesting a lack of buying interest to push prices higher. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:20:00+00:00,-4.6126463147777574e-05,0.0004736689164059893,11073126.4,-4.6126463147777574e-05,down,True,10,4 +down,0.85,-0.01,0.02,104090.07,104300.0,103900.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively low, suggesting a lack of buying interest to push prices higher. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 10:25:00+00:00,-5.890598806543301e-05,0.0006134491213340421,16771481.6,-5.890598806543301e-05,down,True,10,4 +down,0.85,-0.01,0.02,104119.09,104273.21,104090.07,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively low, suggesting a lack of strong buying interest to reverse the trend. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:30:00+00:00,-5.9396876816941724e-05,0.00025762139651741567,15028224.0,-5.9396876816941724e-05,down,True,10,4 +down,0.85,-0.01,0.02,104120.47,104200.0,104050.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP with no significant recovery in price, despite some minor fluctuations. Historical similar contexts also indicate a continuation of the downward VWAP movement. The price is below both MA5 and MA20, suggesting a bearish trend. Volume is low, indicating a lack of buying pressure to reverse the trend. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:35:00+00:00,-4.8724266934779825e-05,0.00030469988434478346,15028224.0,-4.8724266934779825e-05,down,True,10,4 +down,0.85,-0.01,0.02,104186.16,10425.0,1041.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP with no significant volume spikes to suggest a reversal. The price is below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:40:00+00:00,-3.183560654065887e-05,0.00031352846959376013,15369011.2,-3.183560654065887e-05,down,True,10,4 +down,0.85,-0.01,0.02,104224.77,104261.53,104186.16,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Low volume with no significant spikes']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively low, suggesting a lack of strong buying interest to reverse the trend. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:45:00+00:00,-4.1265721340111305e-05,0.0006063911163570745,19102105.6,-4.1265721340111305e-05,down,True,10,4 +down,0.85,-0.01,0.02,104316.48,104350.0,104280.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been relatively high, yet there is no significant price recovery, suggesting continued selling pressure. Historical similar contexts also show a tendency for VWAP to continue declining. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:50:00+00:00,-0.00011466399651877124,0.0009092958450139244,40743731.2,-0.00011466399651877124,down,True,10,4 +down,0.85,-0.01,0.02,104376.19,104450.0,104300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:55:00+00:00,-0.0001585922863683864,0.0008522513372706819,58378649.6,-0.0001585922863683864,down,True,10,4 +down,0.85,-0.01,0.02,104293.48,104376.19,104220.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:00:00+00:00,-0.00016847226314337105,0.0008220011825032514,67463577.6,-0.00016847226314337105,down,True,11,4 +down,0.85,-0.01,0.02,104351.77,104400.0,104300.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by low volume', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both the MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes followed by low volume suggest a lack of buying interest to reverse the trend. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:05:00+00:00,-0.0001733104226588067,0.0002357391074638282,80257843.2,-0.0001733104226588067,down,True,11,4 diff --git a/output/20250204_040012/returns_distribution.png b/output/20250204_040012/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..ec36eee42cda74897e1cf0834da6d5a946701f70 GIT binary patch literal 22000 zcmeIacTkgCzb_8*jgWB zCME;(E6Nx2z2c_(cSaj@^h-@`e{krqvQA#&tvXi2%UL@43I{?ttim}CYS`!B5b?hF zJpZp}NmnBNBJyYq*h~rSW(#IfIjOG9qN1;)tn|yTE1+udjpyCy`^-D;l73a^+I^1m zU;N=uiW{`B%k4R57ABO@1S>ea_ z|ME-MjD<`JFSA?v&7H7pYSUJX#~o(irVHD&Ft0TwuY`OK*r4Jo*FQeonOf`M>}aj` zjLNs@>~5D`WGFL{mdxRBR5UmG43i)qGk4-2%KJj{uJM=@*+v?gIuxyMXAFlcS|oZ` zFLatpKT_@%NZKVlI_>b|{T&nR%4l0ktYZw8mds0l56^Fja_w~}A=u@Voj$Ddvdcjy z6I)$3XX)Ny&^A*sYcZU1+4c7zV?)Z)I=6b&mOts`NwqQmzG8=7aZKyG6bo*qF}=(c zIulbUxm80%v%kVqyDe2)Tcq;$Mb;UT{E``m=q=@q2l6${^j8|f-%cf|2-Wu93K42O zY9047U}Gpm#3j0PZKk4a7Q0m8)`LkUWagA-5NVeF3kKERqBY0QFAk=sCiMIyP33)N z^}enlQsrh6F=1LF(PbtkQsX|^nf_|JxYv;qd@}4ZLHBGZkGza|0DS?2GxxZ%S7G@^ zk1I)@eQmXp+9bPj_v88wT4~b|M+mj7{Cv1IDIq?lHM?XWrrcvXMuD+Tb%Q&8XB94A ze5Gq=;L6Fwt>SNYoq`cH*pRNi>^ajXZ4To{aSB*7l^IWbsJq{9WfX^bb0-QD;jJQc z|1+y>7O}K@fOq}pPRc}PuGVCBiN)$SZLIFX!1}^XzE?8VXW0i-;U_8nB{X1ZzUVg?lQ{9>hQ1S2GBEYxs$~gAMRC1 z>)AQlvu%{zFk3nt=C-jyCcB3_ME`w9J)V?^W8qbhTcEU^$+d3xI3jLyEp(}VEo(7( zdl6Z>#65HNDD4d1?{ECU{kMl+2GSRMMY?3tCVx!mB&&{E9c^=;>K5hpr?p^u3Nb7S ztggLH>3XSS?&n7%^v0I^)Oh_PqD*Yl#czBF6t5ZDA5?nw@J$zsI=(N-`+TSJ)ds4M z)C`BorjYRg*sv8Mu&|R9Npy~@>~$N4RxFB6e2l2WRbjFv$2qC7e_um=GuDY3}J1yM$yt*behQN z6vu;I{8lGG0rW{r*R!|%oHr=i0WsLM-oX@D z2T}{;Ehhtt*BR^2L>lG@^iO+48kmy>Ga8BPEA*v7Mci+-!#!}nvH>lY(fr@*g)8g_ z!W7qk?OoZSwC#2I`f{COQ~mQ}1ud$a1Z_pScu@YX>?)rHb#lC?MU0%c%f>~XQ}d(V zMxH%Gu>5(YhxjDR)ID5r z!)qYbF1N~q^@7g!jUKz)M)JkJ7irwvthi4atL=Ka6aYg>K6Xgr(AXV|-s=hqFr}@r ze;)s&^#dk;!soHKK|C^+Ysr;;M>@?t`@MORORw)=v#J*=xyo+trX#FVGa6;;a(D&R zRO!o4qz1fBD)#b_ou*2hs#i{H4-zzR-Z|QjDoc+aAnVzC#_8?f7`kiBRZ^NTlpj$l zoHYGto~5WXUkBGM!k{WLUMKiWq`NhU){XGbh0D!fmZ3I?xtbmvr6vkCjrz`3Nm&NK zN1IhA>^=W8Q2cH~G?y9qlzPMP6XibT;1|3fWx})tbIXl!yBhNqlOM@1>P&t1YDh6l zK9ez5w-MqH;t*!FPwMi}`7av|S%U&1HR~=Mf8V}b{dV7dS?tb%d!JcWo*1qR2Rqn& z&421&!Ple{Sevu$!!1wvQ02Mnl({-y5&!vbX9#;0*Yi+Gi!e075OiZD9p)$B&-#&N z37S&WWwc)qpKhj|%kb1RLKy@Dhwi=l!#F4wCHgJ-TrU-Ox( zWv7;z`~O(rPCh?4Y&P3l;`Tc1RReWi{cb03?(qg7wq(-hTpFhOgK(TshFd!gdk*vt@4y9BtRn114 z6x!%;NZ9I!(hF#<8eK=&>tujS4(+0!X-w$~sBnSPd9BuL|Bd@&^ z6zLT0$$p~epuZH}+L^U6Mk2Eb!!fy}K5ZxZC%24S*q{W9wB#P&uq}t~^UpA8+H{$F zHl9+~p-W`ssZqQlc130eU>AQ_mwn+^mrVBYj5t!e?^K=t+M?!c_1esql2rw%I&M$1 z&;x1j`L1Md{OKH#q4I4MDq2l*y&&#%ok!=H3@5d-7UJziiD7c{U(F(mk0;$P2Y^vc zTqI8Zaq#pA|F4km-T79o0>5-L&u47lYN=h#`f};6`oUTy^a+QIj{UzDXF9u8;fbHLu)6R7QBjOiqrkL zmCsIjR#W56B4sliNHG!uxNBf`<=v z>9jkh3ujcSRnzMfH*~E0riS^LbFr1OZsW~~lLBLh*G}6iMbwgVs}@ai9_#sYTA3yp zUhwZd(lKQfpnAn~+M29kyw*Loml-=WHCWIc7W`^W61NV)`HBFxWpo z+^6K%@zi$|CqHw36gI(PRO?zhr?T;2kMP%zDXZ5u9&jJe$X79-lz$0**kjq8EQ8h8 zvoO|qETP;nu=<5MGxu25(dJ9&{j>+NHBvh#dW*}y;OIRp*HtcA-_-H2W+#n4@e(d6 z-W5A~&%}H|$%HQY^a)q&6MO4zMQJCver2!Q`)+&d^`xwC<74F)F`9F=+5)|_v{;h~&RExBQQ+ZS9(k=jpUl+KeZ#?hy1plAI*2%RP$A4}s<(&i zw$k!?-Z^LXNE2z{Fe#)C8#2f{=X>(Wt~DK%N}n5{4$s{)u*0dv(Wk?%$f>qQPn0hX zdDVsn&Wo+KoW8)-eqQDnfqkg@cNy|zHa?Lb$pL;ggpDL!#W;%^kNdf z|MX1a27NYw%%~47jMT`mn;q;SBvT6W3Ik zU9~%mSfBK(TqWCVS~kO%G%XYSs%zK%(F02p6FoS0p;W)*GzF?Fw$}N1&z8Av)dgMJ z`6r`GoR|6%pWWjL&8#ic@vTT!S@()N=Ey{pBw8`eEnoE~jEibM8n$_tUCntSbiwzO z?Ov6};Iu0`Y`wa^)lgP6y~DPMvl;X;@BYg~I81k8oL#2+9kHNXRJiyC5i zT`DdR3^T~O6qnrce)&`3z~Hrf)_i=j@B8`WeeUKvonH&s#wb%T+X~*>tjJ!ZR4Rv1 z<{CWu1T%6E`8sx8cW{myG7IK(>`YZ6wC>adVI_3V_f**RX^t)X)9gse$Lmtgl5_%zN!z#+ZzO5F z^RoE6{K7MlzPUJ`2tO60yDeXJ{r2-JV*NN|+-znn_^Jz^>~fpCBbDK&w(B`rI(bjV zuKbor-3Ec`5!I7cb8mJD7HRad71=Zke^L%kJbcOxioGX?l%tvB`AnZncZyWb-i`=X z84o5Vop4j8+;(fzuc8TkGIJ|B6dJDLsVCYGg}g#(lJl41qP1KQH|chrU-HNIyN>H* z9#_WQ19oRVF<28|kbavs%>A~cc;$LYS_fTwznIsT0xYfDsL{7nYu~6rkE%xhN5-dr*Uv~X! zX*8*1H$OtOI-TFt(r-RhH*P38cCgDNPGEH73+M2Xy1pWVif6=;CcVbwvAMPG<`t%8 zP%TsB)R;Lm^`uVj&HIbrQ}&R#WCvS6M|MGzj5nX>6&mc`qd7%M8U>x%rZ~i(TNT!( zURT`B1YWjgK9iKuN6;?|$&Dueu*RED^p&}$!|qvDkulzsUOn?-!X$S*#b!8ED#5x- zci}1K)_|xoyB=)JU#YS)rNb^bQ}^_NP(3%g``8=nF~{U6Q^&H_zv~5G2UKsYPTKk1 zooG)l^GzScSt4p_e@OQ73y^A&bvtf974{ixMcy`dOsIFe7ImTr(#Ta zzTAzXE3?$+su3=~*v&=Fa_XO$xGSVAedjnhXS8(DZ03K<(~C&Lnsx z5#2~~)TDXj3){LzNrAu1#-Oklf=6aOgtFa_ZcW0@F20Qf4NC{3VB2RYthB#|V%>&S7D5 zI4-yR^I=(x_@S4shisbU9{)^*BcZjIwaN1~ERiDNt>%_$Zv=o5F1vrN@H_LVw=s&hrNivLjae7y)B zbdmB8EEnJc+nB4EzyI<>YQc1G3Hz6{a%VAzod@kCJeSPF~x|&+d6vc zfBDrOHnN}SczdI#$PUK{f5Afzo|s```tYFja-UoTUON1hYnsMNU$X+-bl$mbv>m$H z@vG;hKx!lYyP($i)x<74G6(1f$Egy4(~OIa1)^i{2OmDQT{aVw^qA^~sgSxu(-#Jl zd~5^ghVXB>C~-AzcYViW%`AU1G2L*!_MketF;2RmW$duOQwgRm^?@U=Ch!kYU@^bgdDC}w*J_T6Xd)w+3hb}0_v4gX)Y**_oH~uC~PH`V>v!K2b{Lu>?M;-0NAA42%ePaMqArVi{L|ya4vBCyQK#S63wxKfWSeEp!Z);w z;9r{T5}~hl)ilwub>grrZ#^_UhX>Xrvo=*gm8=WB@7`rDMgO%oAkByI#ya5&h)J4Q zk+A?!1=@G@j?(=n(o@I$`%9b#X|y(N@-z_njhDrJF7@j_x@*uh-MZt?uWKU3)-WjA zP*t=;7rc?SfC^!FBbvV9-+ELOI&R!x_&MKSkJ(c~gv(ywCMUPIXPd{A>I>(2uG! zVz9yIc-MS@yEb(!o{SsxnasvCCtko*Ep%#-6xQrzK&Na~7s!rSG7xkM;`aFZmhtTj zzTvq1*ior%*u?@o0Tk4fvwA7|+^us2qQUUc0>aV()u481AZ3DrIJB!gBKWQFBoykFC#a>Alvwq68Fzloc$uOJ zI*jtU+^$mR;rU4*|9?BRNe%kxNi^Qy$zv=7WmAKyJCFlUGplI{igaJ=4o>@PR+g+> z=kp4u-q%OnZHzG}s_|W%x<2fxEx(|jFbn#UrG(=ujY3$Q?!`U%^XT7o)rv?BBGK2D zMBHJ)h`Ww8$aI}4cCVo?#*#f6C%IsBqW*kMekH_t@eiMq-HsL0wzS9GrSSsj=E1+R!_^|pr&xk?MyvyEf1d2Hg zRU9O=Dw4QaqCgqLmWk$;!%+Vv^_-0qSTp}!pp3cT$k3a~+EX02GG`vMTYM$S8HwD< z$uY{ckmgg}iYW>r;4EYY?SsjQR=g1^e|Wg97~o6O_cPN#7tEy6qn*l>YZT;tXkVpv zXGj^clWv#T|M=S>@8b^4&DzG-yXIT=nfcd;liTW9rXq2?p(VB6qKc9|HpzX)ebJ&; zW8HNvO6J~pI^eXdlKT};rqJy_V;OI8@fJVC#_UO7=+XwMnGqXh?(u`mXL25irc$LI z2s{O{3#F(rRnL@9vh~WS?UJL@+FXOHp$@k}{fyO;9*yux4L58UCSDY;W_v56-jrPQ z+l%|epLLQdXMGu|K7SN#M zK3zA9RL*DfTs!$r=()|CbwFR=`yZ;Ldq1MOc-p!@ebvjSqA*)Yofm7?xy5DBn=CK#aJPyb zZLZHZm~CWu$3?kb9)q#rCn|-@tW1Zr4@F1#KDoZH#ow;1it|Rxz4#{65Sz2Yhp&pC zXS?qQm86We4$e>g+k)yF9H)|W9+-K+>>*=o>cV*~$<|5rIbJoz-(H^~lLsv1ns=_0 zX{BC$^QxjSN5E9F_W&(zh}$6FDmm#wZW!xG)34^exQ8bXh6dFt4L{q_wb_)nLt>B4;f<$f5-z7E_}F%!JvM8=x|7pXF1dkmm}INgxD!ee|FJ~11uEa;P}@CV zIjUecT9NkS*3Q9XuOeVwV5TH*c@uU9$sY*(4r-57e`ozW?&T-A|(laYGBntU?MRYxCDS$t`iEj43{yQ6;O_^;6xzrJK) zr635n3Yzcvx@F+fMkRLeAuN9-vYSQ3shwA(O$q4YBs#B;)N?A1Rnc(uq=x!{I3HCt}36m^sfrl(<#EVopuLqMJxp}!ymK=pj0tC@6&D! zFfGlR)sEa&0B)vaISY_=%|`u!zNM>#u$5`AaXM9sIuvynuF%N|zQPN$gNil09lvYV z`e##^x9)g%2T)SS*2lJ}YzNlwh6^w*OW_lQKC$`$Wz%X~LQ zYS@1TfKq%_s_)(<+uq{o6MbNV2dZc*rRq!p?2zWesT5J`cmw2iPQu0`tNG^dQwU>Y zV4))04v}WphGBr8+Au-wR}oS705Q!C1b`IS?@}{XeIw!+qap$6G1dC~gdYXgsV&KB zsXX#Nf+<4Vf!m1dJE!U>9}8#et^fS|sMsb;N46=gt7b#O=sNHDdp8n1#v0zZHw}ZW z+|=<44T%{yHaS#MeW~Bm66*w1o3cC{u8o}Rj(uV+u~JDJfL-12E^x7 zE%x+1^VK)y1#`2iEdYRA*~gMpJXXg4_s5--6*8U_S{s>}0~+NI%-0vky<_;~!(UN% z@^~qobOu&fd+h;CG{#6HMmpB1+I!~iG(2LGdGa*a-YecTARtLi6dVvX8Y;I-P~-3w zI=ul5dfO?S*{i|ujCn-VWuWf2F7`U%@rvOY(+DXiXNkboLBZT3{J^$iak|Y?SkX0K zNGyuI-XRUr1zpk#8R>P``hNxSS}ag?)VL#q^1z=+Mdor&{SSb*ZD33G{9J$~XQQ=^ z_P`Wj`(D7XV3GklLc3(c&<-!-sSU~fAOIO!Pa5t_@$8|rs!)5IW- zjZhA|*}V&^154Fi+f4sJ>+_FsK^JnItJdm5Za{n|l#oqw>wot{ATy=Y)JgN<4iRW1BoZlCxYD7;isu++ny#4bYA)*9b{}h&{;UWr{M`cyP#zK()8||JGPaM zkREY7ms1W{yL^I->~{u2qCn3i@D)yNDUB!0jbKTnoJcI_u5}$bsro!kRG1^!4pfZ| zZ&-rgFUXZg>&1f@VXV7rT+pLp>b(Y%_FM5_BCbF87T>{szsk(tzic#0Lvif~sTGqN zA7$#w0LwA{w01&VLcqpK``b%FZX++%Bo|JjT?00NH^Cd<1nx*fZD}-5L9iK>8%mJk z`c32ux=7jIfgH$nVN7^u9|#Ea!u9$3REsJf0+`{RFLQa(%GlSuCkG}R)F%&0o@HNA zchu4PkkO{x~ztXyYQq;1EssPSd8PV!xkF9fA3L46DyRH=0`vtASr2;si;(oM3-^ETONsZG{bBlJVA^XT+G+yuM6U)*Z`6zd}W3GzviO-mB7 z8RAH_#ZB;at~oQ)kpO};5+4vAS|Q96g@o2Z;8m$e8py#Dt^?{auV67+Jb{lp z_zyP#e3wI(>ASr^p-|mjzzVB3g4S1lq;nr!JSy-2tq09ThULx2hsR|4VTHBV2JYTFj&v1-$Uu;-j+Fdy`?XJM?~R8nt+1)b@p%2b?*?CMjD#{V zkZe(N*HW}1J{Q09J%VHNxez`XIOhr{sPH1C1L15LbF_%BvHhx43+JIg)Z{9f+VLzc zXljPsjz>>1NxfMcR4m$34MQHvkKU$+m`f@KfUp2IQYeQ+M$^*T(kwo+2^WOY0WUi_ z;EVCU+g1fz?rUuY>3+aV6xd<3AjyTF^=<&W71cKk7^N9hI^>ej+-G{0WUxQ8XwakA zVa0oXe2+iWG;cpBka{p!^CUGcXJr$pD=r2L_dpU#fr2EQT`^ORq(#azft;`XS=^Az z(JU8&OEueXU1gE#d%+ll1#kNtsX?u17Yg7JyL;94$2_B>34&RqHl!wf_Dj`@Zv_SY z4d@525UZ@MT!d>}yI{~qK9x~zj;x zGv0gbjoZ-EGb!vAUdI9ITOlc23sA7{Dj=;%dc%w3ms*bpalHzY9*d@Z7swsC#``&V z|4FvVa#)Zb9@s|i9s`h+Gv@!-6^>}nSmM1?;~k9& z^0M)ezoD28t{V2-eyuqXk5u_|4VASg`hp*GT!q&^k33jw6 zoWF$ou6R9U_?(XM(u zRo$RF5R1ZZHK4aqz#7v89b(li73h&22Y8>M&T}%vEV ztA8Havy@HdiSWtFZ}khnjznv>-mEDVAgL*(whB%y?C0^J3{oD%@@jO&=lM=l{qSjA zP&wHi7JK!U~RcMq_Ca(-8JC^+9f=<@hN1 ztE|UVH1aM26aYuG+Gb`)Wo88FX-S`&hHN7RX2(^~!#&FZej&xX6#`Z5?|K0TGc^_; zUINwecu8M%o0crW!0j`cQ`Vy(=rZoI5 z->Zv;&Ujqfszop8tkI}`*@W#jdVs*R#)&aJ1YS$KoXzI3BLH%d8CWbJN?q8zGA-0@1VDjk1x{R) z7Xlv^_^h~@xyrHzyTV`-GI#qqykT=CvT?#O2%u{XiT8*hn^TEdy&0v7 z%M9-XK+urWP6vK@&6z_e5rq$;KQS|Cdcome34)?H{<)M%^ zz)t^sfo(->94e`CIjjlxgLueZ_^!mi$i?S-#2GT!1n+bp@ulAn;t;~ z{pkq{XOwX1&j&;ku=<$v->L2y=a%)znk&CkAB90F-OZr{=i{Fr1a~k9`p&<9851QD zP6ag_}wj4HOeac~F`$5cMVvpVo|tK;+L2l#q9k zh9>FxZ0I>3PHi!9R)oA>8`yd;2mGjwG^mK9H@^h$$3Uf~q$<)eRzd(YnfP_#2?gV!L;k7;2g} zjppXvqs=J54nD4Y-SQFkS&4R>CH4)94suPA>i{9Yu5cIFE09|`@8^$}1OL!b8Zg~c z@h;!bQUI-z2!p@CJ=02!_b^#)@~m$AxiSUi$UE9{|JQm_HQMtIm_FFdJCPf^U`-S@ z$xM#C^Y(psGK_{^MIiM5?2G7A6eH*0;)!d>=ZEimCWy;0EN? zQeJDxoUMYaW%{Kc*0OD~PtJMIkMyzoY#RrULqTXar+wZ9p6{>>UW4LOw39fbK>LG2QCB0S+Glvb0k7wr-Im&3VCP9og{D!{41K!XU6@yh+ zr)2Bq)7BXf zb$zpAFHhXsd0xQI9czd>TE{u7vQC3#uZ^52$F!VPIk;xx(AHH@7$VW?F>9=XMJ6$@ z23kd{3cGm(%s>1Nl8DI-kx2E0YTn~j<&cySK%Pe;g~>j{IXNR0`?Z*DxzYo;fn=ebAw zAA<3Jqx#K^$N&9+9|%1iK}8_rPA1S|q!+>_)QUO}NF?OurGpEZ4vBCy&ykvDAvlTJ z%?@)m*MM+S2-`y{xKxrht4J7zz86_E`zakpmYRrX%K)ZtLwoesF620HXk_Z2gP?{r z4~H!n^yyHz5N>P8^`(u!On?_Q>jbpB2!E1*8XmY?_yXP%>Wd~SQ=!iL8?4Yu5odoa z0KbQ_t6^U5mM$u6p^b!XC^6~g6&|jBccF%P^MznyLqx5J?~o+gE_bVU*qi>i1wtf+ zL=L-mW7Q(h^0@Q(N)-Z6wR{!D3$~LH93L6XfA(8GTX*A$;FO2p)Jk)7%xa&YNWg{M z{Bu5iL8vp@BY|fV(&dk2b2JBc4hIrc#W(Dn zWM{R_#B`v_#|36V4B8KLhXL6vQv4d8DSmmgKhkyPM575)DVhq*C%2ZRg&Xk z&lX)iD>U-7V^^1P^f^lX;{>%+c8kna5b4LPFV7*~!OAVue%*%$tS-D3)EbUc8yV+H`S&a{w z@qT!97sP-SM%7*!L5IA79+?u~ia$TrpIM_%|v`N+wTGGF}M-)hmDRii{*reFHp$`ar!I^8q-q3{P$ zp3R15bkcslkYV)t&F(+P5k=T5PrDZC48`1-#}c15ke_D|6r&5H3v%xs+7Fka2p|WA zAE;>&{>+h0XfO@UyhjUHW9*ui$OH6chT%gCf5K=CP1f*bb*jPl!575k0kdraIpudv zz$juLFBrAm=&ul7_AZ*xU^Fpuo4pC!%ZVA5*5U=KLn&JEF%=piZ~H<`*103`{Rd~w3$fli} zvgxxu<3{H01~L$IZ3PD;eiO<4=x=B z=_e3s&F1KOf2V%k2f+RU))5>!Oru2CRa9Nprb{e+;3AXp9#CWvj+Q`p$VUC~p7Dcc zw5}Ea;z-^mXA#aRmD5DBhX_iU8y$G_Wynw2#mM`5Oh6~Ld)2-^l3@$zL z`R66}BzevbY_^S}Tv!k2i*2x_#3EP44Y)w3v_E5m-UgaY<`Ym#@8#!0QiVysi~sOd zFr?dbHH0FGfby*TD#NVnIg?N$D!_3J1kK#52U9d-(dMC~b0}wBW44)9)PA#^LfLv6YKz&y$fmiBf0Faoz` zUC_G}9%361JRItELv6TjkhUCg>+}HXT(%)H(|n2i)xX`QDuU3h3Kr z9rsWS$EAMe4vNmsL_sj;vN#b{0rSc=zKt;^RdWUP@1pif zJz!3)VCF>uMT`V@zPz@22F=7{CWHrXq+RcF0FOsq4jrW^JOS%Mf`wbAu!;0#nGb9f z^}g8}#)eEP%FOb7-?VV>(3i~re$&UC^`FTWU+-rKH_KW0*;J!?$6jrJ7-ofr-T+2&;~aWz`pd=t`nM zB2WW0DBHH&`Z%*oqO(8BvA-NOot}fJ^xJQp4~gV%L*cq&7wO{2`uuFOFo#hWdjTT? zcP|Jy)gS^DLXJ$hnY@R+S=MtVF0}jGAUO^5B!h#ke zvMPF|2Wa~`NYK3dbu*3aQ2gVxIb>@opx-rQmj|J|cQ#_(uyL#`oK1~;d4IR0Fm~=ew5ELD*|3_9TUHYl*Qp=L>^u&^Qz(0lyeLb$;@1y@5Nr|H1s3F@> zM1R=|KFLGV!v9nortMgrDj>C@%#e)R_=_k@>P zL9{yO7dU-sF?X|zI%9_EmK*c9^j3)_E8lh&9r!uqNtJ`+vnD+o6ZbRXv=3e7Jp845-28cs- z?*a?B5RAqY(EQRTsvu&nxUf-G1w=D5C3BKKexkTlf^5YJS)NqsuwGEwhF2_b>g{pi z4q0o+N098k@o;_3D^#NMGU~WR`@UU+)s-?wvO9M>TTQQI-@VUr{(jcppj5DZ8?1nv zmUn=lvbQvXDk%HK_O1NT#loSc%4x`+6JWe5Y0zIEu>t2NM4^ouc}stHkx&!8FrbBO z+Lwdc5g=h2_CT bAEQ9|j<_*@wj=3ErvR1H}tAf6rOeiY2^&|k=#Ms7LkcQVi{7>lus z60V}Pa~9iEngnQTB@YJq9e*EU39WKWz$sW0W{6~C~CK-fYv6AiYfvo5vX~9 zqpi#_b}*j>olKzt%Bx^ML@Wr<=buf3Ml3}FSTeZk)rri3psu z964!ZJ9B;mSA}Ay$~jdGSSTXUA`l<|4mW=;3C6`p=4aqm+pO7F_xdGAWYT6({%UQ_ zsAkn*fPv0|NQXz@jh7r7tbl|lZnK*T0zDcKTjA@69wGuX_(VEZ&Jk5DaVPdQa~@-L zF^fR)fsRs`I=s?9u^?6l+z%&C#@4um;uqk*SI7;v!vTCSgjJ_gZE=`<{edm8QT zvNdZHi4R%%r=jLa5FIL}iwUUjTZb`#)N7>Cb(DsorHkVK&1sXmhoBkc1Mmb__YkO_ z8MbEnPi-L5f|~3n*BgHS`s{kRBRWSg!%Vs8O|+$VwGKTAj7@_!8knFcFjxf=k3pM0 zUd=mZUXD#!pVtR68mjsm1DzC$?mZE^kq z{qOnN!Wq3Pk>%Yv6J{liligt;xI!t;A^ORHqnCNW(2~8&AwO&yVouce8QKRY59dzG zZiv#st}r1F_NMjpBH0E(Z&-`cMpaq2BVFtn^SGLk;o@(nW8ZDi*HXb%?dT?YXKS3w zh_EtUn|07HaqP(GIN;hZ{Ixo!Yr`q4#uEuiAi7*Kf&Iu%5CUfdR}kP%&eqUrmzzw} z<7(KY*ipN^;?r({k)?^Xt8vOjHJ9r|-ppGMF(zuM3wz-$~jHxkw$r zpl}o@1OcIQbCsHMpAYs*0L)qsvWC5HQ^bzUfM+V_#8dYksa^2YG$85eh>pOaio_D2 z-RnLYq)++T^ehXx*I2-3BO)w!a(c%+?dz!-b_yN1;c}tQ{7{kmFmW(P4U9WxU8@aes9fI%VDma)ZCL*CuX z@m$Qmpx!wA{>Sv{fSi;ltnWJ%HO1AI1MdAq57KOPh7-d`QDM~CHTJFrnS@$Smil_A zd^KILQK??XB^f7eU4`RKUJHW?Sf(ZBGV)a)GZbbi{$(EvpS~wlLL++RkGrv>mT?e2 z_2W2qL&?!AS^D~`FrFR#2l-BBugq@y0XzZiBU&y5|c-mi)mnHE0p(s@vPjBpR_W7Pfukkwri+EgRM zyPIqxB{Q_7&cLl^SDWk5A-Jcr67uF>~f`PthX%!Ek^;Eyv#0bv8|W2bU@`SQ_G9t9Qo#eebiPSgo~ z8SI6=!0WiN+gD_ZQEEIV@<`FuS=fBrA@cOB%5n0*AUAnQCT;TphR!YJ*vZ$YS3f5j z<38C;1pSPC=rX*$<dO5u&` z=7qMUiJ_V*4{sHj-p?VSgPFQ=Jwkp)zIzqs@B_@4=q?88KlXI27_fAoNFf77h{K9+)MfV>dd znCbTod-8*AakhVf5pdFZt}0E?gqqubx$jesh7OF_p+?3MG;Pr!m^x& zN`&95FKZnY;l_}lRo7NnxvfAM`s?XikEQ)6g@SbKM)QkV5IuMI;B`g~FP%a=p`%J| zX@85mhMVI4OL0Gu+OkpRqd^*deQxZq(2Y(>C;)v2+_Kc%s@N>&t<1yD4+ZNI?3(H% z2N*v{*eFIcoQPFUgVZw)F{hHZtGN5#4pszPc*n*rl_g%NFFqDp3y$XBv!lx$W6AkK zo(l)eyS{`LB8ao}<(g56SWfRP?%weSeANx8V=*9oy(JtQ5pK0$nDQC!JhsM6RpU#M zijfuyw7YaEikkb)Js-93`t_Kg-USHDt>&<~2~h@SQ>h1_gXva~qt97_iyK4D51p-R z=~+VUP~ol%H6{718m;cKx&H3ZY=c8*8gZD%7TI?22Mu&H&`Cb==CMLkgB7rDpmF`y z3Uq{LSx+%~`m-d6<%jME4k+QVs~82HB$2jKS5HXQb&a=)W3Sh-=Yv52+Y#5)L9O%0 z2j`x?9Jiwv5KDa;_aN+`Z7G`d0i{EG4c8Am6D~<2 zeebbkBNv5k;+OgI4vC1aF85x!aEBGGjqU7aFKX_6!M)u)lLuj}>f(Ie!zdf~sSX4syG)9Q2~v>D?g0oEOysiq|6 z26!M9xyKSln|-$sFo=a$6R&}2l-SY$?Yc?0olGIG;DkNR5yYQRGejF|NH#Qct}TQ% z%Xg6N&z+z{4-+4^%h%%=`1Y6U1q-fj1}Bh{jC@cOZlXa;Cjr76Bgct!IE?3;B7#>2 z)M#;xF3%Fmiy(-kj=EP-q;`{Epp2#ymKyt*{|`mz2zJ4E0sht-toEla??0*f4!Rx1 zgdn|)B3YE*pZ98m7MYcCk*~Zs zXVAQ}g^QU$7eOofUfTzRnQV50_%8ku0OsHE*j36VwL}d)LZ-zH%&x$-F-RB%{CpL4 zsj|lGCz8M;SRa4@Yh2U$;pc@A(M*MG``B@!gt8wN+$n8zh6Lc?l2&N)i*ACOb_20h z=(opa124)N`@jKhZHX5i&THOBu>h10bu#S>J_6Y-bhzC-ZGQuRi1;u##UNv07P@jD z;-p}=+3dDJ2C#&q>KDxrV*IXzTRDT=9${n-S zM_P%L%a^^;k&880SVhMvv65?+Yej7BO&@Lc3~&0-_Z8I3$)5E3jvfY_NHywjU>?z+ z7W!~s{RV3CMQT));dS0%lbN?_l+ z9}78`_^tN(;YfcIb{_=7+bR;UQZEiru1|LrxS3)db*SZDFW`h%_?_id+R&aAa>HbZssFy!j3Nk>JOqeQ{KDHK~Q#| zNpn>2TmEg9O$YC+9@>O)=g{YxD z(El6hv09gP%MDX^geiM~*t%xU?hj7>tHuZ8V--BH>a2JC(=wzF6T0L(PnBO2F!~&B zyO=M84!^Kqc=0IM?(T!-ha#xo@lPF|Id(wDKuePT+D#ECs5kQUHbZ@zr-!;fvn96} znD}3++{+}+1BdMd%G4H2wFH~`k9DfcGM!`mo0JZ(fCm4s$2$D~xBQPuR5A8G5uG~J UuN@!^x5jiuMN2v7;*AIY1Hs^FqyPW_ literal 0 HcmV?d00001 diff --git a/output/20250204_040012/vwap_changes_comparison.png b/output/20250204_040012/vwap_changes_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..2515e8bcd02240717a7b5ac847737e78177f654d GIT binary patch literal 48849 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%0A${7;3$dc73JBl@GwYR^9Y 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 F_@A>5_<8^U literal 0 HcmV?d00001 diff --git a/output/20250204_040738/accuracy_over_time.png b/output/20250204_040738/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa2fa1f034bb432b32f2a3b6745b6be4c841fde GIT binary patch literal 41721 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

D~y6c&4-s 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 M@^>qbVtv@iU|0 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 S7(~I3qO97LjNksa^S=P1ZT9d0 literal 0 HcmV?d00001 diff --git a/output/20250204_040738/hourly_performance.png b/output/20250204_040738/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..083b83605e4b5072fb450fc324b167b31bc1573d GIT binary patch literal 14910 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 literal 0 HcmV?d00001 diff --git a/output/20250204_040738/vwap_changes_comparison.png b/output/20250204_040738/vwap_changes_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..308127b87ce9e58504ec682e18e98d2c49d4f8ae GIT binary patch literal 49016 zcmbTec{r3^{0A&0MbcuaWGR&`T7|pY#2Gwj;{e@VWrs5k4+1E`ggj z^h~+9ct*ImxUF{W1n&fupEv>jx#X{Ja`E@~@l!u@#`Av;Q1bS5J|huFasemV?Q_H0kBdw29_P=te4RX3E-u{U zO})$JL8Rd*rNaf{!@-u12=F6eBv3ZCEEnAZ8x;I8BUfx*8R z(56^r^?a}RFRU0B*MvN008(w?3(|-5qlLXlMtZUB+W-7J%cZ`442Mu@$VQQU>u6iyRI>>&sH1R{O z65R2?mSfMW$s(t%;(pb75-P37n<6P2%bi9K*Qmt0Vz+)2RdqC!<(V8?TqDea$ypS= zSMeO~qtHIxNjblA6hqWvjyNjXRFob#dCRK%qdxR~$a04o;q!yG^Zt@iQ&=Xc{M$>> zy3U+`Ru_L0Y0o8s^M%jAM%)I9T&Gk0Vmdx3%Mh7uyJb?xVjc~Ben9#7Qt5Mlp{3+k z=WP?(co?GiPMUf@Zeyt}hz4eS%}&l!Yf)vA5NIr$L14_6ciK$TF&VdV(Mi6c<1I{axwqoz6NM zjvNXL8jlQI9e-Y@v&A5I%T<0j=lD!xw@Ie%HnB^-_oK-|ebm7+>9xuy8KLVx-kq_h zqWpLTCF(obeTb{H#AeB`5eix!Ej%SZGn%xvJZ;2EE}nfdRLF{WPwLW0Z-J=?^xB^CW}VgrI0q?HH|2?!TiE1>^2H}o*Fpp z$^f7C9bpOXl?vZi1Xv`xL8(E%q6R8GZJE<;N_Fk6i3-!)-_GDxn|^B0>MwYg2aqi+ zp~=Lh$+l_vs(4kNI=*yBZZV%1&)49Nrm=8-rBZNQ@Ap@S9mO>QN65jEi+nZ0Me?Wn zHBH7s>HU^6-q~@`Wy@u2yj-f_j`5JWf1omF{WFm3D`f<)I?oJ0R#ExS&*1cRI`$90 z2@jMz8?jb;jfmRh6A+s~%J2i{^hcjq121e&=7xquGWg=--{7#Bd?U>gh|}LD*Plg@ zwny>_-@+AHqG1C?*2=8Wt<7mz=i@7Z*z|)khW?2QJvbynw3;lY%}4gzo;K1~b;=>b ztbX#VbI9h#8u5nzB|6jDX*T7Ua|W_f< z#__$HcY2zC&rOTZ_iu{E?9_Uf5wdg>PrAI#CHGe1y#3aCQn7tQC^~Z$$D)?c^%vIN zy_twbT{Bd~N>Ck}V*+A}1CQ~^C#!i=QMM6m1bEgX8IFX|9iI`BW`r8QJa@>$A19M? zhOX(w7PJokquio-Cbvn3U2^aa?>g+}OH`Tg zQLyYOh)9Yl%DmtL;_cRAv!vHvw{-JDiw;b8RBpmvI58jzce5+Ze_)>f~GjYm}NhK1a_%PiCW_dBt z;Mv?topnYeY`SkWu)E5~l($#l$ORu(7UNt&Ec=H{M(WYZwz6gkvW+tmtWp;7`Q4wL z$trCff>;antYuo*76BuB>(0Ffn4p#s@{|j#;H06A*1Ad_ePm^QPS3~(I_IrXWP@p4 zXHdv7=$LYw1GC7KWZX~|{-)pMWjmR;^TWRKE@v2Ibi;6>C2W?|xqfty=GMkCb=8fO z&+d7=ZTsH*G>DDXhzfe;$n4YihR$=3F91YyC4iZLImX$`1 z2iS^B600Px3X_tbyW>mlkgkm$;)}WJ2A15%Iwgj!P_n4{?mWB=v!HXSPtk@E;IXw% zJ_EPTzV>>=uV=)RD}BK4N4uY;`)Q=ejPm6$d*)2HbVozm3M{TYWNI7NJ|}a~@E#w{ zz6)K6-5QjKMmq8B5gw5{ae&8zPe@4B-mgPNDahRY2qaH_?6g&BCc&^Vlbbto>d4#> za$~XCIluTz>Af#@Qf9fgghl=3WKBv{@3-t@)-f(?m15F{kvZ>rS^0#Fhu;sE^jK#Z zcpS>_@?kM3Nk~3RrV&3)Vz6J8l ztfbN@Jdl6Lbg^>|PYb_V$maacX%qJ0f#7OK+fA!Wq^O|a1$f%w*5?#NrQ}{gWRni_ zIS7A}--Y}YC1YydwDVZV{J9>xK0nhzp{I?(S`pI$Od`C_*mykK@YAa!Dy@-=>mvHP zgc{$-=LW{KG6NMZV^$*swPzSt z{cb+ldQy)T5+Q5l9MrbSF+oSd&R{JW*U?E+L8acTk9f;bsV=)cr=hidTA>S+G^=Du zx2uUJ!2%bW{S8(mOf{s$QwEK#WbUj82zVA=%GX|0ulZyQZPx45%8au_XHTW!BD2nF zDXMSFxm57(;+!p-`NHsp?8SkR0p}YF8~qY`Ss2`-?wp$k;UD#~5Kc4LLj0|aNcCf) zss6@wN|EJk785RmTfyOfBoB6W7IiK6I)9u>W~^cGFuzU{nKR*db9A1et}B%kOfFV3 z7}&tyeEh0wR4|#Gj1ERCJRaCB%kFbWu^?xQ6WZ4Im{yCE!O(qJ2U1IWDgF*dG=UCJ zN~{+gG_<;dTI(A3!kR6bjhF3~b&u7O#MCQ;I|7;%R}repozM)5`m^<;U24uNl-UTBGqISs47xCENp zbd|QMfMHa-+q53;lautp_sNs zAr0E#qsZw>)?6Xl)GoB=ri}jFKyk_j%QY`e-_;fAADf>^%XG*cT%omL5p4(^c z;0#zOR_};)l^1kr(jJ@-=2vN5?i9~yc)vwgCzI?)0?Yi4XVVHhwOQ?K?a+JV=# zRS~}k>ZCe^`csDcp(UN`uQs4Q92iI73Ge*&J64B;72FQ4t%$G*Rsdmo`dMZ7IRo~^ zAhOks+MOUN+z_AE~ z7UR)$nrMMlnM3sN%+7ZqYfJi6@QsPK+5qwt=}ej5jSO^}20Z41OV{0oW>qZmh*t0l zY*{tC6G|hTf6%I@)UdH6#H?}n#>YJTcHOtzose@g!9NzD{HUkz&I6QB$oDl#gsZsq z`6LFS7R&mw#C#Lf*%(88?RVFxJoy8Rt!@-) zrk^hFjPdk{%+K-ie)BG(EcUYdeoVWu@O@q3QWVPkn~!eiWyQNaZj)s?ZU-}42M2NM z>*d3VUn}{I19H7^&_Sw}m`Iy)kcaeixG{@8n2m%@>Z4*Ng}} zzYX%G&_-*fL&BVZTDM0R5AWsid=Q>drU>;v-N2&O2{oH(4F$aFaaa2|AQ+6!@39gl z(aCr?Wc>0;HyiV)lFGdwve>Z{9klnIe0keul}vB09iyMR)c6L9ZKrWRGNZka8q&p% zg(BCsVN&D9wCRfRuDzeEX(TN1H}6U?>K9v=WZ8(Y7`$rd%0? zy(pfs2&m41@Ek2VxZk5(r=X#Df05We^B;u{_UI=lf@AD+`GS7xselwoikXdKzG*KT ztlH`PscM`_rnl3MVxx*Q+`R*=!^La+>u{H^&7>SC8$G>STaRzzbIFts_@??G>`{KVUHosq9XEM`;mgOTBw;|`-|f-`1P_Lq5ftOy*$ z;u@W6NbWWs*61pn%7J=PayjaB2B2lE_F;V49jsAs*bHOcpqq6nFys9C2%Y&Fx0bnf zKtqsTEw1iA=q?dWavTN(xyuy%bzhpUV`=2bqw40FnJKMmw;w7>=(QA*mo{{=O4$rgVgD^z%c@#AqSYFQG8wZ=mR%MGI#zi9M`TB&K!yHlz&Cs>?m$t)Jx^D&T%57ECihvjOs*aLdF6o*_O4D6kY8(XTxZEoD;< zyLEj0=ax*!PJts6;U?l{;`WiYWkR?=lC$@4wWt`nMfK0lnrGDQ07EgMswI}{{Ui3mexj*7Xsr{{f@vMCsQrtgiOXLz6dRYkQ6)5<-3Uqx@`d4G!*E)jS! z_2EkQpswq3kI{m&1485qCa!qB^&XloDv(Z=v6x$U+E|;f|?3r?&59SIk zst`G4=#KlOf2?L|oJDKM(A3#pCd1p`dUN?^h9I#vz%OaGldq1>%$Zrfg08aJ<(i`( zyC2b`Ud+rfT+P1|A6%x88Jk8cW4-O3E_rmQu2Rn?L%(45TscecG#A$+;r}Qv-?82~ zzoWOut>(I}3y1NI2pN9TzZXz1-j3|6+TQmCnmEHJ3^_@xe&|@$a?iu~lSB(@71IBa z+fMODJ`Tqh!GN4B-kjm%>*b>h-70+UAGkwimiRpUhZP?~_{Qud?akHSRIvkmzsx-g zeIU)7y7`}No3CHRjt9I7*B&btl!z*ZZ3-k;@PimKzED15SZ}izJ@GO!S{W!U$(0 z1=vCXT*`3g>o9wsh1y|=4VuM~q}3&A4QT9&7{9sc!?r`IDPP?iKKprnx-K){cLqum zj+_p@vr;Q}HK_4Y18@mcY~r>-}}pXCL3&;@oxQr34q z;SS(oCtqK$o6yzPi6G?1*5MAvCmY&*`oy$y(&+`TMS-Iv?SrG1%rTYRZAcy!fGKX3 z;9d%xg+OZ2x{5)2K4>Fr-H{1HajSRd9X$>e#u@d;@rC#Mj)Cqz>aL*}l!t-~VBEW! z68YLNhhQF3M{oBp@eweq&^aHyZJXlok?||Xv`W&;!|y=+sfDdtSjSJTrjhRpa!Z^b zk5O~?6#0(WW+ht?!rP5oN<>bpM`gC&72jGJzBaQq_kKpjB44~NsE8X5i9=B$oBSX) zynUZ;jHifvG{9c`ctt_c2i1&!*nu)Ly!1`cqwujE`eC3+TyYJmW2Rj5 z2PRC4{@^guo~N(&>eXetW(Yb@{xzn024`qK6L9M#iC?|MZ>s$vE9>2ff`VGB#;vEj z4>D?%0!^%W65PJ+S74m5UZ~k8)=Ca?N#DV5JQpN;bU^j8uzz5e`$un;nKB2XpgA#t zMtWnXWY|VG=0lVKlRgyJ-z-R#VfdM3*amwt=pRyv6=x2ANOA3Uei0LE=r%XuG#9!nHWNA2LO4+0OoA-}n{K@Pv;Ji-2#A&>Sngh{KUq!>R$h z_9N{1%1+W%c^xIU^L_oPPChNFSJ-6CloacE5xnx-d{@dEc7Gm45qAPcHBkQCx_dzbRhnzDgq4=9h*e%EF zbE>9pb;7qZ4u0fAbl+6QN(6W2hT_(>=q&AQL-pAccvYD|&t2m7S~${jd2RI2 zC@sUrPzhOae&jVR_DZi@I=&E%n}{OmWm17=-vT|d!!#^K79c7@f#)mKV(&WZ1U+N$~QVv^JT*!1Ryp+X!GnFi1hMb9L zy{lCPFk&Y%;_iPJJzzv>RQ1_;bdXI+&TF;Za19U$SA$Y_)q9468=}u+XZ2 zuI}XOh(Ka`dqR2cLX{xM=GUaUK=*eoJgN~Bcj*8 z+XR!*z0uV)Xw$APO}m$t3Q;(Wb*e4aPUttB)lIKU&(kiXuc12?k?+VVb`>u1tWU91 zFG!u+wBB)Vtr)s+bH(`_2i}793Xp0GE0oRyT7>k%=NV<(;BZ6iW^NKJy27>hlxc-a z_YFX7r2(#gIpW`YC;ma(yOZAK2qv`!$m$0ROmm|N)cow2XagVxn-*Fq!v7<)l!Val z>y)a|FhgQUf zjUt(p0QSo>xI>qIy^uaW*_!xLNXhP^DH?`td96k|Gz1VtEpu(qF}8-q0-9ehaSFWc zLjdeg^hfjW`0El;7raI;n&ulHgWDNuE`DwK8g($iTiJc!bk&*Ql3LGszYW0LrGfeJ zzRnY#@Z{{8LmGIAps{W6 z4^!aY79YR*Y|oIp26pc-yyJPFe@(h=5g_iP9b&{hh7tNgK>>w^RNwQJm zy+nHeHKhSP^}XNpboXI(r(|0si*e`ShnQG~1~xvK^aU6L^%_$TTHi+5`84vx3oBUM zpIMB+vw;ioA~j&ZntDmXx8+!TVM(q0Qm4+=JcbRZY1YCc-JU$y1xnem~4 zKOK}NrX8Qi=|ctP1*SP+Tbo|m&9}5@J<0ZszrTj6&Zq*0+R|0lwLCkFDNMNyoR?V5 z)v<{9yo}Ic;`Ao0_vGz&dOtyTQseax`KitFPy>}(umuQ*BLVBI`(Qr1lBVk)Eg#1s zm@(!hc0=MRK+ULGV}qIFJTo|VXeZh;>cGk4#5y=Uqs^6_mhfS^q(LXZJ~(|nwR==q z6sQU?S{)1uW zs;)meBJ!l4jN(O<_qG`V|EwbJh=uhdsv9K7Tcsd6gAd>{&ES76!4?ZZZD3<%VDgFL zC9Y}}3aVlbni5|1Y4ydwuh`{#n*JSs^DriGH)1fI*a=mP>f8IgRGjOv?B5^1oum|i zo$61qWiMbX!q=PJiQ5zh5v8sIyo#xOFGO1Uqa=%8XNAt%)Ccr_x)V5^2Dce}!1UV! z4n-1$wTnv^cKu(^Qp(nK(L(W4ANYuRN|F&9MjpQGdu9+02gB{`~#5SRJL` zkIJzGA7X!A9SOigEr7PGU{jILx-~yi;7f9op*1Am{)ZpwBh0JYlY?oZ?M2sZ&p-U7S4SVP1+Lr^WB&Ku+1K+Pi9t)E zSFKPmp!jtXGel2Y-BqwC@?q|mh1OQ^GXe-J-0;XHa7}mM_Ep}a)N6Nv!ZrZvyMdC-goX2 zo4U{h{(JVGwzS8AM~2=*pTF5uc~NTL9DSiFSv|cIWv(;+^x!=3Oe@>YG-whj=8=-N z*65ps18O!wkOZ}EQUxfWm7sH+7)cQs{}OU-@NC}xQ|-=A1^kZOYYMsc{%pp6)hNw8 zHP7LRPze|Q1#nuRQ<9dZJH3G)ZSb%r6m3`In_SgB$r{#PEocMQ(HjRb`lHxfiFq)f ziU8`!5Db_-NUA$fCW$xhB&c?u0ygzQdX03*|Bm4AfDTS6H=Qz>_Q##p9@Px102g-O zbGV`maD{W<4j*EZfOmAkJG;%XD(T*rXD7YU(SDKCGQv#z_rWqpvynV`LM*W2nX5om z4Q{%l{r6$KkRQ?av{_%7bp(1OhCv|^5{$H6f&GdB#q}$6v<~hK+CefoOKEG9*+6NL zj;#PDWP9++%spWA;O@LXd#vUP)Y-cP%di0oFRSQs#7?Eh4Zvb1wpM_`85~`TwJ5eJ z@vg%;?7xBjEb(``!LoLZAn0?G+_XAsZJVMSs`AX$=X>wKR{Vi+E{E#u-<%}EM==`I z>Mvl8sEVS1g*_cOc<=d1Z@=CGtK-Ev^Xst2Nu zR!skwjCkxbj73yYMrxEvbx(HW>^+{00KzLj)G{`lhrd>2^3qAUE9ytp+|0~s{ap#5 z-(OKmu665|F9gcw45{LV=KntNzZ2kQV5jr90C{=He%XD3$q~u;qa zxhIOJ-}Sev3JL#-TIgEsxL3!$;qWaw^8A7xRd56j{9PVCp?>3H3khYO$up%CDT*y_4UPmrP56{bF>(&JO;4#&wQg-jrhK- zgEa;gWyh$uD%H+>6iN!9k%;0ci@%#`^oyXkmDNeUz7ol2&0eQdNC;ZM%Oq;s#E%3D zX98^mlJJp-)J-8($ww3Ms;)gbduU9+!99fK z%?I7X=powcGt#0hZGcR9N?(sLC{Z7+e^g$0wgDhSvmI2_lI5-viem&qD<-A`LBl$8 z?gETuQtflE(5~ilKMK<337;=(=Fq7RQ`%eL83qFHeekAC+C*h{Wx!lt*{!5U24<1pT9g zT`^U#{+!bfKq05R2@yEnB-SF>lWyfUo{fLl`d01-0f2ZS0L*&Ki@};m{<{G5i-`OU zC+RAQMCCiEYhR5`J1iNxnx*13GI&JA?Y<~1D64QH=Ih80;OUiYD=$v?R7cSpEgh_E7EX|_N5A}Wr9b29dfr9h&HQwAt%;ScO9~76wyj)xT9m}k<*MBL3 z0hy1SN1!+%r^Dw`ylUk-$Zc=s5`HlW-VH7~9tP z=BD}myd)yR^9%bo(bZFhtQ#6~Zk{gFS#K%25#NqUFv&k!aUGDAY&KX0CBaZ?!&ayU zbHtC+EpOuPfGI!H2~tS4n^UNCi$u87*GjMb5SW6`fMX#_Q(8#35P5rkQ~reI`x4Y6 zlQ{cg8x_kA&`@NUX8kL}_K=Xm&(N%TrPyMxEg-(w>DPvPbf4=fyG8u1mH8MpUUek^ zGkx>r@Xr_A8?U;`@VK4GX&@e^Ng1ou!Xm~3_C-ztS>QuqYAiA&a*1zP|K9pRBh7I` zrI{UVoWK!k$Ub!K0XzfT4-8mZwV_K-Kn7zVl7f0GIFs|rW+{KV-Vinsz)>^){c1T6 zQI8cr;)2kFBG(|sF#b&K_Z@$`-oTP*Ji;yPc2W0K?{tq{+=k}i@c58e%PV8wC^ z)I2B;qRa5qK0-58C&CAIuQJrK@DQY~c_+2jNSt5%VD~vw_ahkJo5TcYv4xOTAtl-? z`<=RLRPoo&UGz*rmqkl!j9VhBz%k&9fSOgpsXHT4d}%B10gQn)pJ8YVm5}wW`bY+| zflWzeXzdF@96K8@XD-@BzO+;N;=QWoYi#E1G{(uY>N!clyo>#EPg&-o^G~iT&#k%1iMbNr| z^x!!;{FYs80pH5Xa9Pgv@ml%X3;!7zarjEu7HgEc*k^OH8m7~)#s-Nn zpI9+-BHFghOnJc($BX>D{G_ zh|N_5WB#FzaHV^<6+P6lPAqcDIW6G7!H2VUQ>CSWP55j0rzY@-5m3?89WCTtBM%qY z^rVyQjdEdP*_SuktN(z+Qu!A_HS&mcNA54|pBQ3I^ylvOihw9y9*Q@X{*JuJ31;L~ zQ$a2Y{_-gd#H32NZHi4R2Ayq$E-1W+$^B+vS!6YSg()Q)1AS^{t_WgboptYIJ_jxS z+HUj04Et61Q=wLLdTj7p-q^!p(cSkSVXY@#=lWV9*=$&jDOJS z*>Ec-Q|DD?m9`L=FKEcFj@N!_M9c}I^ux0>j=?Fq*QNL21uBl(x=z0#}&#$*}okLKW1tQZ8Yf*yUTj~`kJzMuZ(YiLiJ1J zqZYl-44SbT$uC;_?FJ?eW$1JNZA^wpaevev46=K%&0w-N6<{-}D(LHe=!o^sLI+rQ zg2?urdwhhq+zPVK!q9n@y}RG{$=EE(bHk5@*xdiM((AcQgxgLeT2>s7B=u{DY_Z|x z(-~^L;rrnu_dW?8ZTfFgJhr=&wFIJ0DfQJZr+KJ+Pk`MI7flaa>AvoD?kC8()K)6Y zu_TN!RaYD_z9tXq^3l~Oyl{p4JtI%Fh-`tR{gVdye9XRC6}(-7-J^7CzNP?so3RU( zT85{2=1|;%>s7o$|B#oYd@?RR{K#J#u*bBw%v6UpD8c*?09xEozDc%Sp(qb&?s>^s z+n4<$Q1lPuBq3x;pj4DR$J*fXgJCaIoSv;ug@M?gQU%@}!Ju z8?Tkf20?*93I<<$D+IHbFCyoLQyp2F-~p%$wrpi**HeQN>V#Y#;g!au4JVr#(^30# zpm`~lA0=Ah-7oLNq?zcTc4%0%WG^3X`SQMZ7l#TwyY!mFZ45s9X>;%m(2VYa?tQat z^@Pt^x$_n&QW)e-qN$AXPCog_e-}=b;drUb!s^ee9lFO&<5id{sfg@WCO9MTJ`+8HK5=cfY?%i zC|0F+Wh`a{eJkC}Sw} zH1r5%4R`m6Mb^UaArOBnsZp6#3F%oHR8fHaS^~@vxomN-k`dExlp^5YnoPrPdaN)19 zV$;_f!@C!tiL|G*{|@5X%k@O#!1az~r|AsZ^Cmb1s}N$zpIqk1HeMxtdhM;zTasqo z{c(}x{^$5ddbl7O*S@L+b~t}~dKhW`gL4Q^{rW$&5m!~GS3}aV@1a3iL)!)43rKo_ zL~A|s(0@O;Mf>&gOl7Z;j@BBJgUJCy8;-z9g4D&!lP6COf#~$tJ3`G@ zoEv_kGUr73Fb280*~G6MqBDK890lnJoIfk3HT;}b3xp6PL~|VIFyKo!`B-(6^Z&*3 z7-(JKyBNJBAz*rR3{IiV3aUkXC51P*n)fW~iHpv-@OsPq)W`Bk*8qd!2_(L!<# z1c%SEZ0jWK`ds0UBsS>L7L^{>Oe+G=56BPQfE2P(D+E%~fW3Q4B3DeF#msWRF9(Bj z;3rUfiR2nDVy%Hh)YmIxdvo@Vo~do|=#nbW%V3Nn66Li+Bvo4H$Df1AB6tgveJtd^ zl>Cjrrrk1w;Oac7BQ>f%W4e|+>=)68dw1uQzvP~NbMm&0*T;mt9LUMZV}V{4r8f_> zUk-@0EqCfD0^E$Mr+XKCJOJq@3XQX_L`#LP%ycW6>rB0Od~=2qW1jE2Du@A66k$3e zEPV6M{Bteoi}sa{<9I2|lRmj@_XEAn7BGNfz<#JpAc#)5G@a@Q^w@`uYarL<1Y$=9xK1EW z5;$sC$r;O%R3gyfl}ck0Yja;+nFU(fkXv8=IOAqN1I34DqugxwUYgivNiSx<0U5JF zkd1TU5QvZZFKqzgoCk>`!^MlEADseTh zRE@nL_EV~1-BaV|YpIQK_%a#f-EQN+g`7*HCvg%7x~?TYTOEEJ78*@DNk=crS4H{MSJ0h$}}9ezNdlzqH3hOMD43N`5ke zQ1IENe+;nGWd4u+Jrm`f+Jx!fDBlgv4g!uE4fct+{+pe(kF4Z-t#(I(1rq(zFJ(ANIi6Mxm_8$OZ!2qP~H6Jw)uCqUPIHN`N2@($zi4y zD%div80Bv=STrrN<16qN$~B^VCgQKx>hP{ik3D@NTW@i(_@KxU^=DyhI$oPup! zD;=QE7El`*izzhZO9j&DkLD|WS6EA&)G`!3W-sIEF#CwCf>#aOSbUDasyLf^!_Nv` zoQd5vL0`bav~)nbewE4%rw7_&TDSUSO}`c)5gah--g|BISTr;J-&XLr{#GP%eF~|W zkFWBLF)-z+IR54KcrYp0PXhSc%hP6uHU|E3Vje2CQ$0VjkMQt zh@3>|JYZe5qbvCzH$bk=KMN;6uP@xW4bpuZOq+x+j*zc9oXsWRdscadX>Yu<_t}jX zhtojGXyoL*4Y^*(uk?qpj|J!q@{TjUI1UURG@O~SsD%}E3H zkE3KQX@TNqkPL+xLD?1^pbkSZxS5H_m<*e>9Q|W;jIiI|U&{^mdw-*Y$frX6pCI=+Yj{HwOatmA zH!%|_bl^q4)$O&f4MTVIGl#?IE%>TqR2<7o<9)sl@7}kY2lDOhN1vZZObVAbORDwq zhJB0P+_SJS?j)!=rZC!HXuz)gT&8yTzh>Z-z0W-B^Kh{22?%;&aKTb|^zxw6-0qUQ zkSE1nd0D!4+saXS!g~t&ut4LJldtHv)zm_T|IE;7;Qyg~i?zTJ!RBV~>Rd2il&H`( z$qktgy|M2n?IjA+FLGUG+XN?en@Cbu-G-?zfMIL-hdH8aaIyOqkhvWI`SOR%U*2M5 zHbI#{2Jxfswz< z%*Q3%!LFErPj|%d-%qGOu1LCwrL^~iwg6$n6O`!N57UDGagGe1D*vh821y5ING>&R zxItDZCRgOV+u`hm8X%OFaNCDhp66>4ZZA}f$!`q3kDa!{9!|a?;w&`ssPsZD~Z;#Jgvc&1BmV$vDywJQ>Mjyq)fhIFp)h8ps zV6GRmYORXsole`h^nTaKllf1Ake$xRQ+JY2oZ%8XlpVA4a3&aIA6$r701sKj-62alG8(-h3`m=CY-`We0A>f(p9x$Aph z36ieItc=%*V7p{3+AVS9FL@7c|Dh*w`;@B3xJ9)yfE-qG^2IR9rMr`(MbSqGXg0gd z6phX4#pxvAZ&vdod$TJ~&P^7(`SLV_q_hvSK;$IqwB18lA-IS%tQ>5~R4 zr74(hXsIElI9PCSTdj`bNWtbbO2kq!Aac`f^v!<04&j}E-e~bEzE8I4YK9_z3Y+r! zb4$$-LMIa~Ycn{e1sb>Bn#T2l5~&otN6`TF?LkB+{XWAQ!GEQ=gq3dcXA#$@xC&5{Ledvy=?!a@6I)|IvZg5Z37JGK8I08%djB;Nrn9< z+tWi#^XB|pRsRCqwM<;4=+NA`UK z*BT4C-FQakri;(o_MJavb>EBvDXE>4hu4SDP;K$0+=w0 zYRAjA``WIC&SZt=(_b~gd1%?!))v^$B{#a{2QIIY>M#BM`77?gl4UG>5v&W;0HR0$ zb}a(Os1cA8kF%XsaIsmrl5MXeiR1NjR`t3drrI9+=4AFbqTJ~(SK5^b5MI|3-Zx`ayZ30_hmmF40RL>tlg=CzQ9uB-V z&VrAwW$BBDFF-GA{k^QXY*5qc4UPrx!|^84_(maXIM;-suB_0vN@?dqI)6pa{(C|x zXUb5y45^Om=|K9?kT3xK?g8FcvG6-uq5adH+tzEFlqx_oX+7Vb(`-@`{{wxG?Xm$E z0J|c!Z7V%KK=O?n+39cJ3ekvH!odd9N_V`Hf^nv9{*?WR17$!+9t2Q<$TFaz=dX?J zeX0`TJ=7CBxPV-7k;H{9zm|N^y4uPtfp#RTp8T()Nc|Mz9w;zt=4`vX0+)g{R-pb- zk^CZ5%?sikPMlWQd8UqYrIwkGtqUzeS7_c07Oi^$`Q@3*YG}(b+!8e6&xKZ-^cOej zLJk2jT!T~>u_LDx35*Jh61$qCyK{fb0jKzqO^wmm-V-*fq*{!mCCpVd!0kc^5T`s^ zfLr|Tb!D1s&)3sWozMSU{#!bPb^;ZmOF&BEN!=6-xH(rutEVq;!=>WCFjYM_4xRnS zqg6-}7kk*T(kpGq(td6KQ$V15tIz$}vaP0llA){qqJeKa4 z$4et8S;;Eh3)m}>E}if{<(un-Ecn2~X8Cc}&-aGz7)Kbd;es(k(-|z2GKUKx-d&IX z3K+X1{t?$5_`(wP;-=!z$m$2`VT13odMgkTSyC7KWCjvZ?%+*-IlmmN$*PE+##8aRg)Uu3n6IR zq`#k?1@?GLISVNr6&S7ZTpnk6H>|ZXg%#ShHwRl9?RS?#vr-^pZ&c-4>>o8CJP&xpUGzL zYT^h{r;Jo>D_T4j?&|bSYvqSnZvD}i$D}}o*cY>aY(Hebru`s#$Ucm7V*))TaqfRr zBq?4n+FjRINyRCWww3Q+i<1?=K+f3BG;7e__ZJ)#7%jAT&4m3YIZ53Icl_z?r~_by zEjxiymPq3lSzTlhoC3(#zA)t>zp(g!Cok8oZD6jALq6vWl{K$tEkHe;&DXR8P(vGQ zq4o54*4SX}Abfb?-zRxd7u=x(G9fzDi#n>F(a$)WDpkGHCB1R377d{lOIXv~|53@7 z;zC3YbZRkE`+-->5mdkiiBhnio8rfc)n0EoqUJSU={->N0SWe^%az1}UG5+uW)1Lf zkxTc-K#my*;xJ|&x}cjH3jmX zwdtFojId$JWbJ+9CLxm3VtKG6C-~ zrVGgP|17-PH^=2CfBrV_CY3-n5R4&bA`SQ%Wx!k=}T&4c1JjyDK~YtN_Z^Fxb~$41yG1DIC!O zn5y@0zdQY~YLsJbS#!EQvhbF6{ESM^?s!nHZEzu37ikftL)9kE(;MN1y`N^?&vcWI zs6;bD(8f>JUUmI{WLa7roKmI{)wIE~FQ*JsU8+dI?n@7ncerg+2DuDQ2n4cU@^(KN zP`(=0GKe{N0K!Vu=2mavV+7dpP}d7o&jWro42vy}UImV{G;g}+#d(rvrPJ$cZ)Vv? zSm_XxvTH?yZHxfu{DXq3*VxnLggm&l4gQ$ktt3^AMLiu=j~CBq>!;f1heGSuQG%m& z{$)AO1Ulp`Uj5I?h*=65!#Q;vA%OTrp>}NUsB=eh;*_V*r#uW+Nw7pviGWvC|8lU9 zqa^^-Xu{JJ?7piLD|5abu6*rClmp#uR06?b^jK7vD*aft|2%lxDPnzo7fU(#{Bd+@ zeGAp`eQ<^{y#7|oP?Xb}VZ}!QyluzH?4p5RqeZ`xbxz-GWF?h*;HgB_s-CRMY9~>( zO*xo$hhxHkBaQZG-n*{d4lYHQoN%0oWVe?zcg{Aq{QRBc9qc)5-f}A`#tIm1=jjq{ zbJJJn2-9Du4J;VvWT-L|&ePp_n()}H1hj!p_{uV!*|Bm@)}OrI0Nj(;&sq{P3##gz3j=A*1m9AH~| z%qW=n`&j`4{$CDh__JjT%O(Ze8eBj1f6(Zi8&s&w50Xv^ zy&;-nQk(6mWUfTg5V#+$?G2~MyYTSMpK#H;G3B>g!T7FaWykcZRD<^RnDms88{ z6bVK5f6(6nvKdmhqMgmadC@wbv5Bhe&W0PGBs8!D$ri^vO_=MbkrPd9araDL=#^#l z?qP4KR8C?G;K;In$($|tl?9$4?VNme`1&PMn%&aASSwrvM_ZvU3JG z@6K9LYMW=&Oltqaj5gAEYuTH?$Ry;^gJ!+a%=KB3s8pvyk&Y^x+s=c>l&@JY>W5iD zQyi}k9WD3t9(>1l$Ag^(_4oq*T#x$fO0^8`RKp@$=L2gN&-pso`~7yzfv1dY)Xv?X zd8epRq!$%Vm24PVOcxA|)%uZ)Vcp!iBr)S06gXn!Bq?3UEN@`_TU&CeYM81x?@KcHd2$U0>Y81-3r4cM>R z962?7YS*A}OraWLYm=Qoa|8vtB&=S-9>gJKn1gfl^mibaTo<2w%JbtLJChd)`JLkT z>~7@bK#GD;lWp)?`y8p6HEq97kP+2hk6#AmH_^%B!TI(+7(eIot9zrECEHo=d&6wM zMW0-K_5E^ug3MljZr90HffC`&%~41D*o1iU-j$qNR#c|0L<*~e#OhBam5zHWKx>VY z{nWE*DebsU2He`hJA=sb$xND@YQ9bT+=rihhHRO6aKyHXTKQ2w;f>K!Uce|T*}VWw z7^N4WHLRH8My?&(j=n%<2$>2m#E3^08E1tcklNcH#Yg9Y^6dz=w*?JB|IOn`R=-4j zXRXZs7C8$_0#<8nBB2t9pLG*&ZjaDGYvRO3Yu+jSD|5zZF5LjCd~*@lJIDY=7y;}P z`j>p;$q^>^HjqrBGw1g`Y})|pq${M*;?7<=Xr2x-sXpOQ5ZmR5yPV&e!M}>hL{)B& z`{(~*?akw;j!ZN(awbruR&-46#@8|vF^~dvkKi}u>UiW?7*KnT4c^t=C7$_${ za9DW(-DgRAu4Ativ-!KCw5^h_3*2~Gvt0CMU*XJ)H|rhT*QjF1Ojt50VV7&NB~=ow*s^$#qAcBaaNLJMOhKAhTqj+~<~UY`3wIG<5=|)_*qb(wRld zmfHqV)=6VCYiQ4iWM=ws&D4T{CTP%y9|>H#)N61f`nM+b!>uMGqsZTj{H}42o`PT6 zlcsHL$e*d%a_+@;=g=MCP=p6>&v&WryZ_`Wz5inBfso)25qmPG&6xMX%O%m^wHRxl zX9rtvR!*D8S6Y?FfuWd3y^0Sf`mL+hEv5&q4>e}bdE!-Oc6nz1qT{*uImA!G1Kqd0 ztbLzuvE_EnrnwZSTZPNO?eY^VwfxU-r)1&f2_SWOwVrIW#Bi#g&t-;f-Z zzj(NnDQcdf9jJLKzNQOs<4IpZqy{S1kCWDvDtz=25U2LWP{zxYOP=oi-aOpqI<#zE zs$Rm$e=3gTW;gyR!Y;FtmvVQLrn>iRrUgj2wz}lsnv5sU>;UQ7X{*1OXs)9c-C`{@ zO!}QqMU%_5d6R`kkIN{YQJgkVmD!fc0qea7sYY?HEWhl)yh<@^sw+MFO@)^@*z%KS zGz2TOW^>yRhUz)hDE05fbiuX9sv`YksX9Z3ndc`TQN#}cvdG>hmsmr$b-MHBAcicm z96hg$eEi>)){`p`9nT2=S!r!zg9Vz)s)`QxXXahco6H>gkWW%(WGt2`E|o9io7S^+ zC`QDsev|U7g+EC8W|(O9&kvUY$n)57koL4@xb4~R47HoRV~qS;1KXQiLS&I-R^Q^~ z4f}yLT*SHY)Ug3vK=|y|*YZ#Cvfo za>t|)%~p9{?(4A~gTG4|d0#cA5FSA1W$)I^olQCTUSr&R&DR4zObMFJaAC=YC@ZHo zb`<)Tk27c0Rdy=QU}(+c61javI9Kr@-R$4q#Ljd=Vp1tKacH}h35I-j>^yF1+rxJS zq<<$RsIf*2A0^k~@lh$g?wDTJAzOTJ$8U{f@d9NXmxD%K-s4 zw1Pd1+X4yXW%^0Wd5P_#t$2%qpx&(G+m*o{wk*AGHbgh^u93{fG|4i~M~)YFER(f_ zlMyv~ko(%gh$ot?u?2YoGW>rp6nIz!l1P25MDE;(vt#~KOGVeIkyyR+im%RPdV7k2s{#)U>) z$g9twDdQqbGaOKWw6wf15kUr6AWb*MDyAfY8d!oVTU<9a^gI1=z?EBSLvUCeVnq2z7 zx;^i6efzu7Fjx;EvO#l}b^r#6>NAiq=UuBZ7fCav#cEdhrQWgY;?&j*XZ-JqvQ$X} z6!5)-d!kwdYPlN?XThnY=CBq@j2;+LveG;IS}Q4Zcu-#%`kX7wNa`BiH|6-j@dKOoSl6h;szfSPjct$K0cwKDv zV7O(CS!+fP>&cVJ0Vvo`rs_38I%xS`Ijk3l!kgIX=S;R=;qECmA1?D&XqO;aMe+ZI zA~ol-V(EQ=0WUgwzxAG+tij}-00EM%#y+LlGkeF1B*)h3tY1u*GvC2mly}Iy^VNHO z(WJYUU{HFt=emy2k}OK#|K-!y>RJ~Bz-_VYN*>_$nsYgpQT|-oySpVjZ~gFRT2$@G zWz7nOIO2Uf&6O7an)u1(I7>h%lGll*lyM~H`7c*3z9S>6In``tw*U|GdfAJE6 z4i);l;sJ-Yoa0Ro4g^85Q*X+_+tkSl(`DPCJ z^)!R{6DDd)Tl1@;Ih>qX48$aSoDIM7A{V$=a+q_|Re3i;mbxYi<9tb$y1OO>1V-UY z(?cp_K)Xm9661`1!5MPt(8T~67np&ju;Iu6QXC2CF_1pS30jlF^W*%9Dv$K4XqAp3#H?HpF~t$yQ= zPjL~OY1037`1{w8fWxs51eCh|rY*y-aE>;S`DEyK?TAnhTIxAV?JB~u|{C&KIBsSVT=^hz(5r27|m1aM7zFUR^?Ta10 z%EJVFI}tcgJf44uDA~X1b#kJ$Ro*PY{w?o(20F2$++1Wr zGa3F~C~mSZ7>m}fbrO-|erXZ=xtrg-RO3^wioO9N*ywRt`=`Q^*_O~ONmC{DCrec- zx5#-(nZAGP$h$S{cn7P(Ud2B#IT}N`pPByznF}H=&pnGppAE&E?31SIl0#4d9OQN;1kSgCD=Vc=n(J`yR0Ap%_D^-dU~YJVDo?hNLJyM&%lgPR2ul zY^anL>X2LQX}6b#n0%&Xx2`ZR{T3u+u`n9j`W9X(P30-sr93V@+cu5%QG;b%83{1V z^i~ZsoBf?|xpZ1xp6%xbgB}V1vniA}YI)a9Oz$`GkaS0D#Es)lw67(ulR=3{Am^Ra z#HmJUA9S+BJ#>ZuSPDlXz*~0sUkpK!X=FTe6#_n?cMW!=B?F1y7Uq=o|#>L@rQ zuj3SQp6te=MtwvF0m?D$$2)ja#8;(HcNzQ({};T3#w{$R2FklRs6D_u%XF2xUmV20 zwdw;myyMNvmv@$jdx4o)ET;X^Os?U4ILaU5!y}}EdrQ7&6F6NLUAl;oCQ_F`=9fI6elT(n2ufhIR1b-FN?F}e&~pZXI|80}J()c|5=CS!rJ!iEbUHE{x^o6eeFzNHt`a#$ zBAzc7I^LKTs~?+Y)kE$f6avcXQr92l4uzu6KAm(;!be@AP#K9z92kN_ZcU!RL9g}A zoKGE!DeB3p?s^u+I|nwe7M*u($2y-@v4^HY4dEBI*+eec#}h|upWw3ZrUyZU~H z<7u+aMBYfr6YJJ!y<5W}jKLD8K4m(psr_xPzKwv) zLf#j*=iP8ET9ou)xHI-!D+wg5yIn9Z_Qs$1UcaX$?tQUof4iNL!|u)F01W5lBo=nlHgTd-5;`C93A7d z_JuX9tcQTcUqWA2DC{o^Wz#Vk^LwE#F*UTZV8w|{Ykx=sV>gm-Ht)MNQ z%W5tw*Qxy&@5*+Nn=-5SQk>z6+ps7o61X;)`Nw{eRjzGItS$Y~(VG8QHKs#xw?A`F zz&&pyBd;$mM4DTdA}6jV-QePF$zM2p^YYvOOh*-UsikQfZL?bg^t&E;EvvPW531kR zeHui#Wo)oP2eJ9Bs_^(5f=wIn20 zFqIEjIbq4WS|5UA8WA6Lu37-*qXD4xEsh3yXVVsL{~ULG`*kto!aA!NJC*a>qrPr9 z>uPJjk(#g1=-QYDC3pLs4>kW!)llm_x_T9W3T()aQ@o7#v z4;|;Hm3{Zu-^p|DZ!LUfAo=9&I03n)wRIFV?3_3vOCuh)`>xK_`&D92ZOpOP7Y9LW z)Z^&iA%;qZ94L)FyN88yRm1R46_9GbZaX9KVexrp7OM-capxYn_$*T#%*Y0P-eHBz zzS^JNkW@O{=h53{ z&fFaKhxxxBxZ{3lU|w5@_*B+S^AAt1h1%xKh<()$NDo~ z*f>Qt|E(hgn#aheLmG;$Ib#n~T!<9W81+~MG0}G~_b*jmpZVVM^%RuQ))`sLn)@Mg zsOS*wL4)_a+gt>Ol}T z))<8;yStICa)8NTO#2R|s$DmVq6y`Jn=i9$Wq#)~7;8 zPbPSbLos)|xAMo%?;{0GN7v5v-ZqJxieiqW=;Kn>)!75KIx?9HMRvVe*0Z(f0SERW z6X^JUQ;%`h=>`R<0XPLuOju-Xiad+VaHt6tbN}9}LjR)NlbveEgO4Ez_iDZl6K%am z>S20yEK`lyVB$W$DB7X=V$ZB5FxsQK!H&?PbL+z@&&d%@If)uSCy@p@8JXdLIjt!d z)bAM8&y@~OwZyqe!i>Mjk?L`O21AmYM%UrMFLoQN^m(j`XrYi-!JaXPd)X|8kWAl- z84Q6;a!8LCNxCf%57cVzsSAXPINp8SNrPcu%7N4OC7bN!Svw@v$Hy6toM@e zDs@C=UrV?lu882fD)&b?ii=>{sLBR|#S*@dRS|mxh5kO~Apo7PyfAJhGTOv`rlrUf!eX}{ou;zJC_yt)H=G(G0UH9H2g>d|ykg$|fGI5E><9yhn=Q!H$6Z1c zU6NZTCfpl|&~-~>2XUdVnNJtrTRl{rUHnvo)x>_T32jS{yt2A~Uz1DVdTs>ft22cK zH}8^3LJct%uS!2>k@4la_)F8W2QfKgc&KkkMhd6LZ%Wn;at|fkm4(I z2k^a7;GfL>MI3+YF>)R7C;C%V%++d0JySC4$DJ`)&?G^bsF>!(b|3E#>#EboV|MK$ z8&?+S`HbepH1w(saLT!krSr2JXqF4ly%X@M1sMxfB$eRNa;SO${Mhm zM1X1(1-SjnsbM=O+Q|2V2;(P;(zw>}er^((W?WtYm&eqO!KPd)!*{ z_II~3@Dr~ttUZ7iV=wg}5m3px*m+7hoox4|)43od1c`!{vYZ7{hMh-p83H)$3_5 z4uN!XZ-a?`%FbAEeObNXh9}ohH*b~ssVM))L*Uc~TFJpZL9ny_gpx`$EI?x1LF_np zC)NTRyv2raZ7IBBL7qR;suo$2YvBSK!wqB*;3Y<`t!im@pthW8R#?PA_f+;59c*j> zw=@G16Iea9YU2xd!AOep;RAYHT0~E=>dY?<1$Ks=;K#n5-hHj$UWM=EP0^(n z*kq*;PYK+lR4>``v}7b>4IZM8esNj}j#8kDE$;v%lq{x6(tEi$%p?J4Wg^sCaDhtz z_i+<@kfhdWQdAp8gU?d=!MP0OiF%(|0-&y3`i=W@WN~4`qpZBQ&9ivRS=^2NWH*Ex z@>Q1DAj_2c!%wI(9G+U}&_)KhyTr<0IsahEdE^%1IC0kO|Ix%wJ!2B39q~J7ALQa! z+`NoZ0I|=ZH6YtC4`V(YqiI&ug2%+Enp+>C!CFWf_GH=2bt94gbufe1Ax5-u*+SZ~& zSD0Jt7Uhtaqg-2(8VkWDiod6n$9~+M{Rw9M7NEr?5h43uUQ15+C=MQRQ1~5}_9ZM= zrHU`|=9CjA4iAktdAS{qUi>-6!HRn?r=9e!)Vt)}L0OgzC?c4iDHQ)Jh zj~T{8Zk^F4fGs|s4`)uq81@zg3^$GiTNID5enz`Jcc`C`j_8f$}M8?=)9jy~M0mb8{Co_LZ zbAEsXNzK`Qq7dKceYiMH+dO~n9`jG{S)L#j!lIq~aXfqr171O?@2=5rH()1u@X1wZ z>+j|rB2$*84y?MW#HS?0bqK}?Hp(>HN3m3QwiPY?oNI3kokmJ015 zZ{xqVAXOtowgjhcQgv(k-s)*qrl3*!!u&lh5{R4=J|7^ZFBlZmV14znp+r%r!X_5?x~W z!(yun8u%^cBh`{63a1M1g`T}542!T_)*`85E~qx(uR#JiE)?S%m$1rKa9XF%(KD(J zpGoBBo3X_1s;xp>AhavWUEPB>MvUy1CsE7TBx21$*bA3jBUx(~x{O-d9Z75HKFk_n7AzWN#^h|j^38Y057d#2GyDn@|y))O*vu9SL%!yo9X(;D-;I0_bjshOE3~Sh@ zb)^Csq=?uYoE>yXW5Bp%G13)4#0*F8K*NplKi-=S#b|R>r`!J0pTfdHnW1`+4EdcYO21m-sOSzydzt5{I)Vhf=R_(nF#w4gAQmO^jq(?!`_rJ*<8+0CBtZ9G7 zjyKnmriMx7cd-~_=bNSpBO^4gdNH4ak@>2vR9$|1mp1bW5UO@%m4kOm!jzSx`2J9b zL_7gmUmfA7fy)=L3uA8#6Q2Yw}lTjzs|c z`CSu2x4qh=B}XgeWO$)}iSytO=*-zpE8&QWD94;d( zqxGu+_nad3dlG0gRI!YlPTbRxvVe|dAzT!o3cUXO{Y~XQreOm_i7bCsgoB6o={4f` zOsR!f?HH7YKI9Nkf~KJQzyxUkGk^c4zqm)E%1fwZOE>5HMC<|Hoa2e*sB*y%W$PRH z+-Eva6!6LwX9>y@%whR;2VQ~vAS@35s?Ts}AxD1PfhDD!&Ck$tG)f$YJ>f?gnS8W=hnDnV5Z70G|-Ekjpyu?S& zhMq0tVa{lCO7KV~4Z!ARR9-acIzmVVr@&CrkFbGGAqZ?;%=S^!sAzwemd+ z@o!c3dol%&Hs(5_MpIjA_Puh0@#xya1zt?V9JhIKyvT+rERT^?SY>cGnZDo=VQ2Eg zX?qUd(e19~5xXseYQB||p{%R&`lq~Ux862P%Jdd-fde1a|4ZMll_z%Z-kl62qU$_I zM?HN7HM@5kLM0rg6t`hJsj+N2GBNBo41pYOVqYVaYGn6rl{V>*giTxP#lbw!F7g0< zYsV(2pfn8g z1r1Kh5;h0wb0emn-8@P)XM6MYz}^Vsvlr32wAJ!GB=1zQo=Zyp;f^*mr~bzm*oFS| zv71+Fi{D&fnr|oHaHYr8x%H6E`Hi;0^s#^hMlOvPrvJ15)CGuXiCMVJ#HAt#KL$G4 z<AiRu8ZCrSKHMtG@@3v9@=*1zEluQ72RszSjkK*5 z;Os=~nhyT3=d*;FKO8ivA%K{)Igzc(y&P82dMOv2&0fN?^4-!jyVm0IagY&M4HgdN zswNQmLh_G(LEIy|v2j`tvD2%3uDPN_RTF-Q-7z0!H=o8BknA+o73Cfh&|^6aI)wmN zC&rcVc(FstVrD0}OwmWvHs;BakbRk=GhD{ zHXkEI`g;?*GnU;u=69&LFhHg*y|OD`*p&WT+P`j6Ai2WboG30H@;w=r|VJTLr}5!)X3#%-tGs6$&OgGbA{^CttY~w2{y#Le{#1Z%-|DKp zm@9T3`S4sb^6>`txC@Z7#9ar58(s$Kj*l)h`8TlKcfa9oUfcbMSHvPH4wK>St<7KW zNyidXhiIf}0fzv(G?ga2IVd?m{G>WRWO$2J2vp=BOkGyLQ`tCouyLd@{n+bI`qpWA zJ8%Bkv`lKnGHUPE477L|Oh2mC-yt4mHebi|+K;#U5@{!A2>*ksdR-mQ&NkJcNtMP; zp_%HxKGXd2ed?KjM2F}a-@mMPpl}yzRabj!u-ht7uj2CGR8y|Yd?$-7C zEJulTQ48g+eLA>WRP>!9Ylq9n$$F0wiY7jrELpV=w(K>EuF#*$;k8DKCS#BO=uxP9!qs zqwXz&8No*H^TnumBiex^lEsIaRJ#APl#KbdF9ej^pB9#F{2wi96C#9ljvkkFbw2yL zvLr;JJ%d>+4RZe>LU@?P=pQ|Z0yvz=TQyZ%X@YSO02h2mOe4xXivBcxM8H1@FR zXT!GGKaN+9jM1@;p?ATU@=PEon;Pp!dq4z*2c`oul0@Qb@7y8&!h~2L=)){JBfHTJ z(w6ZS&tFb{iaQ=N%iu<0#~^%T_ngUw1#qT|WvIvVL(fWo;aa3l-zCr`p$GiSU?MxF zSMeK9fTvRlUeR{Gl73ELY!|q0dJl1vmKI!FavBcF@d(vkquY#~khGbv{_k1>ZJ3QQ zTG4uyRG$k7R#)eB-Fa zk^!si=3DZXuRMNvC(z;bV&m#77oA)`iwv}qE$$0H{aFl$06MAP8+jWg#z^Y%TWHGB z@2ObNsBb=vMosHa>O7CJbJvQth_CY4c3vxvIPtv;B&M+M>d3N&Or}SyVk+7vraH1ANo&@13aOGfYl$FV!2;~!88t)}(jz|>m$2#*61rOv11C&sVe*n98dsR0YQ@_>tML;B!|C5_Ezm>f2ysY_BApl57(|Bptl~V9gZqkdFpW=%;MB>QL%`R$FvaGjsWw<`TJcfAV(SKmbjZJ^&`#tP-%|MC6Rj_?(d1_LXpg+Og6XZ6j9g`pTn8tSnmP%_H#K={r%q!MBI`r@=fG<@L%WKeyP%(uoW<+I7%)%yw`D029_ zz*B|oZ`K$%24#&U*CbU3qog08oXyv8u0}xTo`JnLra-WS{z4ACZ#3hY*d^5|yCOFt4&APR~N5ovPOGgxEE5-dEE}IzyQ&%~N-x6tVE= z7!2^7`bW?A??Z_LNe>UK^msF?o-|Y@(l`=~kLhlYK1oc2fX?rl%K$jt)m3LqZujbf zxK?4;P%~=DO3sO~)UYj;U1iE+=bPuyew%|MBJVo)O%?tkVR%CS+!U+2uTzF>vd606 z(z>cH;S|i(KgRP&I#x)N)Z5*i=NEu4WeGBkIj# z4qm~({=ZStlD=kto#J5W@2@#@{awefyV@Xs)@gEs6si_`V`F5UKu)Kr)A;n+2NZfcDuvRmN zcBA8%ph2CYC?kQ(K>mp=|FKB(oRzB;GEkK=BP|6UX|6Kpid-a&D?Q8l=wTN*ot zD=?}W8qhPSdAyc_*;u_i8W&vqGgbVE&Z}`WB}w-nsA)|K*=8vowm5pVhkFfh2qm5- zpib2~y2_n`h1c|sM5MK2Hxtzjj{7!E6PwBMv8gw17A_|CWh zc6~`ScKxap8zbVJ8;vHLlfU+67DFfI<{;<*g#Rd+=?iLwmKcY5>HCx#FpZ?$ghz)q zFlJhjhvNxZW`@=(&TsodqZkzG^c3{5kgU-J-7qB+bAxnKA4D=HWl9`;!SVAcxPjGt zE&1MnmF&?qyB>W@%!&Dzgb}^|fz#JT`sh@!6n4;6;7hrHQb+W>x@j)t2UH$M9X2bd3?E~ShOEoTX<<6URgRpC6Tz+0zGcT$Q;OyA8dzEDAW!+<-0hfNn?A zg8nAH;BE`+#t$ zdyuy4U6Nb31*q}qIZ3w?;uup!U?aiw!3v@KiNSascaljPCiep7}a=Pi7fnpgY{vuS0R zbU>{z1gpojN8Z0Y*NK87&*;(j>IHTn9JyUxIQy5%{z%=AU8DU7RafjB8fV56Tv~vh zV!?^-zNDCmapqQzPdN-3 zW+V%9@KoYDX_Q=S`NNDru~x7+7`RJty(b*HHD+N&6WdcTSmNlPR`N6$NIcghv1taR zP$XjW_>-`m@%Kc4Uj3pOK;5+2kBOWO3PiPkG)waqUclVLAA2?;%7Ny`H@F6&;@UeV zUd9<@H9*4W--`!)L}=mo^M!H<4sXuTH_1uXI+*;oZpoLQn@UhNz3+vdLV4uJ26Tup zOG5U?;ZQX^y2QuOPgxE4UgQn$(gGlhTc;|or+>2SsYiYTe~;Mg5ls?;*;HP~D|`47 z(mnn}GIC)cLOiZ$o9!`Gf@Mtp1wy{Q_`Sg%kEqIf^OloC4bN{22O65ox+HTgqS$51 zY|WQPCOJ|b3fBqG8e@4$fDR7^H3l6_bOgbKc{TFR=SvuTqXh${HYkuVoVH3(%L_|_Aa~3L}y=2h0;(SgM9i@-uHKs zpy~)MnxjQ8yVnHkI0uuDt7%MnfB4}SsJcCTKt93}Zc`ZCF@hgDsMypT9ePw7XV&vU z=G6WHIylcke55)Ki4LK5KyQ}nY?1k6)^(He#PC_zTnpo^r`)F7LIj zVdeZ(E{zNj<&tKyCB8pLx#aOXkw@T9MDxFtOOyULoJ!Wt=C_0c(=~PSuKSzNpu!C; zYH-B22DBo)mSmX1W{B|&EC%xg-TWk(kZEFHi~Fky zlZrP{kA*eCMZvA>)9sB^BXVBrJa3F@5O_sC`@ADcMY$v-B?hF>(ig&---MpG?3obpR<` zAK30o+ol}t30*Rw;*Z4=e&_oAUEtT8n~ zsm-D0l*tI|dwrV8?Oo(J_qZgcp_3|ZiK8J6&~q^feglu%T|k=p`;)t*F9kTbm08v_(vSygg4r!)=$GjDf1}YO1}}PvtkXIK z#j_fa{w;}_8(LJ^1b1h+OhW7DBWv=j1i>U>z+z#3es-;`6d)64P4DSIocMZ3k(3 z`pmx_x;{zUNTCCe&dk{EDTMD3EMt)lu5${o`*+7P&XVRH-xf)kq%vSByoZ%a%vcf8 zLn35pCRcBJX$%ah%|kc2Th&y5Xw*VJpS^1%Z{HbBPtUSFE|p|IHe~ENQ2)|MnFfKw z=xo6c4!=?O#hj8OiczYrUleczT^no#+S1o&)ji*4u+?>)XXk6HA5yZGun&ouua!K3 zY*PElu0P-?U1o_s3WO?ATbpFj4Fg*Z$FNG4!HS3c%A1V+%(~5fPzPGC?{I0DvF0Dl znK1PV>}SU~bbZTDwgRx!vTM&`aMp3Su~^oR zQMS2yS`TS>q6nLNw$+;X%uDe2I*Aq`4n~r`XogXr^uh@sQZx*9PB-*`ai0i2wrOlp zW#rBqX{+Zg-R>%}-KPFu=yB~>lvP20bkF}Wlj)^sCo(x5K%h<#AIwdC~waPU7re!ev?UF-uk z$j-=O1gfTjRitXX{v`AH13ME3^g75mHU=-(1oUyLh2Y5aAO8J1aA^8bG_>nUCZ@PV zKV+TxeJ80Ve6(7_*{djnTPGeUeVIY4v+kcA(_nikXjVtXY&Sq&EQVZ0hZwf;(E(Bi zR#|_yQ>GR!tWUXUdn;KZx$zfnX=?<_Z0xRrW<&r$2M#V;3kbTutY?B1Oi8zJ(u z@@ISvjoX{;~6&5;W%lU^cCV1hY|D25UePNKod9QyGbX zc_+p*2)8YB_$itx0UF_&frUf@OPD*DTd zOGK+u6=xXdvUChLSbTUhotWnP#!cRHW2B`n)T%_TZtlm&VV-^6%Y9~?E&k$yWL%f5 z5J)M)CADOo-U4rpVO_e)UM>LN%8@df;EBt#1ra!J7$_Jq45 zDPhi$$U=z|Ec>M{k?Vi|as$MJx}g1`h_yvHqE7OO>^4%B0cmK*LZ+!_hE00Z)Zu(Q~@Za)dXO*?1;qPYu^&X7z5k8xgJoaZs?BM{4L2$MsH>KFd z!K}^U?IJD>&BVTqDC@zsvZ=~UizU?y4+UQ0MiEK5%oNudLI0xOS&V1<2Vg>iLPdl+ z$3o*YM}3JK7D#}*)mg)_7#WJ$VDkWY1l$D>QiEn~tVX-DiZh)jcwsrkSLi=oM(8yy z@7xqv_xX5?|1!o3X=mSTR?_bC;?V2(98J)C}%n^J)Y{S}^Ie&ERfmbiJ#KDB)*pY0$%1yB- zBI~#gBZgh12u65QL*Fr209LISB*92P3kl9hs(h+=4k~{dNoRXe>Kw7RguCTA2=tF| zAc+>I$saz>$0(C8^HIHlT=32+SU3!8#y!L=Dr7xYC4=L;W^($jydEr5QmX9E>^1mb zi;<20e3gT6=PbZjL`Pxx1mW%yiXBJ&k4N>`!N;(u9&Eli8~V*i zh?|N6g1nazql9ED*VYU-q&Tk(C#Q0pBO!yB0B7-D(mr*lwWtJqev~?DOP+H`S{%y* z^8WB5$%5eQBFD5PK4<#(#h$Zajxr$6^}^%~(Mbg=^K+f$_~^HbQQ!u$v&AiSV&M&` zvr2)olApI{P)@F=#_ACIH55<42+aK_UObY8-zBKw;3%z}+*>Gwq5trLu?q`Coa&dBxQE9+I_S9mO>oC&GN&SJ0Vol0B zqJ0VOK9}PsK%&!~`JgSq18$h}YzV7hxW}ihN(^ zDBc79IG)VyUL%_6XA7~7DpF2LO-_-^Yajq4cAy`hMp$w*LjN|)Rgs-Mu2eSVg2xH# zPSlMTkyaxNYO`9{CU`lb5_4{Oy&nrVzCNx$Z*leYkjuQ-Mxsu zW>ua`*)J^{CRgyTm%Ul%EC@yr3Y(hhSUI7MZ+uYPZgRQ18n3?bGH>&sToWR6#C(rm zOb$H-=u-SA8W$A9LmQ7it3hV591tbn^^`d)UkU_5K;yJtv2#f*4W=6hWAnThto+U z*THt%Dv_>-;5 ziBuCHAhAaUYB+;&LBV_SOB9?|y}o1n04El5TW@4NSg!U{_wqBqp?q0HkNSdO<$uja ze5X(D6O`}2|KH6xMzv1}mY zodb-!^D7i4(67#p*&l>Mnc-IV(%L{6fo<%;RfyLvPa;_q{?!}_W=RNY(1)G{mv9sx z@Uq1nlP5z4N=_t9M_?p^$*0A!FhTg4}MF&Y2&g1U8ji3OyaEN~=9X2fgJW5*2j5B2yG=og|v zq_7SV(~A5Ab9&O=yX1Bohg1MUISj~|S@axem`n7MrHcZ~EE^PrGmYHRY6hx9T>Gx+ zMi&3BQZUugvs=of7;QqYfJnC85`{xBAhTT?zQRj^MvU@FLrpdS11pd;9KHsbt~Sbs z{6a99WXr^))`mX(l+#HWuDPphr0iODb$-rBnLRWxlpYHrR!!@O3J2Rl?3V%Wrd!Gl zUD*>dE{NfOnOdxu`1c<5jUn>Y=p9rHk*pUp%+(~>TnqLP1@nO)?RwMq5M4#}KzXtn z9r|7cn_EX1k#FyQa(90M+KnGU>6MjULa6+}fd)~HujMcwLu4!h(0l#OPM>8~aEVAH zW!(L6<`;aUgC0v(Qt$}OKr0L@v>DPyFFzO561zPG4da})^s^>NNr{w^>Wxh+U|RbU z-u2emhaYv06|8G{7PPIz?!C~n5POCL zCGC3)%}qi~T~ftGAR8C43^evptlH-hZ=7Gd$n<`EwG}a}C2Eyp?iCjR)P*^IleZfat46A_e@7nYwuI$sp%!!leE;%UC$^q_W_{ewC6 zq^V$O+#9h24?W-tQT2Z|bJz{2;V2)AFd-iFb}-$D1qaG$DP^v1Kbur*m3F$#v-;Ap z?sh}!HHU!Te=_iXHj%#Utc0Uy=Z7nEv~9oa5SKQ&DR56Je|qm?Ab>q116FG6!Q^lQ z`5SvO;hWF*?%G?jQf4RZ_~YhpD_?tVGA>-XfAx*sZ~3c5 z-cA#kasBl)?=uXQKU8-ge)w!W zxrJ(eOwG*v@9($AA3tFZB0^sR98dxS?_cY4y}Qp`(OmmbRN;?VRf9}@M^BfdGS`~J z-)!m7yq}-mm60DUAsT^-X;SJ)0+ircOy;$=BpZg(zR)c)OV3qk<{1;}FpOx=J(i1rw}>Ov!-vwV7F$3Nn#`9!A>x%2MRBR~4C zM8$7YUC?{xsMD!E!%znHg}$sbXrf0Fg2CDMTc<~0Nj?>iNqzk3_kowRQgw7nRtKiP z_CbHWeOUz1@xRBusVS=y+%i6+OZ3_OgX=oyS!AhQQ*s*}dVJDn&Y|3b+beFI7=x~R z7kVBYkGE!{pV(dEU-Px5J>Jk|)KL=1@YhwRR`0!cU{p?Q!iqelnbwJ!LF&U`FSPcJ zmC6^jx~x;2pU>y!`(b@Xq95~fMzwRr0j)Xusa~H_rPT-5RvJgT7wb(lu;|sJ{cD?y ze{(6`6`KlQ)!;BTKAM2%@Tow9!yBPi?5pLM3I_R@t2R zJ_^$sfjy0H`lP2Xv3;c$qsSpcMQ>XtZ$H%3x}uPE#BMeI!`h^$zHft*oq9%3?Lm5M z+^^Eokx%c)957!kyU$yf72j-QQ7@g8V5woDKmGcDPmK9ahI7Di^<(ybO;Tv6@cZEL zi$tqSbxhKdQ&H8yQez`}4#{&Ab2%kJGm&`5=0DW@e1`k=3t4Ky``Rx|FGP|MSOoX_ z6S=Cb@^e&SDvH0C?)sLuKipOe@KMK^8>2M%sj!v(>OyM}QAAbU&F6!3NGpmGq%`Rh-+fw*KRmG;UM9t0)$SQCb$-UJhArOXvrKfU z{odj8J!t_!=%7|}5QXiOzG9ZQY~;Z6)6*98koQq(t~CkqFJcu2<3-DYwUi!Hg%wg2 z`d!Nu{h2SNxNjp8);IRaxF}z$%+HjrHauQ&NVMd>F1d8$6NP@ofYA1e7ggb_SMaV@ z&T@{BHa|RkwNLRn>xjc@H$~%}!)6S61l1>qS?E}Ghx;Z4*;HZ0bgIJG**(MKT{O|p zE;jflC^Z!omHxgo_`?;UD(4Dm5l;@F@ZQ-n!%97DxY(tLb!1}fflFcjZ$f@}?qY~n zEELTbU*_J_%r!XpV6AmV-yhScFZ&H^Y-I{r8O-&gr|Jp$2hEByomY|WP=$CLypQMIxs!tNbpBWv%ebQs+ z3Rz`tvJv^hl4WOori@1f78*5QJ!PW3j$yoLvECf+d%x-kV7iX@`K)D3jJ5^T^z^qq zJIn5F4L=BM^!5kezt99rh5OTSvaRe}@&P_~_lpHG{ZE;K$12K@tN%M9Yf!8VAN9!a z15xfhRg#KW8;lP+cg5R%Up8&DNb=d)Ix8~avRKxla6XD1D0nfC_w(s%8SFs`44?9d z8E3+2glH>mIfpy?oHBK&+c(_M$Qz)}bSkqtmU^FRr;e5B$3*w-gLIojO{cGHB{t?w z${~jA;)#4R=_pmE!}O2)Tbun39mIwn(C6BebYgUqXheDYr-pA5$iryV}hB`V88U-mqJlqNv2td%;il?ly2^*ZEzUyAQP%J)h)9yob<>5-4It>^YP^ zF@89``PPrYJF8A#BC9z43h&h)9wp0FefyOst1#iQ{b@{17+A;o)Q2x{mk%Y9H}5H0 z54qpKL+k+e1ylrhKlE@GZ_E!&<8Doq=To>3O!@!)HV+MC#`&xEzBnvKC-kfrNxINd z>p@A-0gE*Ak8jTjFAh<-D-^VPP2XPYlfm~3q&D9+wfjg8tO>^?{~m{PqV*PQw+W$$ zrq%g~^Qv*%9P7~3Dlt7+-9oSOkiWPpv>Mb7XpYUz&DEp3)isZroku410la{tolURw zaKjZJTXsBn=e_std?(H?>DfQs6LC;8nf0yQ*xQ5^(qy>(yE4fNU&!1Lw6t(3za#0i zT5jXM{VhTD1=8e^5P>~SGD+`TTx=O@W-uGXA^g4C^7!WHtSKa2VGks^{$}z{lhluY8#=Z6 z|7h26-$FXbVv&iqqcO{VC z(?sfh+<*N(h}nBk8K*iID;-zgxbgV?)wXXi3KBfU&Yoar3;IYL zi4##AYP@tBN%@PU1F0Vmq#OYoQo(zveDaV7ztp1j>E9loMOG`AlIJ#DWE3;Nf80M4 zWyp3Cjv|iT#Tfl6cOzekT~qed$F<8?HKuv$8S0-`cH$GP$D`fG(AeHuoxeAKo{?s1 z{?c7%ZjI*%(tS%6S@mDOd^1(*57OiNL%T-ECi6CNe5ydW{MG(!X7#3T4=*9Kn|eJK zB*D|>a~AYS-$dzDaDqRtJI-JKH#r8i|19Kk&sO*-Y$R<&+aX1Z9QgaV{~Jrs7=w(3 zDQASwH(of6a&)`jq5Zp+@r2j;^1lBy1kcIm+XW-MFgfw)&P1b;R zu#&5Dzp+93Sy8+3*ol$YJj*8NQWBmTU)HKbCh+Bp8;r7UJRXDmdVSwg!9g2X?SIM2 z_i_6X{(~_w#t?O!<+ym~(eBS~?Cu-;c6<@DJ>^P2uVC#t)@d{mjK(%s^!Vm09UN`8 z$Krizd~5S+1CV#}Zqi8e2iG3^F!6>XV|{_ydo>gX4yVJ6(p>TIkyW>w_Q}?~*&J+H zT7FxXH^+4yFzYtVA7W07GjFt>Jn_z3K-ee84$mXrv*Y5XS4z;q?=gC**2Os!8<%)B$J>aA3qi_8`Z!mtlfMyRqrvX)Xd3K#8ZQtT8 zXUz~^(I0P64r|>0l#P-bZe7m?1o=Nw!QS6&^C1w@|JC8i?yi*-ulTC z{mK*e5%y;-k9}RTFTAa0bMQ{ap=PxH`G15#X*!1kU?r7sF(m!ViY8_ph83uh$e_w00~GYfMA3`sM-6+nf>j! z?x+2--&6j{d+)w`&b{YcRM!L70Lp&t7L$pdOL_NKz+~&?Ei5skaa-evVw~PCi*{;^ zvSzAz-Ui$iE{sH?KK7qhLJ^Ah!V^`)fs%T<<2~(p&BMa_KB7_kW3aoE)@tw7`N4Es z>Nf2gRQ@n^C=IpzV2&-_oVz?Rxm+bM;eC@X{=Gr7*Arz1h#gK*2+oV%lK!@Vw;!zQ ztiy@dfhbuca6xgm&%w%Mu}PGk3U(^k?O=-NnJ&;lvw0AKRNcXDqU*U&28a4=Qr=oQ zf6qx9yJxMN<+45*`>t~AdQLGY3e~|CaM}$F?~KC>E}v*ZPmO{`rs1)lm3n~=#{M-> zJ4|xI(%5vmP>@caGgJ|2UCaDlIz4)3oQvKmn#p~t*-)XsK3(46&g0WN8nVcC&kk@2 z3o&9zM&TT=r`+XBDFVgre$1BI)ysl5Gfh*;R`rY2xF4&o(v#ms1}2Lsq?G$KFMSBY zhBMGTtGi4P z7<*%T*K_Ui<1m=J>$y%W!JE{TqO`7{81rk$?i4;uS4Fu;4kmThiSpu=O(okFe(&{R z!qRqy7T~>u65D69iVO}okUiiv=)WHiNR;Kg%N>-<+yL6N0ru2!^*V`&H}p>j!C>WV z1}8FMb4)-hVGS>St?YJI)~3ax`R@goggMh5F0?GM0k($}Bw6{sjKj5;>EG@ef( zZa^$#!w@e`vt?d7{3QVduGHI`Owo8lXwe9h*%-t-u1`2#?0}vuPxWsYbXK(JCKdlK8O>QY!Wk&-ArHe)QIe z&2*X!CFkY6H-WANq28}>@EJs<2AeE zK-428JtZ7eTE70f;qq*Pu(sD*IYgmIVu3%F6H;=fq^gnkNDk9oYDbqVP3b*hy0Kjq z%Kd`-uCKb)Ohwux*lPpK#c;WtUdjTbA?kX&v924u&pMCyf3TL~-?~E!>R80tf3ozP zw+~*%z534X$RmbtM{WktkDl@mU<-7FcIaWlRZn&mI2-TndLF#}3H%zVNi{L!kN4RR zPpY4sWe67;^q7oX6B(tHp`}pCF|)-%an}9wtFg-Z2Uw+1G_V+CfeoK~g?J+v%NZST zc**|RE+D0zZSTp8`uLlr<{_94rZypl!(I!f>`W_8GrZNa?_y2+w04`k!`ooVEiNzx zrC_A1(DiMSgZBEgPQQ4rv>*1Qj_7@c3?qu_(M zgl5gON9kt|UCMg^(H}*d&AU>tyKhD~_4ajtgh2XoeLXQ|KcywO!g=d~_c+JK2Pq0% z)R+m~yKXYTYAEBR%RW-FxROU>Mv93pS_?-_GBW*E_@;Tul{W_ZX35&feNB+5GQ!^0 zD@do+L+{<vhI2XXOm`SHZ*FJvD7uGoWCDmYhX5b< zyi%zm(V;qC-ZRe6qZwA@dQ$EPO_q@yu5v@bCnq%ZzSs9%rVTI{5XI4bPkK*Xe^IgU z%f8=`udJw)l^beZ-;WQhFLTP#YJ~1EI{x-f)OC+1d+L1Ww-gC}p*$a6xE$^Pfh}@C zVuwmMDoUl+xQ+B1kD#2^E22N~`qH@hPjisn?M8IST!<8?nH{C$=hyHpNRBv}iEbRi zu|3slZgg_-etcy+sxu&0@3afWHDcT}0W#X1s%0^sth(~jM9Yn!2R49K3oXFiwLt?T zoYO#E>ME#KY>ZOjShbC0plFiDPzddZWD|j0-6`+AZ{Trgz#93dy~x&~ zUeFAY$KP#p4};(qR73v(w}0hPDk5OC;VC2&weOI{%4`B!?;oSk>C3wd`a4tT6IKUL z&ZfD!;DtjS-=s+Y7FeJyu7jmOX#+i8C&T7$wvIC#2Ao)cy!;l3f zAx~+)!5r3e5lu||)Q3*U?QJOsq&ODW_|eX%K3ZL^C0aroTZnCg(B>x5FnX&zr86i$ zKR-n|(9r;PG7Cx9i;f~X@G=ORx(Y^(UqIfvsKF#@W{bF)+xSo4lWYoII%aV1GoT(Y zxp&}IBSgCq(Q^YJrHt^it@Ww5xN#<#57kXIq8|9^K)3lV_QLz8IXU3?(z6J4|JPZH zfSE?xt`Xqq{d?`8*utX(K717BZDKldwTXZg?oLAwbB@Ykf?GX=X@8SnoHTYfjl4cu zPEC%$T5pF+R}nNcJ9hYdi=ZV#XamQF+e3SGi;iD+DOzRUCD%3HIYVgxi{|@M%gp}7 z@PB-5J}07lSl4%*CpgV>VGMH+EoLa+ze-JS)5U0I*4V{_CMQ+)vHJj3?ojzZ1nwzo zjN0fq&&**;Hw)-t$Q?X3P2Us-0$}=UTi)BqmbLtUq4>|>ykKhaxakZfow$N#lg$>7 z^Y~Q_6Bf|())Fm;s@Rz4k=%nmYureN=zXIbO0V_~4i04?x+a3fR93d8`#j-|J+i@> zkoR~1>3bU3_j-R!dF8!bodlBx-=T}M%6}GLKGPKbPp4A)0a-BtJbNIt0~b21-N@ca zN4K-avaKD;ZuN?A8U~gE5x`V0U}IT`7M~Ewz8nUE>JkZMbDf}4TWx^n)8Gnx6G<>J zU=~vbI&Ba#f4Mg*4H$z^ch%He4;fQJ!9_6zm(1Xn^%>mo!-F!ir;S=3wPrYlS0si`P zx18Q5EqDs~o?KYP{VUu=ARw>m7sp&*MCabN_!pz{nUjH&~SL1^uF+7$6xow3Re_%I!l^!{^&IL01#maD+$in9`Jtqu@HE}^2HcPA8T#e z)|Fd+?Gax)Q17;T0Op-WfQ15-$;uLh%Uq;9_B30=a;Pnx%zx%p^TnwKMr-eGcO}V* ziaUVaN>1NL6)vF7zaVdw)A&czmH(vWeCoxr-mNwUSpyL~2eOdOE^87U z#)V$*xB<=*Bq16IU?Pg@^rLXda=jbkMDr z*cQFNKQCsb%Isl+5oI+q6r49bVnHnLZTO*@#e~q|GXASEWZgQEAK%I1Mu$c1xE zW3M&xx_?eqD0&U9n=g4!Wfs5lyNF|({SEt|;KRKFePy14htl~;=4Mwa0BF$@`K?vYsr2*+Ra&Yqin`k zm#P?8?JPf&Z)ICR(PiIy0;_SalyB=*`QHxcAJnhjichD=|H8}1LVu2-nnG}^L=9qR z+Ff(D2GKj%x>{RXE6q>A3Dk<4Z5Xg7+GCn<(6J<&fm8=v>Yz}5eeNZ~`7wbz!h_%I z%S9*fNyS1DNN^_m>MD_Q#{%K%^Mk6(2bYdWPab9Gn}MdA9WY>`2~%r%UIqbU^?Pz zG5x=ZDjMs9%nF5EN?hp3vH)KTt4blLk!_`rLWUO(v2H93?J~f$DMVO#&b2$*gSjO3 z8;~DT=-w2aPQ*uNCI6fQ(~n*4GgAyRGdTA)bTS#zC>=Pg2*uDdPlo@)zf%@U!S`il z^v`%rk>RZ2_4>kCI&gSL+R#sOe*_md_83_Er-Upm^;`h#+2#P|O)sBPSBZGJ+adJ6 z|4k4xqT-bNo5=#FSf!Ov69;T66B#_JNqv_%yXXvE7<@w|EvU5nul$6jZNQq8IAsN5-gSrW2zmxPdgr;nm z+{fOm0>4go%E}!|dcI2`>gd&UvAxG`e(?Y6udd0)buTsdh^~fY^0)V*`4ognbVFm~ zw^+%!#z@ifx%Z>?yy42I9bhyt*nyj*3I|5ok30ONX`kAD6&$o5(&hU%exq~BX*cxE zW4=R}?a&YMEPIICpdaG*?I1&+u-iKsJZL|pGW`TUzZF70r$ zPa1Ss1i}`Ek!EVw0vJs`5UOWmeb<&&pOKw?HL4?#nrUG^Gr?x}b#Qvd&I(@RC?wuC zBP)V1D;57;^zJc8zPIcyc7#QSDru_rs_QcmI|e4%5mTrAU-7sY?B<*q)!> z)1oGw)q%JkzL4X)N}4ZjLI~Lx4@Y!;O2$mZt*?yECre;?S-vXD&c2>>K5*iafOtlk z+1s+g=iD#9nC=giUAFG_o@`Kbr7qLPd~$uUs9aS++=EQi7L!|> z32pIR?eMi|GVdapQcC83RxzdYt&%;)^W#<@NKK?B;ukv1;(8Ygi!9oHh7ZjZ5*$>J zrd~EubKgYs(|@UZ4>FId`z~vB-+!x`C(0C*Q1;E<-oDHHh3J`CRzdGUd1LhOYLvh~ zhFJs_bcZP%CEj5yx;mdC*8tamJ-!M_{Q>2}hR^o&)VF=g$S$$f-F7_ul}60!`dZ&Q zY43|h>FF{7*o#B<-`-sue;c=Q-)n7Ylr3X+txga3=2EwHVy3N6lMLk+rN^W1o-bTU zhUkc0XrFXcyiicbmyu*&*u{e&8TCyV;8Go!!UZ2jvN z!6G8wu|B4Jb;@xZ2z!Ge@^fFW@A_&>$Z^pKIAX17eMP;!hQrXYS{p0V?aYk^p<&=9VCslhSXrAbDDTG|{jlI4i7E63(=dH?)0zeXvS%R;vscJ+1Hq{QIC zA?PJZ4UdjLJK=CMZn-rD4-Q_m3{nNoD2(atMEKy&F5o=vACZzhCz$G(qxRe`}#%GzLgOPD=VomH&@sD zO(rW-YuzWRU6%cYy+4fR9dmrkqpEE5AXlLfSM!o1n&V4gJ<_A6rn4JC>1pY<%ZZV3 z%=NzLKs9__%Zc=zH0P=>{5n%K=vZ^L9M?@CC+%nUj1)QGre}43&FQ&g=<#JYU+k>cHBlaGT?<+VfZZ43s^VLnI)aw}xs% zr&)M}mFByBI!b%P+s%AeGow6#45~0)`6<5)RA}7l$@&X!6Rne8Y-ZjwBGbbEtnKMK zb2;RWK*UV>I<-9iJ1@icv1ya>mbf)nRvyJv*3;G}?>z5+ptM@auQ0}%r6#++)MO>6 zXcVTe*K}p>*5c*5drRCWU%R_T1Jrp5?qPWTQR>B*1RSPK;2 zonVd}%_s_h)k;=ZCeGsnwwASUApSgCR@U#o_Czl;nheaI9 zR~NBs?#8Sn@2Z0m#)Gpxt}Uuvlt-EM-0gO$#%vc^%^m)EgyXMXW?cVOE0_1m)xc*l zKh9$6@!-sLi-#w*pFhz8`b-YqZWNLwftz{JWiB=FlsQkHf-GOLa6fgb=IY7Jw4-<7 zC%*)`l@{dRICJa8B}wQ0(~Ol@=D%MvAf=Q8qk}cI0+uQ?ujAU&BIjh~laHR?zQpij z*fZpGEJ=Ul*ibI#P=8|(&QiC1x7@E!lXsNgzc@sA&b9V4pzG7~%XS|G7?$*L)>vi) zb!fWw(}&^1LlR_B(|`ajpGS+{HB!O$M(_9L_P7%)LIq<}E;FCyG`E0fTuwY=+A`zC z%jFcZa3Tvc=tk}Cz+F1Q$U=Z8@#v0i+oy{7|CzA>48%B(i#Mg=M(r)zk9PHw%0 zG@FrwE9n?+Nl_O*$RSk#8N7&+k`k|M54_Sji;iHbFcm1L_a>};Rh9nxRiYhAY;4}D zUgDKmUzx+MsSP7I+*&odrk0tJ>QQ28qoa@pF^W~>LKKYVrD>%^=o;ChY1X&8y~z|l z)kbpUaQSu-RajVv-!EMD@tfNU$!uM!G!!i5WvXX;rU43Adt{>wg=pF#{j2|pN>)}D z3fjWp9>pa`_4k)Amge-WEf%Sisd+|n`L4{EmQRDQ7M*gb(b68|dq~9W z+c<$2CnfX59DB=Hyc}fbKQM(~>b&zr)5^-K$-<-8(`vEE+!Hwxrls~Zn}Syn4v!e_ zvWgSTDkYbofTeA~3isR)N#>UMOPH9GhLV zzDBhoB<2CN#$DPwDoZIg?Vye+%9V5?7SFZ24VUb_=w2IgyoKaw=F%YEwQAyA&4SIA zzFYYeZy9ahJ~vm*X7)ZSr;}AT=psweI-zf^@S7WKKv-cmM>+&_Vvvt?9Qs-Y#JqH8NMJ!Pgf}{gH|3I0C)M2} zpt`icOe%ip@C0M8&28p69NyJb)aL__l0|r3+G}Z{nEt{zHfG} z*tUDVd)Eye`1{wI#Rmn7hSN{Zt!5F{OdV%DOuc8SCv)|LT7YKxvS@B}nDF+O@9@Lw z%OTY4vc5xBKc7CdO ziK%BKbun$4zp`(Sc_QlCe6mn*1oz?R3iW~d)48_}pBExstSQmgmB%KWko1I?}RjrR2>+6{#&_ri>p31I0U5V2knL}nPgKXn6)1Kk$r)?8Cs z5vY~racRpT&tO>D3iT|uF+oAu;xb<~15?p?$*YbuTe~m|a%E-Wo^{$Eb;Ef8; zSmO5N}L`M_Au$hB$=?mq*s)a2HIlrQtMRDG+G=av&Ku&Tq^-4C^Zry}8 z*xAQwS4NE-v2IeM?_HKx;RxyorO3ftlQ7oD$;?)J`Q;4zZl!yb1AA8Vv^`JOkoaqy zeDB>GQXYO1z%R&-teQ}>W-FiDb4<{?=pR7MR;C`jX zA}iR!B*pmf$q$~WVH;nqOP;eoGG8ca&)?Xi&pKtkEYvi6MPj&6#QFO`5P$X;hHsC) zsq91XD^wV)5fIlZXSJ@YGB}nM6_bx-qVod5Zf1^kE@%}XB@1*x3b7$ z#T#}GClETdM+J$N)x8chgL&cX0(0B1T+=$=j9E8b2b&`aeA3w+MYF!1ZFA!J0yD?B zZ@;Y7GWcrdx$7(b^IxBH8O;n`+UFIxv=)@xwx`UyMA)%bYmk? zziZ;>Wx`oTYZG7qu!dX;{Wy_Onb@4mmsxgqMR=U7LDbA0vw8r7wZ7p56oATMY&v)A z(k!yPtaCbnulVHhjWOoa_vhQQGqq)=%jP1MB-}gi24wpGZCvE|+}P7BBQsBV5j*X+ z9Aw)*GgO-bRQ|dOfbivTp}0%-hOCbjKk6Q@%g(gUodG!QtdZih?>d!@8iX4^9HuaK z;;NqZ_Z!DJ5Ev?-T%)z~;Q`b64l}%4-RVawQ+bbGMzk8M|ptn zVkWmTz?A>^VtPQLeQn+(a2vZQYwapKKEy43v&!q8Qc1tSn2V!kKe;@2ilJfblPP1c zIoa=6#&8Y}TbS77V}V++FY1Yq@tyV_mClb#H1rCUS^UD79F{T4U%f3k{BZq|DRUff z*eHfMG_bfRd-0t7^L*_y53s-qgQIH#`Bp8kLP0;H3^<3Mh#_k4_2E|eMGA)`%a%r> z*-9PCgv=*DlV%5lg&PZP!l&;4U4}Ei^||W=qM8T;Hq;>7BIqM-Rv=8j>0+<$NN(+F zb>SIPt5uG8lH5p9}~7jP{7I42j0HhkY_!{N#LcAc z6AVC|X6W3Le8x5Cc9C2&za)=bNc;t!Qz88lf8+PuEuVSesBO`6{m}6brUgM`>X}b| zm1^wd`Y?Um>iuigTgORaJT@^f=G!q74ttY? zP>-ikhYf{uFeV|9@2*^~Q9fz?yxbR%K?~`aP}242*Y8@zB2ND^zQ;ArYa(s(@zs{LH$9Dk-=z07^EzizTCpRLpUI96$Iq$b(#QE>@~UAlSX3v3#%|tL0jH=B>4m+< zD47JY5dt$52sEld{w)pcx9J*X6)dzHAps?T!MCPq!LwVsx(uYI3R;v&Ipsd?SeeDn zMAvC7CE`-o{kM~A^=rVnvZ_DY$KUg4=miQwYNhM?5rE}Lo{yRKP8p@_XA=@YEVsl7 zW#uXkQaeknj57MM<5K&ftYVb z9h4w`6muQ>j=yojJ}j#|Qq*eEc(hrOOK=L%K3xdFq$IlnCnX$^FD2CxOArw;?v?{L zDX#~7)M{1%=+LsMZP$qhuVmsnj9nU(Wh5-rYp%G-K-V`cQ9gQ*NTT1XOFZ_Q+-M;YS4RB}8U?DD7~qYGcS zLj@ooD!6CupZ!ATAv&>3gj~>~hALkf7VdK4Fsnb}D^X+Y8!;;0(r3qAV^!8jU5lyf zxW6JN6n)XWMx>+qy`)Q?g|S^0I?tlZv3ymTNoM}GJ2nR~Wv7DhHZd_li8fy5Hj34k zBRG~L#wq3Ni1K=UoX?d$=RUKgI=y9V6YxO7aA1&DIVemM#G?^7YZl4CJ21|6qb72# zrWOoG7+DsDj$Y>U@Ql$0%!jOfcfn*y?#e~WdsiT3*;LpO4%}q9`$fLL1_F>Jz?h_e zIJ=gn8pZ^JJ*oc|DVo3U7hq76g%RT_^@vjI=p!uM8cM4(p}tqzjI=8iN$-JJWu*Ka zcP~)%L1CW{^?_!q^+mCF2j+7Xr881rPUq;bz~s^61AxrdIfDJ1*mI*`K>u*Fo>X_? z^?r`GH$*TBj`O&L2IYdw>F<9O9oM1e$^lcj6(k z{DOQ+oR1gSt?0bHXU!Ruk3D~PNP@@dMf&8sG1s9N5^BKRwv}4?@m4GU#J5lmm^Gsp zopc|ArU3qI@$sLCRoILSe$^N$@hreLr=d`1r>i%J`A-VF7Xc~CYya`nt~4~-?dJ~i z;liA60t>VjK8mT!F5L%I&F9ALH@29Vp1AyIREdX2jI2;FM<$IGa3vO=){coO#66r-+6LSQ$RHqpPEiuh0Dy>DucuwkPTAZ)D+fXiwoCsuOMIx~fC%oW-rAFlCgO zy`f#ntbb`9>)lsu=C5swN7lxRadOl7Z6!LtsCP~=6hoc~spel_y0u(|ZAvF37WXtoz+^nSykyf#hYSL2$)k5Wq-F7WsUT^mm#e%SjW}@Wuh;giJ{8bq- zd-p~3gDhSdi9|+~9rgDF@W0ZTe_e~5I-{UL%zZR*)>mnoP{2Q39siR3V$%o7VM*5Y zpZD!bM$!~ws#30qi*qcp6F&L91Dg4b~zt!c5&O* z$1n9i@4pA^ncCFURNCtYc|Dn8GqcouzHL#7nm~IUe^Pno_Y{pcp@vdzAt&HQwV>+{9?MW zBVuJKHeWcyzTQnw)eJsOYWa9tCo=oxKXyN^1dM1t&BZip2`8uIc%SN-Yt1Ye8FK@; zOnM~mWWzmO53BHJ`-mOD?-2v)(-c|Vbof0*uZQ#5!4naP1(xl_>`#gfDO&0T`#krO zl@`ZF_{G%0UCSWIrOeDzmOD^$M)eY7T)CWTr~P~9o7o`>={9&@ENH^JO)M1V;>GuYJqBzgbU=rb4$&?R-=)#IX{05 zg<7r0iC8GBOTT-55BW?-TGmX?i zL+lN7w$vc>-y%z$+&qT+lCP|H-ew`g#P<_fFrztqGDIkFer31T`)eFUOghe_M7 zIncTMCpTB2x`O~yYn!QfXhmwi!HhPPo&>+SUBpS|BW_Dq_lG+_LPD`oTZgMwR*Q(# zeIAda4r4}}HXn-+fga02m3}r+iCpodJvz~$dBa~?zRk@eOk=9ZXch zhEM(=95aeNMGLe(?iK}KOcjLL5zmr~=Y*hWY^$*%=(Tue8>}tI35gk1r3GtSvnmnq zK;P*tRoKgA^^h$PPeC1!pBfu5J-OKf)Rv&2GEqgD=rU>o?OCcMSO;`sCH)n*_hLFn zx81h)!mtH+NP-9A9Rw{lryp2aCgZ!&QVBZjcyc92yd?`+nK-xERPoD3h10i7|8)!t z(PBDas#6RefpGH1u-r%k4tVXy6L#Ycd|H}AvC`8IK}Yhdd_;8Ewp3Xbvj4#5*aR(L zwsJP<74&YSNMjDXiJ;$Q!;)xBJ%QeHT6VUkVJG_ht|OT3t$CFuKVl^|+BD(0b#Tgl zSbxuB+i@YM6c{aLE#Jf70cPFSfj1e-{@wP(SnLJyf})@^Fk77gQ+&0I$L3tMF^bZW z?Yamim~BUu%;?Um8|&Tv4|yMD@zTW|@~ZRNn70zsuFx!0-CXrBq&~*mBu?@fN||R0 zO*CwMJp8FNks}YN^_I2JcBc&pHUnOBSNtU}%i33%(MD+~`hFY9Nv?Xpn?m1Y77}{PoC8aR{;nT&umD?DM2_KO_`0H;N zy1A#y1g!tY^i8}lOdR+KN&-yGgULhH;^8@3kl)t!YHGI3 zfTXuSmfosiT|rUcX_)P&rEAp#8(nLu9ETPHj^TH1it&&FxHr7-F}<2k5Y!*u{Fp55Jyf;d&5p4Zmw4yfCp$4B$XRWg^qX8U`Ps(mbd@9HCtY= zhi*|~I)gxfXiIOxqpCB&c$*L*Vhdz)V_Yi!)bE9{*Y`Z;!-He7F@II4H!YROGPaGx zhucQ`!7tp>o!E*;8#eYpYfd$4-)*hoXC{M-D;r~)XwkgU&v=`eb~0!a6ndLn2u+5& zM}~Gd)o6zkwQ&r)b^kcSnqXLQoa7^v&9-dQ6Y29Qa7EGtd1JU~OT+s-{G{bo`H2fo zO>r9wnanCM`3=X^1|)@N-bt8obGC+c2Y^m&y{_W%qLg8)W!tMM5hAdKG)OUQPDV7w z1U1QT4Mu9jx3w^lFUb>&-+Ogq+nFBQ{$85~!q**;Mrc0cEPP<2qXq$eeT{)$zGtvh z|JkK$UO=^NEYe(sO!wDhohHEqNZ!#o zP95bO@r*3Ab5TS)7qT|#K;XRQoz6M-PC-H~HSffB71kQU36ww&O{gP*RvB-)0I7oB zs+bkejTa&Hx$1@4jUdhqZ$7s(CZ>z>0VrGB;dNJ7`fJ3?FlT$;PpT42#z_ ziE@Q5CIS0Apiv~F z5^7BR;J6K8YH)=X7LMfuBH%geKofy)|Bxd@rtHt`d2Be|rg@_`HX|KNhyke_HbjiG z&99#WHb@h9C15}aM{)=NcB=u~RRDM(tByW*f_)2!OPgdVKufmoo)0*Z6+q95P4T@< zFC&<^cUeG50jf~E8SGx$VVm_; zin>RSo1Qo;G`jQpDv|D+^Z0Dy567j?I(PtQHmQn9?g|tRx5>yVRAw`MbeCQ7;e8Nn z3SP#pK|voisqrK+5C1Ro@~9gq8_SOxT7kugIr z3qYC$_F+m^R#%fmpSMeSQKX!&PrGt59^gUz3yI##-)YczUw>?h=}j|g)syjmzJ^-L zMT@b-y8~f=d3rnc32@(&8yg$NEWf=oMbFNB8&Lz9{%vhhFGw8g!B91QzdGTYxNBx{{YJd;_TS}bP_~M=Mn(m<+i)(Qq7`wf7SntYiQ6f>#K9K^}-aYhnmbnt82GSilF<_ zS)}nBbPlw=K?D9vys9NG8ZY`BNbV@{XA$`54t|tQ_nfK7-*BK|;5?4Y`$gf$33OD5s1R8jVKTv?MQ-T=6jl-0?ED0VFTI z1rftOl;_+C3Pc_*K@Q5h4X3k1A!+ zeR}0bt$xy;kZXUqaLqM?ER-uT_?Y!uIemAum%Cnu;3;j-;3k=w53Rz(#rrD|W8Xj6)N*)y>#m#x5v(o?Kr(bSfne{vrsD|&F;Pl( z*NCIfT=e`WCLgE34i3QXEVk(#_+fis#I}d&Kv?e0!^Z+PHxK$q45=ohl)Xdrx#go@ z7}(aizfSl97jQ?HiKyQo9LfpyJ2qC5QTKJHhNlk*KqSSuck@n_%{7jLzbb%GRSMwr zvRrHaTi73Zm63=K#^`-bJxyV?K>2_yFw^JHb9w4vFaVY(dYO9({cE z!&#lisHo95x5Fz|q4crkJSem*13VssS3V1EdX!s9QWkY#t=-FY8WGlKUFvvKl4?2O z0uaw-Q~7l7I3Rh|>@st2Y@Ek0U*}v{lN6Ji8rRmJIRpFcWj!8Vq(Yq2MlUWk%UUW4 z-se$|C6Y#qa0^-EAk{6WJr2rE+&9Rjj(vsbdoa&u)1dQg1bZ3w^Q@py+uPA(9&5iBiS%_asvMqyek>}~UBSiG z!+XF#rR93MK@4K1Odhj;(J)1NLWZ_-j7e}pEIiihqImkA9^|9=JGt_{3XFR$_rqF0 zph7;&=+P1g zp&L1G5aP=F-#3!eSM(T`f*#}4f0;4PBhP*FsQAFyjSpR42)*iA@##3@{JB`Ewy7mx zU%`Sr(X_Kuu~ijJ!wMc$e&Jnl_pX&*lg1CKrMwR>AufvU` zhOjy6RL61+9i+{L!?e*>oEmz3&5iN$H?!}r9k5f21wD+?Nv-$@(zbxzah|;J2iFLO zEm9c=jncL=3VXOF6F7a<`ek7oNt}0Xr?qbjuyzz1eXYq}-u5os!BJZ%; zO0`U0gb2S^#Xvr?C!9x4jN3k!Z0lw;V!5%~Fl*PIsSXu>&x(OQ(b4;TW->SWWe;U- zFA)c;2!j>#t9uyo39A3-B@lP+Z((j~XjogHSlB_{etILz)Y?gKcprtOiO|B`Vr5li z1P}jUuS zw{;9{)EB!u!AiYnZn;Di)Rd^~Lv)Ap>*vTN7jjnvnQQ&~>J zMQ^(v#OQc+<3G-B_V}bA0Pb0-y-LWqMg!Hb@BOB{YG%2gS98e~i2UZ|BE2V@b2Kol z%e>=HWo{DMN37jT%=mlr1pz?|-JkASvC+|pzWY}N z>UxbGcxl5yfqnl=hN!}SduZ*)TyQ!;@gUcm_G6L-y1|!HH*Pby8sIr6+YI7i`c7`p+NsmhNu^h`W9vd_O*7R&s2OvU><)m9>_-BYNNMk ztfKycIt!m&Lgr7KcO1p&1#eDFNx;z`o~Es=Wu^}_5@zIiw@~Y;GxYt65UKB~TCGM( z~GT-zCJ0f-e6!Y4nWrC3`W%|0>QTE&XbTWxd0eic=~;smf1U? zr|%pDQ&HL+_FoAS)Y(VN)e0=+6PZFzIXoL1CEqgdWR@EtLdyBz3m2!sRuCyU>m-~7 z(9uD3SQ_8vb5HC%ExKC)!PiRO=OIJPP}yAcF+So>GI}#R+S-X+h zn4z7BZw`lJgllzD%Eg4KvX-qMyMEGE8!z%Y@VI({f4?p0n|)#1%QEVn~T714Ezb|?7UOl z8VK*A={p2X#s9QE&Z-pp(lD*^tQg=&i|fx14Xql4-AXJgQJ z4rybM)S@DEVUk7_ft0@`%y$j}&|CD@z~#sH)^5X>V`+4OePTDB=4_V7W=8&k%RvWC zEE>`eN6ABfs-`m0>|N=3Co}V>Yg1dB=9F_QvgF6-RevPgf|D5{X&+_lB^4&hFmQS> z9YOTP^}-+{5(B90d_+6C9uQ+8tJv_0dT6Lbir<(RFy-G|Kc2lrWO51$1U>=L1zAX# zn2JgyY5|Nq?D&UDtnSu2Y4QlFLmt-FkdCNiIZcBVUf$ye&)O0O6^}sb8wSd|TWDIV zgS*M2alSt65)Q`fvfhunEs!R70LuznNpZmE8E?z+abv%D?>al+a-~Mznd8em=hD%a zp>e>T-0*B{JE+qD3dOzXPfJg@q^jWRuWmvqTEAVu3Ez zKIoI30bH?+GV|XHKpYhXQTrf)P{hQwSphg^$!z&E-|5GJ^levwm6Jd?h7>MsZ{Og91MVRe+W>-vu|3Hr zKgun3nvZXAytj^x(RfnW0V$c&UN#1PrS2kVvHS5J7XZv{?dpoGfwK8#e=U95%{586 zq|wD$1aFD%4T~B4=rmC2`uVV;02=jeWoa%yC(j_?(xOjVN-8fWTn9HLPu`yX>EAs7 zdPpZoj8z4tu-e7uE;Q-k8H*Sno}{J@T-%phrXc>^twqyNQ!8#*3?v#C3_LqwX@BoO zI!sWMh2v4b-#EY7lJccb6Tqu{BTMaSvb49s&7*`De)~-e1SZ+;4%%WJ(3N}iQM`xh zZ71cF-&jC+SIymLlw6c#cBMO_&@ho7F^dka^kkI)H3gY>RyG|aWw#tBE*URZTL9%i z83@VEbET};i?jfb-qR*G`#LnKicwmC>IpJ4)gbR6?$_sYc#swI9-TB!`pm5UjmI)8 z(+LV5w67y9I3Eok4hA7&p(zmaPQzjmsOjCi>i&n7682rocAcIR#gmG9rBpj@603dW zrjpNTdd+_*=;}NO*nYx~ypR|1L<0+pgO{DSq+G4L0Vm!9RXZ#KvU@TwJ3D)FG%-}x zD^PLo^0SG<-2rD=h)ke3gF3;#>!J8A7c}{Q8o~wEdQUq$JEQV?ks@;q9ct?9Yc6K( zXHJZj9CzyHOqgAHb&XL8gk`k4Jx60&z+a?JCKuoWx~8G3fy}9IP~2v9h3ru-9plm{ zX+xbVnzrF()|qzplzarS3a~p%uIiCd$|~=~7f_!2^QSWo<|zO5?TEI;6sJ?gHX9&> zHiMr7$3Z(vz;!k$S)Ry%^JvC^a6nGbqL!NE*=TVI-1?~8x)P|lQDZIiUC1!Y+K2$a z4)6)~00m(=>21@S@Ks*%pk9xuijMUA!&BxFt$*|IC`~OW1{?qfTeS{H6Om)@0P{pS z`(uiaNV-4Mr3ATgFzYY-C}+blO|j)bPrALUz()L5Q*tjxa z_oV1!!bG5eF*2&l6w&TCwcC83hddzban++=_SPTYWjn=*mWxtxbsr0*gxmVLH_;ow z39Gz%n9x?u2iI$h5 z0P!bIM=gWDK5k<<(Y9(|D|y+tWWDa_ZShUe&`i=?$0)Z;sv4hPS0@dc++p z)WFt4?ds6XcAnN6H02AQcgo@3T+g?<7~!!=<^83sCh3*fMf&KwtFXj!nUDv-K1TgU z8AuFr85#k(PuBIO9l$G$+2VG`Akm6fn$L3bEl%+*omlju;|Uukie!%;^(J$2`-U$E z10Ia4hqGB(02SbrjCU8%Li7%`26~GC_fGNJ+7xmbA~#mVrSzOCM_K^fgpOwl0;t9; zWVf?h4pUDcJWZXMBI$+c2&bEJ!#aUWfLNuJ&|51xTM!o6(o=O*bdn5lG<-YdGy`R8f=d2yvpK1fyy+^!AMXQc zKs1ue5O-ek(0*y;)Q#u6)cgt!-&^$}E1gvfA(Oy%OkQ|k8g4s%hrnx3Y0e{H3EJz&GtqYYmd zrFe1#gQ$xm+xCuN@q!0=xLphyhx`+gRb%V?ECbk@jX)yodx#8?Z6A?D|L;>4@|+aw0)!Sr=^_R^93Ju< zI7!lW>`*iDpRjL=^a`MGrpF)0(9EBD=%N!=zXf^*rm8vE>)4-NiFKgMy{OFue;{?m z->|Ng?ot?lrnSMTWF!XI@@h%YM`<^n?VR(4(6Z7op5c@em!35~ z*CZ$R;)I0IK`z-VQ=sB=9AtYK4Z1;*;#NF9ud@S`YZzs1+$~vU*(a^a7~z>q`c?KqaFjkZ-ICN)*SpbN!O1BhA}^|BO@vlR(>1 zt#EO~|HjUPJjw8OKtadmK%k@)x3Nig`dP@$hBZlP3lja}*#8VEktA84`9v<%cBU&A zvhwQqwwpk)ZBPoCf>H--)CtbPg6Mz7lEx!bi5>8Qu)yyK8>kc(5#A6b&QI+H@eD*( z=B)khhg`Q0f~=uCC;zYHAwaVy<#x7p6_3I7c#UEu=U5k4ve6l$EO!o{sFaVZ-?p2) zo#iSOOew~_*K-tQI{i(w=~fEhaPJ|_;8SP==_tRT!b`Vz{MY86=02i?oOgCq5w&dG zpx=6Clvm(A=#HfJhfT*LY{|r8-i`_cRPXmRWfKsdT32`ZEU_qpjz|dQ+(mQ_3bxzm1L*mHF@}& zm?VF^0?C8Y7FlbBh{Ux5(KYaX@t?_xbiA`3u(3(9{iu{zVntCgJ8-rlP| zd5uXX49arK+`UnA&Ywd}z=pA&CC{J!i=r!$5`aFjn8{Q}7%ae7#?qZ8gQDe`~G)oE3%pUZrCnz)aOA+`(oT5A?2b zv5*%m=&RozTY=E{j{8_ziMSd4Cx(h;B_sHWMhX=R_cxz4fo20N1096)8!oFwbpw)! zZtwwcjn%Z$OG`nAM2Kv4q0|pxqoyL|Y1&nPID&5N@8erjorKljv3C=$|Ly`45u~KW zrmKrVzI`-7$68?hO`0`F!uL@w`TfQx$pJur8fXvn_O|1-mede*koT99S*xa{hClU{ z?u;YWUgnV>aK= zW+C^yO$H{PjvsdE0o=4R21qfz(Wf#*!UBLC^e(~H@vUV^*wJiO{3o44ySP4(rQr|9 zZq5;ij4zbF)Ism$x(*qVJ^$aUkQz$m|Cdo|^!GNmRGF+8IkwX%C3)uaMb2h-@U2Ap z_T>G!&^)&tx}ZY}&ZsXP_+&bDRAI@RJ7GCFU@GL9vITkK(P%)~9s*#^>cxiouz;}1 z0zG!YkQIy$JN$c3b{H;eV<4nTUl+@Cpwf6G=(u$f@>*9ng+%ozrfHfy05lqX`&8ql zf&Pf)-dv~?FON0JY*%>K_y6ab~ykpP(a$MoC@x% zh`B^`s+tFc40IVsBKt;zuXe%x;c#&BpB*4JfvkL2kWHQfS`ed3{zKuwHMUvaH`PK$k(a9>%t_$8c5?$Qb$Z^L4^&fpa8m$@GVYGj>;De5~~+w9GK1c zGrS3Y#NFCY{yp|hPh&W0FR++pCG6(LYT3nJE#IN1lBUgf@CReET1?c!ozTS#8fa5@ zP}+hz;ea{a1Bw!Ydw6(m#z;7tdVyJpPcGB@Lo)3o&wE6bm@QPCPHJ5uWFS?h1p`rVimQqnSHg}{Pmd&jJ*5IUng8({qy5|w|?2!SEH6NN#VtnG9V!+wBBn> z&hyQD1DVPhu!|Q>d{-B2K&B|Tv1MYS&IbUgL_njS==)WZDI$~2w%S_-6

9pB8?= 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 U=GVPIxxN$nrh1Q$p8fm30M9~Y5dZ)H literal 0 HcmV?d00001 diff --git a/output/META_2025-01-25_2025-02-02_20250204_043306/confusion_matrix.png b/output/META_2025-01-25_2025-02-02_20250204_043306/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..db3226db37bd487f163ae72981f13c610ba21010 GIT binary patch literal 14355 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 literal 0 HcmV?d00001 diff --git a/output/META_2025-01-25_2025-02-02_20250204_043306/predictions.csv b/output/META_2025-01-25_2025-02-02_20250204_043306/predictions.csv new file mode 100644 index 0000000..98ccf23 --- /dev/null +++ b/output/META_2025-01-25_2025-02-02_20250204_043306/predictions.csv @@ -0,0 +1,99 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.01,0.02,692.5,691.5,694.0,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume increase in recent intervals', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP with the last several intervals maintaining or slightly increasing VWAP values. The price has been stable around the VWAP, indicating a balance between buyers and sellers, while the volume has increased, suggesting stronger market participation. The alignment of MA5 and MA20 also supports a bullish trend. Historical similar contexts also showed a continuation of the upward VWAP movement. Therefore, the prediction is for a slight upward movement in VWAP with moderate confidence, and the suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 14:30:00-05:00,3.3326982765036206e-05,7.394722839729195e-05,181744.0,3.3326982765036206e-05,up,True,14,4 +up,0.85,0.01,0.02,693.12,692.5,694.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price changes', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP with the price stabilizing around the MA5 and MA20, indicating a potential continuation of this trend. The volume has been increasing, suggesting strong market interest, and historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a cautious upward prediction is made with a high confidence score. The suggested entry, stop-loss, and take-profit levels are set to optimize risk management and potential reward based on current price levels and expected volatility.",2025-01-31 14:35:00-05:00,3.062724796071281e-05,-0.0005260473354783968,176430.2,3.062724796071281e-05,up,True,14,4 +down,0.85,-0.02,0.03,690.5,692.0,688.0,"['Consistent downward price movement', 'Increasing volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Recent VWAP movements stabilizing at a higher level']","The current market window shows a consistent downward price movement with increasing volume, suggesting strong selling pressure. The MA5 is below the MA20, indicating a bearish trend, and the VWAP has been stabilizing at a higher level, which often precedes a correction. Historical similar contexts also show a tendency for VWAP to move down after such patterns. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 14:40:00-05:00,2.664515700789849e-05,-0.0005509967782915404,160996.6,2.664515700789849e-05,up,False,14,4 +down,0.85,-0.02,0.03,689.5,691.0,688.0,"['Consistent downward price movement', 'Increasing volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Recent VWAP movements consistently upward but price declining']","The current market window shows a consistent downward price movement with increasing volume, suggesting strong selling pressure. The MA5 is below the MA20, indicating a bearish trend. Despite recent VWAP movements being upward, the price is declining, which is a divergence that often precedes a reversal. Historical similar contexts also show a tendency for VWAP to move down after such patterns. Therefore, a short position is recommended with a high confidence score.",2025-01-31 14:45:00-05:00,2.3385897492622654e-05,-0.0006288984495338712,148430.8,2.3385897492622654e-05,up,False,14,4 +up,0.75,0.02,0.03,689.5,688.5,690.5,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume spikes followed by declines', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP, supported by a series of price increases and stability around the VWAP level. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume spikes followed by declines suggest short-term volatility, but the overall trend remains bullish. The alignment of MA5 and MA20 further supports the upward movement. Given these factors, a cautious long position is recommended with a high confidence score.",2025-01-31 14:50:00-05:00,2.3919533959471106e-05,-0.0008522093319454083,148240.4,2.3919533959471106e-05,up,True,14,4 +up,0.75,0.01,0.02,690.76,689.5,691.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price decrease']","The current market window shows a consistent upward trend in VWAP, supported by a series of upward movements in the previous intervals. Despite recent price decreases, the VWAP has continued to rise, indicating strong buying pressure. The price is stabilizing around the MA5 and MA20, suggesting a potential reversal or continuation of the upward trend. The volume has been increasing, which often precedes significant price movements. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 14:55:00-05:00,2.416899790186333e-05,0.00016727001269881137,155559.2,2.416899790186333e-05,up,True,14,4 +up,0.85,0.02,0.03,690.86,689.5,691.5,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Increasing volume with price decline', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP with the price stabilizing around the VWAP level, indicating a potential continuation of this trend. Historical similar contexts also show a pattern of VWAP moving up after such setups. The volume is increasing despite a slight price decline, suggesting strong buying interest. The alignment of MA5 and MA20 supports a bullish outlook. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence.",2025-01-31 15:00:00-05:00,2.551939571415751e-05,-0.0004840329955920486,160034.0,2.551939571415751e-05,up,True,15,4 +up,0.85,0.01,0.02,688.5,687.5,689.5,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume spikes followed by consolidation', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP, supported by a series of price stability around the VWAP level. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume spikes followed by consolidation suggest a potential for a short-term upward movement. The alignment of MA5 and MA20 further supports the bullish sentiment. Given these factors, a cautious long position is recommended with a high confidence score.",2025-01-31 15:05:00-05:00,2.7022906852525175e-05,-0.0011112843631147784,183864.0,2.7022906852525175e-05,up,True,15,4 +up,0.85,0.01,0.02,688.0,687.5,688.5,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume fluctuations with no significant downward trend', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the VWAP level. Historical similar contexts also indicate a continuation of the upward VWAP movement. Despite some fluctuations in volume, there is no significant downward trend in price or VWAP, suggesting stability. The alignment of MA5 and MA20 further supports a bullish outlook. Given these factors, a cautious upward movement in VWAP is expected with moderate confidence.",2025-01-31 15:10:00-05:00,2.718830059567079e-05,-0.0006337696950041161,202566.2,2.718830059567079e-05,up,True,15,4 +up,0.85,0.01,0.02,689.0,688.0,690.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines', 'Historical context showing similar patterns']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a potential continuation of this trend. The volume spikes followed by declines suggest short-term volatility, but the overall pattern in the historical context windows shows a tendency for VWAP to continue rising after similar setups. Given these factors, a cautious long position is recommended with a high confidence score.",2025-01-31 15:15:00-05:00,2.877187765926159e-05,-0.0005268804652132086,215971.2,2.877187765926159e-05,up,True,15,4 +up,0.85,0.01,0.02,688.5,687.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price stability']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has been increasing, suggesting strong buying interest. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:20:00-05:00,2.9050599417212997e-05,0.00040428192532160345,217936.2,2.9050599417212997e-05,up,True,15,4 +up,0.85,0.01,0.02,688.5,687.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of strong bearish pressure. Volume fluctuations are present, but there are no significant spikes that would suggest increased volatility. Given these factors, a continued slight upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:25:00-05:00,3.257172507370454e-05,0.0007346926748977856,238761.6,3.257172507370454e-05,up,True,15,4 +up,0.85,0.01,0.02,686.5,685.5,688.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has been fluctuating with spikes followed by declines, suggesting short-term volatility but overall stability. Historical context windows with similar patterns have resulted in a slight VWAP increase. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:30:00-05:00,5.172106886985883e-05,0.000876361035427986,321471.0,5.172106886985883e-05,up,True,15,4 +up,0.85,0.01,0.02,685.5,684.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price decline']","The current market window shows a consistent upward movement in VWAP despite recent price declines, indicating strong buying interest. Historical similar contexts also show a pattern of VWAP continuing to rise after such setups. The price is stabilizing around the MA5 and MA20, suggesting a potential reversal. The increasing volume during price declines indicates accumulation. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence.",2025-01-31 15:35:00-05:00,5.771394946959182e-05,0.0008068824199469748,344973.25,5.771394946959182e-05,up,True,15,4 +up,0.85,0.01,0.02,686.76,685.5,688.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price stability']","The current market window shows a consistent upward movement in VWAP with no significant downward corrections, similar to historical windows where VWAP continued to rise. The price is stabilizing around the MA5 and MA20, indicating a potential continuation of the trend. Volume is increasing, suggesting strong buying interest. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:40:00-05:00,7.364838079293445e-05,0.0008212550844322042,377708.0,7.364838079293445e-05,up,True,15,4 +up,0.85,0.01,0.02,687.51,686.5,688.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume with price recovery']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has been increasing, suggesting strong buying interest, which often precedes further price increases. Historical similar contexts also show a tendency for VWAP to continue rising. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:45:00-05:00,0.00010521366044669023,0.00173290437008089,477075.0,0.00010521366044669023,up,True,15,4 +up,0.85,0.01,0.02,688.04,686.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes with price increases']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume spikes suggest strong buying interest, reinforcing the likelihood of a further VWAP increase. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 15:50:00-05:00,,,659297.0,,up,True,15,4 +up,0.85,0.01,0.02,689.27,688.5,690.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by stabilization']","The current market window shows a consistent upward trend in VWAP, supported by recent price stability around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The recent volume spike suggests increased market activity, yet the subsequent stabilization indicates a potential for continued upward movement without excessive volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-30 12:40:00-05:00,3.425632927989142e-05,0.000436525406958016,118438.2,3.425632927989142e-05,up,True,12,3 +up,0.85,0.01,0.02,687.5,686.5,688.5,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume spikes followed by consolidation', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the VWAP level. Historical similar contexts also indicate a continuation of the upward VWAP movement. The recent volume spike suggests increased interest, but the subsequent consolidation indicates a potential for a short-term upward movement. The alignment of MA5 and MA20 further supports the bullish sentiment. Given these factors, a cautious long position is recommended with a high confidence score.",2025-01-30 12:45:00-05:00,3.2113653307075385e-05,-0.00015914179188983302,113039.0,3.2113653307075385e-05,up,True,12,3 +up,0.85,0.01,0.02,688.17,687.5,688.8,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume decrease with price stability']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has decreased, suggesting a consolidation phase, which often precedes a continuation of the trend. Historical similar contexts also show a pattern of VWAP continuing to rise after such setups. Therefore, the prediction is for a slight upward movement in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 12:50:00-05:00,3.459421060864054e-05,-8.261841781290191e-05,113392.8,3.459421060864054e-05,up,True,12,3 +up,0.85,0.01,0.02,688.45,687.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume stability with slight increases']","The current market window shows a consistent upward movement in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. The volume, while slightly decreasing, remains stable, suggesting no immediate selling pressure. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 12:55:00-05:00,3.408582616465372e-05,0.0013920022221138306,120177.6,3.408582616465372e-05,up,True,12,3 +up,0.85,0.01,0.02,688.67,688.0,689.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume decrease with price stability']","The current market window shows a consistent upward movement in VWAP with the last several intervals maintaining a stable price around the MA5 and MA20, indicating a bullish trend. The volume has decreased, suggesting a consolidation phase, which often precedes a continuation of the trend. Historical similar contexts also show a pattern of continued VWAP increase. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:00:00-05:00,3.083620042687585e-05,-0.0006981498750838755,113841.0,3.083620042687585e-05,up,True,13,3 +up,0.85,0.01,0.02,686.1,685.5,687.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. The recent volume spike suggests increased interest, but the subsequent decline indicates a potential stabilization. Given these factors, a slight upward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:05:00-05:00,3.191422147880152e-05,-0.00017584399577996734,105989.0,3.191422147880152e-05,up,True,13,3 +up,0.85,0.01,0.02,689.36,688.5,690.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of strong bearish pressure. Volume fluctuations are present, but there are no significant spikes that would suggest increased volatility. Given these factors, a continued slight upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:10:00-05:00,3.213842791882637e-05,0.0002793828390180719,111128.2,3.213842791882637e-05,up,True,13,3 +up,0.85,0.01,0.02,688.0,686.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines', 'Historical pattern of VWAP increase in similar contexts']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume spikes followed by declines suggest short-term volatility, but the overall pattern in historical similar contexts shows a tendency for VWAP to continue rising. Given these factors, a cautious bullish position is recommended with a high confidence score.",2025-01-30 13:15:00-05:00,3.1296390587687295e-05,-0.0001709048758067877,109377.4,3.1296390587687295e-05,up,True,13,3 +up,0.85,0.01,0.02,688.43,687.5,689.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume is relatively stable without significant spikes, suggesting no immediate reversal. Given these factors, a continued slight increase in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:20:00-05:00,3.214618852770412e-05,0.0010932961770305227,109169.0,3.214618852770412e-05,up,True,13,3 +up,0.85,0.02,0.01,689.92,688.5,690.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility and a potential for continued upward movement. Volume fluctuations are present, but there are no significant spikes that would suggest a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:25:00-05:00,3.2651927277582704e-05,0.0008469521646770062,104823.8,3.2651927277582704e-05,up,True,13,3 +up,0.85,0.01,0.02,687.5,686.5,688.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward movement in VWAP with no significant downward corrections, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of strong bearish pressure. Volume fluctuations are present, but there are no significant spikes that would suggest increased volatility. Given these factors, a continued slight upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:30:00-05:00,3.1974215377483794e-05,-4.300265027998296e-05,104534.6,3.1974215377483794e-05,up,True,13,3 +up,0.85,0.02,0.03,687.5,686.5,688.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of strong bearish pressure. Volume fluctuations are present, but there are no significant spikes that would suggest increased volatility. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:35:00-05:00,3.164104893726982e-05,-0.0009905963478081814,106794.2,3.164104893726982e-05,up,True,13,3 +up,0.85,0.02,0.03,689.19,688.5,689.8,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility. Volume fluctuations are present, but there are no significant spikes that would suggest a reversal. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:40:00-05:00,3.11007128148133e-05,-0.0012149130988646228,112115.8,3.11007128148133e-05,up,True,13,3 +up,0.85,0.02,0.01,689.44,688.5,690.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume consistency', 'Historical pattern of VWAP stability']","The current market window shows a consistent upward movement in VWAP with no significant volatility, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of strong downward pressure. Volume is consistent, supporting the upward VWAP movement. Given these factors, a continued slight increase in VWAP is expected, with a high confidence score due to the alignment with historical patterns.",2025-01-30 13:45:00-05:00,2.9581715204951564e-05,-0.0010674908437976471,109778.4,2.9581715204951564e-05,up,True,13,3 +up,0.85,0.02,0.03,690.44,689.5,691.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume consistency', 'Historical pattern of VWAP stability']","The current market window shows a consistent upward movement in VWAP with no significant volatility, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a strong trend. Volume is consistent, supporting the VWAP movement. Given these factors and the historical patterns, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:50:00-05:00,2.6927130817422373e-05,-0.0007942980881825712,106467.4,2.6927130817422373e-05,up,True,13,3 +up,0.85,0.02,0.03,689.84,689.0,690.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations without significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility and a potential for continued upward movement. Volume fluctuations have not resulted in significant price changes, suggesting that the current upward trend may continue. Given these factors, a cautious long position is recommended with a high confidence score.",2025-01-30 13:55:00-05:00,2.8267196358289226e-05,-9.093581175484422e-05,115376.6,2.8267196358289226e-05,up,True,13,3 +up,0.85,0.02,0.03,689.07,688.5,689.7,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume is relatively stable, suggesting no immediate volatility spikes. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:00:00-05:00,2.573123887406048e-05,-0.00046389757025439016,111246.6,2.573123887406048e-05,up,True,14,3 +up,0.85,0.02,0.03,686.5,685.5,688.0,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume fluctuations with no significant spikes', 'MA5 and MA20 alignment']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, indicating a strong bullish sentiment. The price has been stable around the VWAP, suggesting a balance between buyers and sellers. Volume fluctuations have not resulted in significant price changes, indicating a lack of volatility. The alignment of MA5 and MA20 supports the bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:05:00-05:00,2.595034712099542e-05,-0.00017127268738642565,106352.0,2.595034712099542e-05,up,True,14,3 +up,0.85,0.02,0.03,687.09,686.5,688.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase in recent intervals', 'Historical pattern of VWAP stability after similar conditions']","The current market window shows a consistent upward movement in VWAP with stability in price around the MA5 and MA20, indicating a potential continuation of this trend. The recent increase in volume suggests increased market activity, which often precedes further price movements. Historical context windows with similar conditions also resulted in stable or slightly upward VWAP movements. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:10:00-05:00,2.7233815464655642e-05,7.315734438484434e-05,107123.6,2.7233815464655642e-05,up,True,14,3 +up,0.85,0.02,0.03,686.9,686.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward movement in VWAP with the price stabilizing around the MA5 and MA20, indicating a bullish trend. The volume has increased in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Therefore, the prediction is for a continued upward movement in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:15:00-05:00,2.604836993774784e-05,0.00029874800560480974,115379.2,2.604836993774784e-05,up,True,14,3 +up,0.85,0.02,0.03,686.88,686.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations without significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations are not significant enough to suggest a reversal, and the overall trend remains positive. Therefore, a cautious long position is recommended with a high confidence score.",2025-01-30 14:20:00-05:00,2.6925220006468464e-05,0.000386814328121432,107357.8,2.6925220006468464e-05,up,True,14,3 +up,0.85,0.02,0.03,686.5,685.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase with price recovery', 'Historical pattern of VWAP stability']","The current market window shows a consistent upward movement in VWAP with the price stabilizing around the MA5 and MA20, indicating a potential continuation of this trend. The volume has increased, suggesting strong buying interest, and historical patterns show similar conditions leading to stable VWAP movements. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:25:00-05:00,2.8492761392384658e-05,0.0005844039444404259,110622.8,2.8492761392384658e-05,up,True,14,3 +up,0.85,0.02,0.03,685.5,684.5,687.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume, while fluctuating, does not show significant spikes that could indicate a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:30:00-05:00,3.4155880371866676e-05,0.0007455214247938935,122853.0,3.4155880371866676e-05,up,True,14,3 +up,0.85,0.02,0.03,686.42,685.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by stabilization', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. The volume spikes followed by stabilization suggest strong buying interest without excessive volatility. Historical context windows with similar patterns also resulted in upward VWAP movements. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:35:00-05:00,3.781501998290082e-05,0.0010595901073552905,132387.8,3.781501998290082e-05,up,True,14,3 +up,0.85,0.02,0.03,687.08,685.5,688.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by stabilization', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP with the price stabilizing around the MA5 and MA20, indicating a bullish sentiment. The volume has been relatively stable with occasional spikes, suggesting healthy market activity. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:40:00-05:00,4.5746423257664315e-05,0.0014998280307332856,144251.4,4.5746423257664315e-05,up,True,14,3 +up,0.85,0.02,0.03,687.28,686.5,688.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility. Volume fluctuations are present, but there are no significant spikes that would suggest a reversal. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:45:00-05:00,5.670950558994692e-05,0.0013996245491976755,167296.4,5.670950558994692e-05,up,True,14,3 +up,0.85,0.02,0.03,686.88,686.5,687.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations without significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations suggest no immediate selling pressure, allowing for a potential upward movement. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-30 14:50:00-05:00,6.743884599647032e-05,0.0013359749848486646,195249.6,6.743884599647032e-05,up,True,14,3 +up,0.85,0.01,0.02,670.85,670.0,671.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with a general upward trend']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a tendency for VWAP to continue rising. Despite some volume fluctuations, the overall trend remains positive. Therefore, a cautious long position is recommended with a high confidence score.",2025-01-29 10:50:00-05:00,5.1108751305595224e-05,6.641571677812319e-05,134019.0,5.1108751305595224e-05,up,True,10,2 +up,0.85,0.01,0.02,672.16,670.0,674.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume fluctuations suggest normal market activity without extreme volatility, reinforcing the likelihood of a steady upward movement. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward trend while managing risk.",2025-01-29 10:55:00-05:00,3.910842685705962e-05,-0.0011362296167830022,127970.2,3.910842685705962e-05,up,True,10,2 +up,0.85,0.01,0.02,672.41,670.85,673.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume is relatively stable, suggesting no immediate volatility spikes. Therefore, a cautious upward prediction is made with a high confidence score.",2025-01-29 11:00:00-05:00,3.665985585116216e-05,-0.000506867005704098,111390.2,3.665985585116216e-05,up,True,11,2 +up,0.85,0.02,0.03,674.69,672.5,676.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical patterns showing VWAP stability or slight increase']","The current market window shows a consistent upward trend in VWAP with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical patterns with similar setups have shown a tendency for VWAP to continue rising or stabilize. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:05:00-05:00,3.58465251380502e-05,-4.782292009455902e-05,109486.2,3.58465251380502e-05,up,True,11,2 +up,0.85,0.02,0.03,672.68,671.5,674.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical patterns showing VWAP stability or slight increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in stable or slightly increasing VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:10:00-05:00,2.910524490812305e-05,-0.00046271084964427667,100752.0,2.910524490812305e-05,up,True,11,2 +up,0.85,0.01,0.02,671.5,670.5,672.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a pattern of continued VWAP increases. The volume is relatively stable, suggesting no immediate volatility spikes. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:15:00-05:00,2.9581189914029693e-05,0.0005567770220379908,93500.6,2.9581189914029693e-05,up,True,11,2 +up,0.85,0.01,0.02,672.58,671.5,673.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a pattern of continued VWAP increases. The volume is relatively stable, suggesting no immediate volatility spikes. Given these factors, a cautious upward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:20:00-05:00,3.200280941512146e-05,0.0009971429529856135,93343.8,3.200280941512146e-05,up,True,11,2 +up,0.85,0.02,0.03,671.5,670.5,672.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Recent increase in volume with price rise']","The current market window shows a consistent upward trend in VWAP, supported by a recent increase in volume and price stability around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:25:00-05:00,3.744463088517502e-05,0.000544498346965433,103246.6,3.744463088517502e-05,up,True,11,2 +up,0.85,0.01,0.02,671.0,670.5,672.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by consolidation', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward trend in VWAP with the last several intervals maintaining or slightly increasing VWAP values. The price is stable around the MA5 and MA20, indicating a lack of strong downward pressure. Volume spikes followed by consolidation suggest that the market is absorbing the volume without significant price drops. Historical context windows with similar patterns also resulted in slight VWAP increases. Therefore, the prediction is for a continued slight upward movement in VWAP with moderate confidence.",2025-01-29 11:30:00-05:00,4.404069607139016e-05,0.0006019317062364582,108744.8,4.404069607139016e-05,up,True,11,2 +up,0.85,0.01,0.02,671.41,670.5,672.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Recent increase in volume']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by a stable price around the MA5 and MA20. The recent increase in volume suggests a potential continuation of this trend. Historical similar contexts also show a tendency for VWAP to continue moving up. Given these factors, a cautious upward prediction is made with a moderate confidence score. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-29 11:35:00-05:00,4.77566034755017e-05,0.0004560371581313616,120417.6,4.77566034755017e-05,up,True,11,2 +up,0.85,0.01,0.02,671.34,670.5,672.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume is relatively stable, with no significant spikes, suggesting a lack of immediate volatility. Given these factors, a continued slight upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:40:00-05:00,5.1172338324190214e-05,0.00010102783370963264,128756.8,5.1172338324190214e-05,up,True,11,2 +up,0.85,0.01,0.02,673.12,671.5,674.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical pattern of VWAP increase in similar contexts']","The current market window shows a consistent upward movement in VWAP, with the price consistently above both MA5 and MA20, indicating a bullish trend. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in a slight upward movement in VWAP. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:45:00-05:00,5.305336090216661e-05,0.000601727943511654,138547.8,5.305336090216661e-05,up,True,11,2 +up,0.85,0.01,0.02,674.0,672.5,675.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical pattern of VWAP stability after similar conditions']","The current market window shows a consistent upward trend in VWAP with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest. Historical similar contexts also show a pattern of VWAP stability or slight increase following such conditions. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:50:00-05:00,5.228148090602458e-05,0.0006831887724180752,129492.8,5.228148090602458e-05,up,True,11,2 +up,0.85,0.01,0.02,672.87,672.0,673.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:55:00-05:00,4.977479175710675e-05,0.0002424335030812852,122622.8,4.977479175710675e-05,up,True,11,2 +up,0.85,0.01,0.02,672.95,672.5,673.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:00:00-05:00,5.8998035444013386e-05,0.0005446299826864509,139443.4,5.8998035444013386e-05,up,True,12,2 +up,0.85,0.02,0.03,674.35,672.5,675.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward trend in VWAP with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:05:00-05:00,5.791206157346185e-05,0.0005518590852826022,137633.4,5.791206157346185e-05,up,True,12,2 +up,0.85,0.02,0.03,674.27,673.5,675.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:10:00-05:00,5.616447251266532e-05,0.0003371268583270415,124130.0,5.616447251266532e-05,up,True,12,2 +up,0.85,0.01,0.02,674.49,673.5,675.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, supporting the price rise, and the historical context windows show similar patterns where VWAP continued to rise. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:15:00-05:00,5.3035711624016546e-05,0.00012477195698490373,116180.6,5.3035711624016546e-05,up,True,12,2 +up,0.85,0.01,0.02,674.79,673.5,675.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:20:00-05:00,4.061036498875792e-05,-0.0004955568443909264,118706.8,4.061036498875792e-05,up,True,12,2 +up,0.85,0.02,0.03,675.0,674.5,675.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:25:00-05:00,3.541679841834178e-05,-0.0007552366284326317,96760.4,3.541679841834178e-05,up,True,12,2 +up,0.85,0.02,0.03,675.74,675.0,676.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has increased significantly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:30:00-05:00,3.483620919025876e-05,-0.0010597114988388223,91949.4,3.483620919025876e-05,up,True,12,2 +up,0.85,0.02,0.03,675.98,675.0,676.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has increased significantly in the last interval, suggesting strong buying interest. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:35:00-05:00,4.081269675965116e-05,-0.001991630715659637,120164.2,4.081269675965116e-05,up,True,12,2 +up,0.85,0.02,0.03,675.7,675.0,676.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, particularly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:40:00-05:00,4.203284398002216e-05,-0.000751623050800676,137401.8,4.203284398002216e-05,up,True,12,2 +up,0.85,0.02,0.03,675.34,674.5,676.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has increased significantly in the last interval, suggesting strong buying interest. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:45:00-05:00,3.991371052669557e-05,-0.000500779517204647,133348.2,3.991371052669557e-05,up,True,12,2 +up,0.85,0.02,0.03,674.4,673.5,675.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, particularly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:50:00-05:00,3.690406885836772e-05,5.588187276092671e-05,127249.0,3.690406885836772e-05,up,True,12,2 +up,0.85,0.02,0.03,673.5,672.5,675.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has increased significantly in the recent interval, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:55:00-05:00,3.297861373169342e-05,0.0013786468755361825,127030.4,3.297861373169342e-05,up,True,12,2 +up,0.85,0.01,0.02,672.5,671.5,674.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward movement in VWAP with the price stabilizing around the MA5 and MA20, indicating a bullish trend. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 13:00:00-05:00,3.6289167423431135e-05,0.0008671883227350796,113532.6,3.6289167423431135e-05,up,True,13,2 +up,0.85,0.01,0.02,651.83,650.5,652.5,"['Recent upward VWAP movement', 'Price stability around MA5 and MA20', 'Increased volume in the last interval', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a recent upward movement in VWAP with a stable price around the MA5 and MA20, indicating a potential continuation of the upward trend. The volume has increased significantly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns have also resulted in VWAP increases. Therefore, the prediction is for a continued upward movement in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:30:00-05:00,0.00027184040566585743,0.0024678565887091275,283318.6,0.00027184040566585743,up,True,15,0 +up,0.85,0.01,0.02,651.79,650.5,652.5,"['Consistent upward VWAP movement in recent intervals', 'Price stability around MA5 and MA20', 'Increased volume in the last interval', 'Historical context showing similar patterns leading to VWAP increases']","The current market window shows a consistent upward trend in VWAP over the past several intervals, with the price stabilizing around the MA5 and MA20, indicating a potential continuation of this trend. The volume has increased significantly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns have also resulted in upward VWAP movements. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:35:00-05:00,0.0010325910360920454,0.0057914727022894685,619400.2,0.0010325910360920454,up,True,15,0 +up,0.85,0.01,0.02,653.69,652.5,654.5,"['Recent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price increase', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a recent upward movement in VWAP, with the price consistently above both MA5 and MA20, indicating a bullish trend. The volume has been increasing, particularly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns have also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:40:00-05:00,0.0013498950716229752,0.0057079734004908955,772660.4,0.0013498950716229752,up,True,15,0 +up,0.85,0.01,0.02,655.58,653.0,657.0,"['Recent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price increase', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a strong upward trend in both price and VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest. Historical context windows with similar patterns have resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:45:00-05:00,0.0014482826848756236,0.005722627133878333,807200.0,0.0014482826848756236,up,True,15,0 +up,0.85,0.02,0.03,655.75,654.5,657.0,"['Consistent upward VWAP movement in recent intervals', 'Increasing volume with price rise', 'MA5 above MA20 indicating bullish trend', 'Price consistently above VWAP']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by rising volume. The MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:50:00-05:00,0.0014355778696615862,0.002272965171118052,865800.6,0.0014355778696615862,up,True,15,0 +up,0.85,0.02,0.03,656.22,655.5,657.0,"['Consistent upward VWAP movement in recent intervals', 'Increasing volume with price rise', 'MA5 above MA20 indicating bullish trend', 'Price consistently above VWAP']","The current market window shows a strong upward trend in both price and VWAP, with the last several intervals consistently moving up. The volume has been increasing, supporting the price rise, and the MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, the VWAP is expected to continue rising in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:55:00-05:00,0.0007462985971189995,-0.0009816633151071563,823454.2,0.0007462985971189995,up,True,15,0 +up,0.85,0.02,0.03,660.16,658.0,662.5,"['Consistent upward VWAP movement', 'Increasing volume', 'Price above MA5 and MA20', 'Recent price surge']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by a significant surge in volume, indicating strong buying interest. The price is consistently above both the MA5 and MA20, reinforcing the bullish sentiment. Historical similar contexts also show a pattern of continued VWAP increases following such setups. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-28 09:30:00-05:00,0.00046199416889186606,-0.0004849069779336579,510036.8,0.00046199416889186606,up,True,9,1 +up,0.85,0.02,0.03,670.85,668.0,673.0,"['Recent strong upward price movement', 'High volume in the last interval', 'Consistent upward VWAP movement', 'MA5 above MA20 indicating bullish trend']","The current market window shows a strong upward price movement with a significant increase in volume, suggesting bullish momentum. The VWAP has been consistently moving up, and the MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also showed continued VWAP increases after such patterns. Given these signals, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-28 09:35:00-05:00,0.00046920449021237154,1.0271882392803855e-05,417237.8,0.00046920449021237154,up,True,9,1 +up,0.85,0.15,0.02,670.79,668.5,672.5,"['Recent strong upward VWAP movement', 'High volume with price increase', 'MA5 above MA20 indicating bullish trend', 'Consistent VWAP increase in recent intervals']","The current market window shows a strong upward movement in price and VWAP, supported by high volume, indicating strong buying interest. The MA5 is above the MA20, reinforcing the bullish trend. Historical similar contexts also show a continuation of VWAP upward movement after such patterns. Given these signals, a further increase in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 09:40:00-05:00,0.00041247788321363554,0.0006219326876320819,404538.6,0.00041247788321363554,up,True,9,1 +up,0.85,0.05,0.02,671.31,670.0,672.5,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Positive price change trend']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes. Historical similar contexts also indicate a continuation of the upward VWAP movement. The price is consistently above both MA5 and MA20, reinforcing the bullish sentiment. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 09:45:00-05:00,0.0003657292964519554,-0.0008512481023053575,349875.6,0.0003657292964519554,up,True,9,1 +up,0.85,0.05,0.02,666.08,664.0,668.5,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by significant volume spikes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-28 09:50:00-05:00,0.000352657864096384,-0.0012293692981339421,333743.8,0.000352657864096384,up,True,9,1 +up,0.85,0.05,0.02,668.2,666.0,670.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by significant volume spikes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 09:55:00-05:00,0.0002455794388572241,-0.0021234156360636636,331526.6,0.0002455794388572241,up,True,9,1 +up,0.85,0.02,0.03,669.5,667.5,671.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by high volume spikes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a pattern of continued VWAP increases following such setups. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:00:00-05:00,0.0002152151305107597,-0.0005798817334561612,286621.0,0.0002152151305107597,up,True,10,1 +up,0.85,0.05,0.02,671.31,669.0,673.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Positive price change trend']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by significant volume spikes. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a pattern of continued VWAP increases following such setups. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:05:00-05:00,0.0001977674646056471,-0.001163137252146701,277286.8,0.0001977674646056471,up,True,10,1 +up,0.85,0.02,0.03,667.72,665.0,670.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume spikes', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, supported by a series of positive price changes and significant volume spikes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:10:00-05:00,0.00021788477472073353,-0.0010066854917983037,334205.8,0.00021788477472073353,up,True,10,1 +up,0.85,0.02,0.03,665.5,663.5,668.5,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. This is supported by high volume spikes, suggesting strong buying interest. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:15:00-05:00,0.0001934791059663432,-0.000982501557430543,307376.4,0.0001934791059663432,up,True,10,1 +up,0.85,0.02,0.03,666.17,664.5,668.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume in recent intervals', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, supported by a series of positive price changes and high trading volumes. The price is above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:20:00-05:00,0.00017144010497488482,-0.00012571268934777335,293436.6,0.00017144010497488482,up,True,10,1 +up,0.85,0.02,0.03,665.5,664.5,667.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. This is supported by high volume spikes, suggesting strong buying interest. The price is above both the MA5 and MA20, reinforcing the bullish sentiment. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:25:00-05:00,0.00015563878830121558,0.0010939141420340803,269226.0,0.00015563878830121558,up,True,10,1 +up,0.85,0.02,0.03,666.17,664.5,668.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume with price increase', 'Recent price stability']","The current market window shows a consistent upward trend in VWAP, supported by a strong price increase and high volume, indicating bullish momentum. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. The price is above both MA5 and MA20, reinforcing the bullish outlook. Given the recent price stability, a continued upward movement is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:30:00-05:00,0.00011272194486638965,0.0018514009449087654,246672.6,0.00011272194486638965,up,True,10,1 +up,0.85,0.02,0.03,662.5,661.5,664.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Volume spikes in recent intervals', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has spiked in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:35:00-05:00,0.0001255740415602169,0.0022454446382303983,165413.6,0.0001255740415602169,up,True,10,1 +up,0.85,0.02,0.03,663.48,661.5,665.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume in recent intervals', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been relatively high in recent intervals, suggesting strong buying interest. Historical similar contexts also show a tendency for VWAP to continue moving up. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:40:00-05:00,0.00018389577515065536,0.0028693775610238448,196843.2,0.00018389577515065536,up,True,10,1 +up,0.85,0.02,0.03,663.0,661.5,664.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price stability', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest, yet the price remains stable, which often precedes further upward movement. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:45:00-05:00,0.00023656656200415904,0.002589610554060623,222873.4,0.00023656656200415904,up,True,10,1 +up,0.85,0.02,0.03,665.83,664.5,667.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:50:00-05:00,0.00026593195442409234,0.0016778916062946403,246692.4,0.00026593195442409234,up,True,10,1 +up,0.85,0.02,0.03,665.71,664.5,667.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:55:00-05:00,0.00029306696490422057,0.0018739274916632354,256700.0,0.00029306696490422057,up,True,10,1 +up,0.85,0.02,0.03,668.41,666.0,670.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 11:00:00-05:00,0.0002663816403958297,-0.00019966439938320923,274437.8,0.0002663816403958297,up,True,11,1 +up,0.85,0.02,0.03,668.97,667.5,670.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 11:05:00-05:00,0.00023410829785830423,9.16929087840801e-05,247635.0,0.00023410829785830423,up,True,11,1 +up,0.85,0.02,0.03,673.49,670.0,676.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, particularly in the last interval, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 11:10:00-05:00,0.00021612097403955755,0.00041675873208435466,225942.0,0.00021612097403955755,up,True,11,1 diff --git a/output/META_2025-01-25_2025-02-02_20250204_043306/returns_distribution.png b/output/META_2025-01-25_2025-02-02_20250204_043306/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..5579f1ded337e9c8f7e52190941d4c9238c5fa08 GIT binary patch literal 20776 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 C-MHrf literal 0 HcmV?d00001 diff --git a/output/META_2025-01-29_2025-02-02_20250204_044205/accuracy_over_time.png b/output/META_2025-01-29_2025-02-02_20250204_044205/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..c475ac18210c978f156aede059d24159a5af7079 GIT binary patch literal 26996 zcmb@u2|ShS_cyGOCM87^DyK9{l$la!5J^Q8M>5ZBnWbQZuPd+EG#VR z&YeATnT2IVI}6KF4Yrl=jziiXf58953Gx~QHA@46y{?Tu%SBy+m6;{M%=p&MJNh=Z z#+DYsN5qea9NK9_AXwQ-2nw42{e>fzHim+{Pdbg@BCD*xh=ztr`+1i(&KcZGGA4C6Vsa^j6@-q8Am?S1WpKh}(il9;QCu$m+nw~G1 zKX=FvP?5(>k3g(W0@0y~<%hHBu8*gesx(SJTs3>}@&@-ycr;S-S9> z7fdx72kSpS=Ob9?(0a?~aQ#*Fn~fuS`P8!QvlHq!tV`2t<<`Vji*`wMxG_c#&nri{ zUw0nOASdUIg(yo=ORzCTt?=%I35*VN8h&m3^_}j}RI`qXeTSWT?qIZ!&0U_GL=V>W z7DJh5?$TRLQ)2HeW36c%D4o`}`naOt(HPaCuJrmd&7|jU;{lPqN4mCK<_i^!R~$6{ z{AAZdbCs4GZnJ$uFajk$#@BKui@bpd=lT~#bA2K%Ge1Rcl{}uCD41?FB`eC(>)JD% zEB41LO>C*tcdb6&{EFXSY{aSfH-d~{i3djbtOa1(?kw1jq6`6e91h+YD;KsmJANv#hdckO0djyj?uL+w#q*xZ!EV#=VFAE_>^cD zqmx#@z;Is>T-Y(vblos~axjJ%HX@fEgFpNp4e4oxQNFb^c<4!@bL@R*M-tmfh2nRWI%xZ9hH-=+J^jkL{7$rir3 zl!&&RjAC}lS9_jo>}GyrmEGs0#&Xx219msTr}o&HL2U}V_U)(gHmtV^atij-0y0#u zh}yw0+nO&+j2;+O9?rT!uQHSg&~~AgZq3av8V^i)6{xN)ZeMMg)p2L&r6+I5cT|s6o`H#S*?DW;jtyP5545OmmJx3Bp~=@O zt_O(HUSs{)!{45qW-OeRGt~h~}Un zX0m<3!4CHY=4{3NnVcQ&bJSTq>-T#UE;eNCkZ)OB>}a43wo zrw_#sScw->g1xrQO++q)MP?~b+t2*jxv#JWw#C!(a;f>59_cJaLuZ$8w$_p8Ydtys z%CqqiP6w*bOTD0e?V9TsC1({*CC%CC9jZRjW=0q#wSZ0cw79E9OlD@QNn(1# zN_efm%()>V%{InEMlL&Nb6PF`89$D_)`6!V*zR(R<9Ji%^=L*^;!}^|mV0^xFVYZc@BIO` zNBp-N-ivnUa2!*KanqQUcl&})O3+k%XveWbtI+~N<^|fmUtX+ z+;6uTkyD)7UNijWDVv&}l5&{Cl!ECB0kv+E2VWI$z-FDjedb2SCGLAJW;(u| zUO7zaR8Mbh*kih1xo=mo2fM_+1*sl!A6Km#t5QF%+}=w$?51qJ=e!HiuP3S7+j}P5 zzv~5kRk?$k-X`_A&ccasO4ZZ`0fTuk3j++&Sk5}t3sf=d-NMse*79YFGUHF@oEv5e zs)uO2rdB28BfH!iz8=nM|4ZdqsqKc0x_wLM+1h*b$O{oHELCaSSU$M)J9ja(53_r? z%~t9(l@a-LoQGe>n;>Iq{yO&go5SGKGTav!U9)bCu{_JdE|@vV>VbtZ`=ZLMg_&~M zi2iBS7=??rjBM*3lVz;zZ%1=Sk~5N%lOq^B$dLY~n;_Iy6Svt(2toN$@M0KcNx8Bxyb{B|JIFv2nJ#O=>dTAQ>irHd!h zz*H+uWFTv%si>$p8v8;!WYpFL+*fb8!(^S}1cOsR`R%%GA_>z;mae8DjL|fbOvd!| zbgL_^L$p}0p=jDmAR>rw1jZOTo7k%Fu=G8j((Q8UoEbe z;_k8TL_z_85NTQ-*sTd>_kgsdbx}gGgT=P$A&Qcv9amA8Dt{V1+;@T4#tt^ecq|Km zK|fQqgGuX(q}Z2mC@R?&F#(G`D*tg&s@acp@p0=-i=4i=+19L1CsVh4z!}yd40b-5 z{7m|AA}wFmruXxlOKIUd)rKoB^Ay-1EizdJ%)(OA_)UsavxuD}IPrLysn@Nm55Bz= zdQ|t52#qiW4Na>9nm9 z#F(_qIu&<1S?alNIgfo+c+*tY;B(*d1fuawpP+ki-ia8seCvkF$(zp$yvBM5Lx_yB zATNc9V?7cI(d~EI%yW7i!1_>fq$SdktshWs92_^>6rSj(b5O#y#~L=Jd-e2)Jh#2? zCNFEwU1cZFD4O(W1P}h@r~Gxj%eQ5-h2%u{(ZMI$?#wB}!M`l>N$uXMoCSV0k5jqq z>Q?NKZJsHNX_HZitEwjLRp>m!>fZC!e`dbN)MfBAUx+!YTNT~kDJ0N=Jw{S2d4m{$ zT!Sseb!|&uO$Gm?QpGurlV>D3c*g5mc-BlmT9_M<&G8V=O&=j$&o8BI;As%Db)!?o z>-2egEDU1j8Jr~Bp4OGroI1ZbADy|~MGF7`g#5OP9ud6X@->j>W*ya8BL3DDW#5y- zm6WP{Z*$8{$GJ&5OzH@~Mt8+sg;dL6PU?;3$k2q~nc&h!Nvbn9&y<~YpBy1dRJ(Me z-urHEe?TeDA+CQCGRima_hWpZYb2M2P)2h`M`?!(Ybphc!is2R<{@N?^n2!4^^*BN z=8LTJqS<>=xATdXY?gW{6SA5mYOC+FB>)A57Nis`&b-?iBh*Rtx379Cyp?AHg4epy-w?n z1Bq{sRWpa%q?lp!A^Dl@x@NwF$1M$ZLN;!%KL5sP4*b^_S6LQl*3?33y1u%3v7_|Y;4b>Z7>Mj3E zXnK$Gc_lsrWmy%;2JW|SJ;ON)Pxy;@w{7m^&OesvJ-Ga%(ja5~k5N+* z?>ZqNn}cQBk2jh0cqNK6J9`E;Ga`ce_$+PT-?Tjbjl}ShWVzc3(b(PDYlPwHrt2O1 zmc|dAo?&azSoBJDxZj&+XRK5+6 zxRLGWNw2TX*HkIH5IOdh)5u@HbUCc}^0s7m33Z2px#*a%6NAUEmH1P#tfJ&ropnYz ziWj%KvCdD%%k~`uO1|U8sR@o?L?ni|+bZ$}McPf<+U9`r`)XsJGQBdAQ1Vy6 zs$9ZA1@vF8dgFg-Af2on`dzOs@Wy&q{zPZISNtvpeo8zH8c2QIohOmD<)de?nFf z#YKh=J~=}i&*TTUpHe5(Ds17g&5l=JkkKoVf8Z>n<8DBE?fH$GG16@)l2*4dZTOgl ziyMEt-&mXDY|8_-%AV2pl}9R<=n>YJfAw!^v8g;fQB)u;$nk*JZRWe<9Y&Re?`f$n zvMj50->KyxLLLRYT;;9HR1>GNh78Ti!z={cpI`0(mnK)+Gw z?zfittM^02MSo7KBHQB(YP97Urck8d(@Hm$6j&vt#>QPf=zfnAB^% zR>)aQE{CltruanJ>oDiB9PxMF8;+Kll`z3wW+9Rw|C<3pf@JaF)B|nqn*>#DmZK6+ z`4jw;$%AkG#Cz&CYp%a=digsJCHcWkFD)!@U9&mlw&j%Wp_5xaT0VHi@yQK18_Nn? z&QrG^I0+qy7NzbeY4$rZ!{(|Y%bd(VsxK9vde*e6%)j=s21 zlHr4U9Ae6R(GV@frB+H0@2vVF7QCV3vvuIf8|OH>Z1ukK5V`pcqw^f-sR~r-hP;nG zvwj1IA_9VL^61^X~$Np&(?km&@5NabLGdBwJ07{Z0#F*S!|M5%1B*oC?%5zq$*m zF{+BHmhM1{3=BCFspnIrRT-+DRA%Y?&N8`D%H=utp3NJmVr0Rx)hxA!$64;qR?!M+ z1!pgr(!dxWqGVAD8BJW;4&Q^_=ISp9CYb}9mGO{EGXX>00F$*OVLD7vq)2j=kd!oy z53@OM{&4fP&$Kq!Gp4{3>6jwp={A>(csIw;?k)vHXPG0&M&xUI4`!pWMv{^rK`ff> z56vLCj@f4DKffN=1biP~%#rzpR{_c){nRqwt!izK1L3AVhu)tx|M~4>#%N|+@*Nl@ zscu3z&D?Ag=_BBP%b|d$p5MIF(%SG^ZGr)JEHVK%qcYFSb;Igo>u_Rs|L3PQh~9adS%3au<4X1&8d{EhffEy=x}P3IFr=ox>SgfU`MOKC3~Ye9Bybj{ zSzT_7wQczj3^X9(Njqy4R@&9v=Wym{*+jtp0BeA~X>z2uG)TjJGyMJiTfr_(x3-JH z%L$S(3LWOm45qpGEGL1$Yb=~86>NI0<2E~&Zw7I91_Vphbj$D%wF%OKH<6a-YlZNkyF3Bs~bYrq|(){lT;L`+04>_B{X0 zDE``2FgIRlJK63=%j-(QxW$Pc!yR4rOmSlohz}-6vXPYSZG6W$r?MgV7+~7PXj$a! zai5PN%1BfWu(SMWkx}YS=WPS3xghwcuH4vNS!xLB#v#$?woWC!!OCZW+1NH&dj`uFKoISjN0zVWEFo3q1D>pZE1{ zAq)O8t17>sgFJd#yMOx2^9L7|noSOs1_f@hZpi*@x%oK5c>z}Uxdp78cJp@@mcfI_ z$$fMGrd~w9x(x_t`mlOYNS?8}mU%{wn=gV&MW=2IZSZli0RGSMxy#!X9G0omr(Bn` zzcHDn@d^(O7`UD`5UYAVvlJ0Lc7JoQE6?ne49c zMIbV)aIQ}<{!M6Pkv&V4OVuy_{b=#OsrgGoTgPtRyg3wX7;*0OqqXPE&CTU4aoV1# zq4cMFU!Z!u_rc_#*0zB{or3y%&JRW>-kV5cr2Rw+;^va_$17}^j)Cm$F=++!y@-p1 zD=@3zq>;hJJ-^dx953?chr7|DtOn#ef#KPYyQ=^F7ox&iZcb5xlFL%dO5`&YB&JD^*Nrx zUvU`12lVg%Pn7{K_dgOVCSQDDf=*yg|G+BqPQb*YaQPU}-8VE550P`YlX!P7qgnfcVByTI;U7PKOvxakR*8@1D_nCH zoKnTwtS)d!#^5=O-GrT7=IRFbISI3{7#z(=Yg(^ek{&-9NnK&NtZG%p`QQZg3b~|D zRdbBkX7W1GjaC51rDQ+3om6>JIU0GQ6MNW^^gw<#!4PJz;WRx4X zd<Uce(In*9<$j|3oL(!q zMyJjcl4_TImn#{8vdJH5r0E9~T_mjmDKF3d6*f_OIH z$cPQ(zTWYt$GZ9i)ffYfvzuA&jt|zfsTsaN+Gj!pJQ5t#(L;I9b`vP0w!Cmqugi?- zdh$H)f{!0fkCog++UOP4UC1#6$=VS}Rxh%^VO{+LOm$SBaC;tRvk#nwubr$Uh-Po! z51(H73od{6dEIyP+hFW(l2tSI>M8chm@;G~=yU-Ne25D6OUd@rFB;I0wjg!(Fu8L> zwtYws`nfOu14}WwNICk#Hv9{9(#6t*A>=O(D4;9s;@1~JqU}|FG_atpV;jK@M%_ZP z?Iz*N=qrC;>T{b~{8o7XWGPa2je;{XGb3s{qF=*1jp&_yxBZ>f)$6pDg4}xp$-SCy z3i3)j&Td6ZgD#kUMN!2w55~okz=e&bv99C0#UmK_rQ`Vb^FB)34gY6w7qEf8Igbrg zxLq>OyK^I0?*5H1;@Zoj9Xw+S6)+e0*kf}i?(plw#}!DYyY%_&R&R zc005@o3X(>d3x+7*TogT*6u=vJ?mKb@58h2jL1bq+ponHZeM{G3|}6jS4zJv&gvm6 zN&~jF@SQR|IA)cy3Jng^IcqO>tQ&ishNgt&iVxaLauUB^?Diw)7f<2%EpCR_(_`%R z>;Ar%(d)5%eBo`dc{x^GfL{r}mkA}}d#5qB@Iu(apZ7#dbrt;$j$#E@&ea(IZc^i%_q z?t2+2fNYE#5>(0U@o8zo;Z~nkp_~Ncmk+rrXwswULq0>3S zRP^5w>@Pb%gBXi+5G3MHvy1<+umAyDqitj!rBHITkTGW5eAB)DM3tREYyj zn9Bnl*5y1ypmsRBEr2kgHa`OlP<`{ol`K&wM?3C0$75$aXa$|l0t)-*iKZ72&lp<} zX?#E|Y0Cbe=x2zf7J8UWTATU=cW89TB` zKDH!jQDT(W(SoF;!=7V8{&CjJs~gpI!rkV2_~H*HXYWn|b!rHfNJ(*r^%+g;(#>R; zwziR;2#&iir(_JcSI{H zGJs2Y#_KfraxN7`#BJ=-leG~H_r8NV=OAN+XwWL&rRC`?rA+uP2*HW#?1|TdEpNW+ zjv|}_>N!L!RnPGG>FyMm50G)3TE?L0D2D3Rr<*u=T*D6YFM>Cq^Pzp_m@G7A- zg{r>Ky~-nkQEp7pMZwjVRgVb|d!V4m%Srzl*N&NM=4YA}>+Jr$LK%RuMD<@)sVedW zO16r&+zv=@F$j$XdQ{+Ih{%4T*D6G5us7-TUO*}#nXDoke&Xw&9&;2F5PD2Pe4INV zB>VH;`rhEt#JBIy^X{L31J;{EVclVMQuxGHmb>@Uv#yJ52G17<2nNuO{We)Q7YP(S z!>)MYF$pxp)S*}O-T)P4auRRMZ3W*gPkBMFP5->x=hgRO&-kbOig7?H{cHmm>muRNCj@YRjsG%#YLm~wQi>q>bysdF?FbLD>=+K& zcl!~3FAU(6R#{Pyjb~}xjm&q@@7{Y8dC@!LKIct=;Xj-=pc8w~Jj|zI{?Z718viBS zZD5E3+(z%{@t4R`?ZQ0Ob&=zQZ3hu*BicJK$E%<1nLKz-6Y&S;;-D__jY%i&jZE{=X}fS&9s_VqrA z+|!HG@DOuwIZgriJZ!}7b~wxgLn3?7NWHi3Ctt;9kcc_Qkp%li#EFgk`AAJ$HD=2( z2Xl{KAKmk$9fs--S&4!c%aVXy_i(dz?IGHd>W6&LS|P2J{SKbCCI!(kG3*GhnV5(xR6$8P)e>{e`h1!D6m zj$KwBgDJ@c&T&eHix5`|e+xlY+`ZycDU40lZuF~Czh~%zESs?v%VxL7HWU7A-=bfm z-$zMct9!$l1hg;)BpvZL%C#Kx+CM z;S+ECI*K&a1kC^7+oIZva!d`aCboKqo3H7JT*a^#wxczZW1Ju5<)b}|eSO7BJRDdY zB)+mM(C#$K8Cz+O&CGuE7^}DMSHmA1yY4?9{2e>3Ci%CA+jIgj6k^+=@U4Br*}l6| zAKR^qqbSBcy^o#%zKjD&{7~I+R`GPkQ7k_HHCX(y`PYfT;*-Dk-iHFUe?J^{q_Ask z$})QMp98k(#ASs}b~wuC{-+>GxScW-AE_KU*DFB2eBp2)m!{Fn^s(HLIFwyb-Fh2l zr@qd0)8cWwxT-w`(p(4)s*14z$`bqiwhHfM9RwoWcAKchjT9Q6(5*AMy?9@hg}dY0D>mPr&p60Yp+@k+seje)Y14s7}y?G*4q3|hOb zN=oDesF=N~$NX;HuDWU8(KsN+qWn*KjeQ}xxq1al6yM-r z#CMBm6g=%&GdZ;cQW2kkus{Y1UbK3YI$ykAwtZxvBs+M}yUS@L$+n!%W8eN1D6`x- zF*~B{yaP&<9Zv`ud{hM5Mg4bAz6c=pgOIiyymFR$P1L%(BqEqfUFkP`{N;&33h;~3 z+QDiW$yxr4&L6`EUTI^D<9^O53=PO7amA#N?6s1bvI?Ui-DoeQn4KSj3^QfGZu+EA zL{-qME!_gfAUR^IjN#l2)p2<>fWx5H)>fNAULLB@{eB>(DrsJSN=vl&SdZ+sB7So< z2%iv$bg_}>d!}ZP%>>@{GrtAU$9(hSk(q=RejejSd6S_8yM;Ca#Bi5heF+eV2R@@` z2=J}4&yifC5y^H)XB=v%t9u#&GAII(u$HshvW6%Fxmm~E)d?6yGUPyFEF~iJ`W?sY z4!(US7s1*!7*269%mtWYn0pv8cw>((e^?R4e+n^NwIg=CanBrvTptz5v1~oDL@AcVSMoaUJe>RW7O+T%HRq=q5jp$&RLLCI*Par$A}UY96o?TYw&)S1$IUTD z2zG|q^T_SC?J<%v-U9b0VIL+A=uv?DC-W1fAc126a@OJ@ez1!pW&vf|pEV?Z>cDve z1=mYJ2V>;fhb5LgkIG`7%QtyzV$5)~Ho~^o6B?U_M{GL=K1iQYcdWWfH*vC2OU=s%q|?x-=!N>}*zD^+G- z;qz)Nx(4^jiD;Mum@@?*4k;*$epxfQfU&Oub5Fm_xxMFNFpK#Du=Y1Gi;a1*)jxib zU5W@C=<w6JdS{-AC+|MKz`-GFW4Kn~sOCBOb6k%GOf%*e=?@(mQirWU`Lf8fyY0h~8F zjefDKHE$X2ldobx=!`S%X#(cK-=M09OFtG-1vb`wXPljB|9FG&C=YW+*w8mc$HW&G z;6xA(9&0gX17{fs1U|12?DazocA_MEmNyui_wwHFSIIScgZXl7z$;jBU%n0Vs?pBT zz8KWi#|NwET6YDr>Kxc)=>CV4TV2=L@r$g%KJ*^7YVQ7f732s5qc|nCI17-dum)i% z6YQxU`;ToM!!{`XV6ERfTNaV1CmQ@M!)%;Hz@~YZ#ISHXruX1WESDboABIX!vV9Tp zA(bp@1BTe%V4KY7+dr==ho%VQ5#QjexyXYpu8bCGF}hfXJ!~Di-XdcL>#l^I5PUqX zBRu%5?Z#&Z+ixIfMIqeg0J|BKW4|!t2Z{p$No;9d0c37E?z3{Bfisr z?LPe2VoO!(zj$o1eJ+=dSiVJ&ZHq6LeJ75=*DmgBiU_td*|3+tevR)ANu0IAAKhVb zl@}kpQ}~~|Y;aI!W71ZPVZ&~HYw^eUo^^PI*gKYlmDpVd2em~qE?|e1`R z0QBA#@Mdda!RccNPQf2s1-&Z<^sew{kOdI1Y!ZYvamZ{;Ze|d{!rp|`k0GG#FX)x~ zUxWm2t5yhM$xttGwAhsbWRFYNRFhW9*3i`~CuQsK{VeqV9TXXY9xp<3hQv`aD)yKJ zPbz?8t}DPEdHIj=*B!xEd(ifqjDE#4NDZOILl(jJqV=tv5nV-q;GCFYqMZ)>#J`NO ziXeb4rXd)Ykv@`~r#u14QddsAQD>Y?t{YPzXhk{OQ$|z~?Q*f*)duhXgN(}9s}j*3PqIvGq~BR*>HEy< zC?mu)`5emeCXJ$ua`3<}>eq?3A0?Aq|BYzkz>n?+3h49@eI$kClW>PXm~0o#?cxt3 zS|6_~?VL%yZkN5DM?%E@|HudR#L3Er`p*sN)N>U-Kg+-VYkI7XRuUqD0C*q``%r_4 z&~7z=T(M+Gbd^#GwuzK%X9Zx1>OQ2n;&`*|?dp>*F?q)$qNdcIcC%swQ zxvve)*CeFQ>4z{BSX~Gue703W1&>B`Kd#`evLyT5zw)fgmmY=GZa|})%U0&w?Q0Ee zU7g7NFH$P0v3VdDIBcW=x7QUSAPvbVhr)pzf&!{@;(x6F@3^7Ubd)>c?gHgtLs%lV zjvk0?$`=l2G^_XI@~hfmxcJDeJN^nap;`c;qm{WsLm*3e}vCs(Csfz@&iwE`ql zYbj!0*RX|8IE~{NDp(PrSf*8i(!i>6WxK)~Y@fyzmvj-oZk=^y;!i;M?0)InCBF`RYk!Xp3tMV$?Q4!621zyENNMZ!lF zxZ^5-Jq$WvIA%lDvv)r!Ry5!n71hw5)NLJEq{UWX3n8-zRPj*|pAFSx zFbG@2PwCCeXp3|T1w$oqJxTc;7-O;#doA;eURjF2{C&);$uF@b#L2s%1i_F4mI(Y{ z!=Uo(|AF8%J_scwCgMsG_UU(FT#CGkEzi%V$1tvQHFl5AMP?P7m(}D>R}uU`EWXAy zUX0vXO$G(JzyKpDuzB;QSaD+{8FpDd-$gN&u8d6#@O%n+g#UbgbhHDs^Ft^l=n6g^ zgdl8gun6bVBAR@I513yc`z1c$8PHCD-!e*yv^pdF7%#4F6B)N86)DE|7(m`Xfv7M; z#HcnZ9WoT-A-9(_SqSBQ7r_~tXzKYLA7?_q%@i?dNH89=Mg9S3&QPnZZ2wb_IHw@+b!0n)5hcHJik4M}-h(OXjHlKIR zE|4Tf-bOIalruoyd4UohcYH&|UMeawv$u1hBr+7`98E4m0zAG679}&!Zzx&FoiDvW zy2u>{JxLcw8JE0!$VQ+Yo`(d`W~CymVq^iqH%2bH3@49e-=gCF?xYUipPwGAdJU>0 zl&9H{+j%LF&Qo0ArtBN)l{}M_)hR);E<#1Vkmmn_FJ2U-wms(eKa24Rd7V?q!4?;m zFVa18mcB7wqDEIzR%M)WkH?Tn`b7V*Lx{}2MzI?JW#Hbvotx^L7%ia;gFQZVK54?&ng#R_|Kw0H1 za|1XQF_anRGX7;zGegoEF?$J1lzYxdPUa+8K%zeP0wH!;v(rHrID-2sdcOpap?ZfZ zWvyQ)&u#AN$$-?`a1j6Mv5X%e!Nw~EyG8~MrBxk6&_@MiS|=xPp!veeKLO3eE6x9BHa8G}>qP@!| z5|Ce^FeNDwMEM@(02GW)LY?lR4xlxWmYmk{{J)gPl-J$(mQ-A)X>#zD!M_N(%xgN4 zBQmUGyK*Z~k}^gn{*Hl=Doo<*GK_S!dFKYlv6rS-RrR+xoQRZ37SJh>n}8 z09!tJw07%Xh{bVXK-vCtZVjLz=URsW31L8JU(q5Eil}shq^15prSAWxkHtaxU<9Ll zUoe#Uy(;H(mpc6Z^KPKWz8m*`erilD<)-A2Vxu&de3|4vh+bA9mvHyMtYsVM;prOAG^MSW*Tnsq z0|=6MKs_0bc@_wL{qEpd61aifg2i)Q*oWK~lknUh+}`uxp*ij+;vie4fQ-@Uiw*$v zFy|K-Mp}Hs8B8Xg^?|$9%jlE8Yhwb`;wTLlL%l_80I5}Y zRthaWs(++JQ7WCt}f44XT{Y|kTl2(J8vp_d>4TR7YF19O3e zMka&92MB5)Q__`??O-XQAlwZbHQcYVfmPcT3O0 zsSk`Lk+UOs;+7V>*QAd)p7^AXfs0F1Lijo^eh7}v0HsCk!9V>CM_(G1{u?)86LQ7A z6X(F35TK!#uEhb|d+Z4l@LVNt1ixwpCE70{Vx$7|%L{|}+%4W>v_tU~cALckp}D(> z0YiMQ5~hI#`t1#LHB4{BuU4cXl97n#Jq>P0Ys|d0xB>8~eG|iY+<xkATe70E^9Dt*k-?M)Bd_eJPPE*^Z;`#mUW#U|-Y@ zEwP=5O&4}97oP#<9s}0D#)2T!KL@u6iF+4+{|nAxgQY8aIxk9|qWIwJT+f(bu=wv; zfgQ}UFE4Jz821gUQ<~-(jrCEdJnH*HEh7|wP$x5#!zGS~qt+&V$D2OW05wgKA+eG^ z83g;?^%X`d?aTVVV|_@(RV*jJa9?ahaPZlU|EqMNx5i+xH&=Uq7|eTyMkVb8cdu=Iu&PT*qiVqZ=NQ9$*~|%Dlbj;e^A15{ErDfihm|E zMQ;#stkA0F_ItEebLTqVuXCrb{fqG^O;EWQtnTVI^&YC%-oB;hJ;;u67f-bO0Vys9L(mH5T)^Io6?(TmfeIVoF%^``i=@KINwP}(x)Wb_ zE;x^W5g0hhgcddtJ&RYWSnQ|($}9%GBoGyyGy*}Emt#Z zQ85YNUt8C;TaHEzR^JQ$J0<>KN@K*H=CrQqln#bL&UNVkgMI$2taY~$F=iNvltKEC8R-^w;O`gu|rO_e?Fgw zMg#FEzUlyV-5BI-lr`6Yrq69EQ70Di@mmW6-BQxh(gqfI(&{6jz;EF^%5Wf~ZX1wH zDcjrDaERFmIhvvK&;W$1VCzZQjFWZSS@b7=7O#(o_FduyaFS8pDHgnpj@IbZK~1rs z`#DtLs|gi&Waynyzcox6=f?no$hCPSx+C)YHMW1~e^If0O&(#IK8 zSCw9;us!y0=GW-Kiy@XXJ}YcdPp9(~N0M_rN=JRP-6E)qXq8Z-Pn=|hJVF~F=%I!^ zrXt>q~esx3+_BE?Bhj@)5zzmuFE= zm3ow?Q7$u`ItkWVN*W3<5%oI+ZLN&!LRSi7mFX(!ieGteezKPO2@{($(Bpr7Nbr{I zwvT<#$SgdC*9i*v>V?X81e~r$8chKZ8~)1%MX{z`Ak@EFpe@YnAlb!$t*voCQ$8%; z1?8F?f#eEA6AY|;>QF6jI%wsYvq4ZphS5U8GE#>imA6{(3YU%x6&Yz-yMT7>$vV{h zY7)X!kmpTAI#F|$Nq_r%ew0l-)Wf&npz>rD^OSGjW99D~meeg>bLa_bR+X>f_l*fz z9TkF^dPSzP7dU`s_nW)FXIMn85}KaHL5b*I*P#nK=b109k|0-oQn`4TP4`96E~ z#NB1=XBneeI`n?gqF`-cJ9ex+46>9oEmbg9c2tL-K;#Ue(qxl&LReZ*-_|*u>C)GR zx`jRC43_gw3UXE2mk?swvRsrW;*Cp*J!vq6K|^3&F_S~sZEFW0*! z#Osy_9hCPeV$_xLc8uC_XrmTbvkp^`$$SBFvOi}@vPbQkYW3mZL0o}z$eG=Di-6Q1 zBkoIax4g^-Latix$Q#J{?0@c-Y`>fB$aS%pX7QeCVCA;uiHwwu@95@A1xgAh5(x$Dbk5 zqS=ct+t~b|bwX+VZX+VMAmjlP+PAGPCBnUIq>vWI9< z#U?UxC|aQowdoRZ9Pf46D4g4h_1W^^o7<96H2C?a6FDkQ*L73eeI;QWi8eA;5#%^!S^FPrL`68FUxxFvNeq?=(tlis&mRmUGIu4)6Wy~aR9Dth57OP z#y@PJ&C$TleIcg`p?}T52PQNysw#hn`ZbN!`v!#7n$)H8#&i#_nJw+2ZQ^{|%q;$*0hfP2+?@l>(>QgCExQ(*ElF2OXeBYr^#CKDiw+Wt-)Y z$V6|5mpOhh;Oz1-A$FnZL_0rqt~x0933^BmE-JfV9#g!VYuqbJdj3P1oXiw=ACv%G zfaXpY4yNSW=(bhO3EZ#TVu%vj`jayTwSA66X*`tDK3o3D&3ga!9-kK)gM!0X?w+fg zLaqGzx%UXgAD>PfNy^erZUJYMCQ#*jfiI>_T0$i1YPTix9xHDUcUVZ_vTQ0-Om$O? zWOr%x>-dNeQyNfb)yLN)$%t<%e>=t9X5B3?onx)vk7Q`cha)tvfFNr}N9G?J)6X~D zzEQw6vgS8iFgih@B z*V3ERy%D~3Sl~Oq1F=8O$nAdg`$PvHPRbN*WNK^mE@brGT(4Sg^x`~g{nz7u&g^2P zxlv2^3nY;s=deSZ|-&e26(xqp6jzN#uy?)cg>w8!YHiU1c$}yl3 zgo@j)ahOa=)CfZQU_g11^-7^5mB^b-^bzaCHyP&WEosdD!J)ZJqD3#_r=T0vC%xi8 zVsBeF(TI?)=&A23?%iT8l*^y%(ft=zQ{dQwT8h?%l3Wb#OgR;=6YcdV9o*|}H4obR z7n%>ZWGeCDwa482k+W5XHUmyDJf>0D53g_1pQ7lgCwqLtpj=--=Q6Kge$NW=^zq(H zVXu525ykHKT^}Vk8xzvxcP;?(AK-4Gev;r)@#E0;ziu2W#_RXwnDUHBQ|DI0u%}o> zH|k!9D1TJ1{bh|x*~nY5S>EHkJU?qI0#4UuZxVQniXU8V&{5yhlrE^mcReh6Ox~}I zEm%Y3xWprM9oH!rtsO-YTv0{0)&06(U23<7#u$~1X6O?Fb(%-a+7f~1AbZI^7it@y z9f%}#aDh;59)k0Hb>{o9Y!$+qQlIBvbL0o!d7RSRuYE|7)v8L@?;+!sj8=m| z*mCa=`-Vl!>`IpGeD+ei98xnRTcgejRqXU<-Tlh<&wa{l#~+RPb;~>CZy_r05;!(w zDd0I={?_`?cJ)HwZCz)BzJa6utZs1fV5yMtgCJE;A-N+8yW~Zk9|y>D+-{OxsV^qJ z$<(m4bt#8-S*m&1U1DlltoLIyL5i2#)HB_IJ}Y>9q*5%AM=-tTZ5I@i zhLd(obLF0X+Wqi6fq8~z>D#UWoyDBws!)C&^l9U(N2?o>U|0A-ZKMMH#B({EHjTXslAtagiM)YALavhmj=GDw$sY*)C64M zEJsTqfoL+|KdnLDV{#?DK2n9fG%yr0IV|czD_ks;-zUC!!dxOeF4zir!S z+oBh#DZ6S@+Izj;Q_Ig@dK7Tl`Y++>BL5|Wq?W5YSkJKWsb?OKkm`1?)Lvq+i+x^> za2xfxncdhfwtb5sJ5h!{n2tPXaPXzxH9xlKzXM63-{a#J;|(u@n&k)d4+U{${Fpl+ ze>vruYQc6f7bqT5VdWuQ8e?yToD|!4Ti0AF?UbWjK+I5fQKI%66j`F5Gq6aH{TSiefXkF-M zmm2|7{!tFP$3R=l|5Imq5Xd^t5nWt2&mc#SR571Uvwk(`TQF#D{kl^o6R>%|e1hI| z-{eI5%d>tlx4IwHqQ;>&5>rXgF$F98YMX1c7?aiP_l3N4qM-r z`{~b|Vh?0U6l7Ci)?WycGZOgZZEPMN3u@6^GSwDyO;5LC3qQ9&M@*V@@_pO-@c9p4 zc2%6e)9B9D9-N|MRL)nc(ffA3+vysdAU())Ho!Vp*lS)R#BH7jh}Wg1x*h9xWLhH@M>b?ko?hfU|=LyM#YBhh(3fm=V6i=@kB`DJmH#vUsNM{ zzn@TN+j4bbrq{Qn!+LdO)FxrJijXfWDKxfoj6yt^w1M>w$5JSx(#9$cAva_Q z_0lN(V-E6yhNf0zaUb0zUvRlk^I^1@_?hb^OY2j`beP^5%h<*K%(NR8yNlj#G_iAf zpV+;sJ(vO~h~GFdDf2u^ChD9m8LmcsB|#_+AAegp$Qwcq-!dmCZ`g`5wow+n)OIVB zMzhH~_#Wyoiv+ZBX2U_|Jtr)}|K7VnpBlL^Cm?vJ0J=H%(e#AA!08Zl9af91ptMES zN5bs`O#|nPRUXft&)=5=@Q#eyZV~`K#iOJ&S7@ZEi~_{*9p4>Jao!rZs?)dCTPl+8ql#Cr0PL*7IR42`+P?EGkriMh1%=3CkvAmS1|PDX4PW zZZrF;^L4kVpP~8DVb|%j$m)q?bq(EzlgK}a3O}T4_)AE;Z*sI5gdkj{%`EMrMInlK zL@$Qdn7JP?i$9cce&KuI@`*qP)r}o;sCzA?T={^uQ4zGKtPVG)b-BAs^gcN~UY=hY zw{MDj7Y7S!#;n8Mq*1Jzf^yk&Q7M|odKryx&+j|MN`YwC1Cx~sDrg^bfL-#(6G@?- z^U;vNF5@}&;^v*}Dt})8e~LTzXsGi(jyq~egf8orOKC&3F)o$Nq6i@>Ny5&E4N=r8 zw=|N|Y7M5Sj5|fLo6ESXDQuywDTUlKMJ7|};+7e={d|72&z|Qz=Xw5q<}b&Yne+R7 z=X?2F-tX5hYKay*PsdSqFW3@iR5SIdr>dK`Q#h;$Xq&ZB=SEZ5$-=kh^Qj1$8L|(- zy@*}o>>(jlq(IL&FYJB?YVl1)tR@vcD(JOi-g)J6Q5?vyjF@^IE8R=s1&JUe3CWh1 zk8o8=Sen}yId|26v+1IN@aj#Jw`ugE3tnHiVMUv?-}^Mo$HDu~yKOX&CXXeAMH>Lj zga}Z#e$+oeqC9*sv{m0r%SWbZdg%ijo23;_?QhV)YBtp%cLVzC+E~^Qym^KT@J^T4 zLMIOkN;P(mkwn*NRFNi{LIW@=ebr63T`@FlaT90F$E#2v&V-W$y{LTP2UF4bF&d!n zw^ln=2e2s{6&&(gF*j%5Y{y0>A`{;z_9DgwT)R){j*T9-Fz(RM`Ne$ZwVdG97epJ- zo-Zkq*AB0O#v^hJ3m|Rg1y+Vdt3~Y`G#GUcy1Qw9H7eZ42JW$V^;q+uvL8r)4%;qU zB+}J)i*qpY5_B0UWW_7KK(4tEmUd>ddXq(={v_#L1+6f={i`BWS;jHV9Dd?!#;tDp zmD3g4VWYZZn=`fj6A(~BDHl!rCvn%p@clVge2jnZ6mU4gxnLxqPeigQ1(+KUnAa^9 zEnsh1m3@)xcRgY8OBzqZzcOOsM`xiYNw=;W{T`Bg*foiPlW;M{p%N23d#cchb|@Ii zLivCvDjUMY!r$IC~{uMf}hFlh0yDcFIoS+YV+CmFAsin-F1>@-q$irOY5i`|lIwYpX4t{e zalizknO2P7sIJWx%UNZ?9AC!A3E|WA@!;&y_zo$dTaPPNwXHvqZ?A&if0G)kjmA$tjsf{D=Y2BsXT)OnQ zF4%ow%0VKZZVjeq%O|*M{s@pe? z%`1>v-wM{0?4Z+_joRkG2CDaSPMzr6&FPOD&_nW-?U$JL1CQx_LyCl{%S49ixv~-W z_t)if>PFnXKb{)=bG6PnxM#JG&Q6>_Mqs7<_6U!2<(P?grzE^(4kYz~hQji|%JcNw z@qxK0x|+eTY9QyFT65diOlW8XrKum}n7_)Xrddzg4z6?ji7oBW-3pRI-Hk0)km z(hc_;KkageJR8nc3HS+)hD+`Kr=&en08(X6j%jEuhnN> zYxgaCG4I*L?${G$&Z}%Xrmrc5p&t~8yWu;OyQ-Zwiv}-ZE`5hZqpZZr&>c(5ny)P@ zVUOBng@=PuCqD=jLVWORKmOg^@{*og7U)kR`L2V~DaPe$Df}jlJ}8uOhP+oe60{`) zjq=4Le#r;-b<3w+0Dj|=QlBZ{c^*ex&XxTxw$zyc#o*A>ocn!n_|W@3c>5;y+8|x6 z6&*9UHDxgfB`!QVV6PDIyNdP)Va7|pbP@eHyB0DppFgwVuooBYI{wRR47sW@)+y7F zDy9WZ1CRUSX7D*%R9_L?2ZvWiF|ekT0~vd5&?x_Y$p=^=0=XkUdgx9@!2<`vLwaE= z=p5MSL;HJJq)2=QTs&EH@gUtj@r|v{^9BGYnK8}48vgV%%UB5oIb)j3kucDbZ_Kis zZjhs0tO5WX@tlIv7n~q*M6oB=3q(h0$7Fh)*z)e8Be>$?$ z9fAc)Q}MkveJJ(A9XswSpM>`=V$a_BSCqr;T3Xa~t2R6I5i>obL;pi01ux@tN7%2*+iMh&4@pkcB3xo8>Jp^nm z>Rb1%WX$D8=x1bLI#~h5FW%R|qahhZfwww^J>p-Q!(c_PKY2Q}t`M0>P6~+!i5c?m zpC9*SIc{tBo=xh#*(O|j2z-T4C$^rsOM5L%-HAOw!W<47A?Z0;X0~XfwT5!^Cm5$S z#P6kfynq`_+Nm55GB*Ut@v$x$P+aTN16@mkhV|ZP?t*S0(%ojR!7twYY zetx|TjEyCZN7fPd_y}s9hYxY>Qel~Ze%l((&dZW9xipdzZowx(cbtz>9VkVVzV#%{ zY0P!117C=c_CdL4Eiy6qknGzokdS$p!a!11S}tW!W|F86L!sG_kS>9OZQ~T#lO{ST zQ;mJ{zyD|P7??(rXRpR=f3zwj_e=Ar#{85GmK7s-m1kh*aP0I5cIY|T=70^8p5P|3 zDy$xUI(NoL2yDN+|8X1r%+}p?rb=+SM==#srl9$egx%foJKR~_5l~%)$Bskc*o3PW z;(CIl6hzclAl&qfwX$yiv*aHYrLR3$TZ89Wumft_1e2~xhoN*>OBoC~W%v7k z`-wU6^_jFk8&)0OQ@0I{CmBT8jD;@Ef z%Of_c{}>g3>I&6hy73tSN@kH^#clW$5k80wM+yh=`5Jn(pP|{32NA&Kt zcOQ%`v8IT*VzA-wZ+U_hykekYjzbT@xTQ9}yko*7vHKXt7;cd3$Mx@eNF1B|Ppaik z){{l!p_4^OvU2H9>yn$D@+2u_xq=#zfaqNXVgHQ2WX$*$qQ3+qnFcXCBM&rWn=u!u zwf4^H1;$$Ivs_Dh|Bm5Y;>wia%8tUXzJR#0*7Pd3S(Qb@1%bfGj3m{dmm`=og+*wv zz?dLC&nifBTnU7p*jO2j8)T8}fKq=O*i&QqKRx4$mWBkZu$AzI^~4G_T2`}fv8=?p zWB}*gz$$yVV=pwKo&|@j6s{3X_j;J_-dsC86=1rXM3eJhd&-NQoqMXkVcS?Y@lO;o z!RxG+Ur|p=^ literal 0 HcmV?d00001 diff --git a/output/META_2025-01-29_2025-02-02_20250204_044205/confusion_matrix.png b/output/META_2025-01-29_2025-02-02_20250204_044205/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd645fc2a975ed399c1139311e5ec6c6edd5b05 GIT binary patch literal 14456 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

9VL#B6fH=eo$^M1?z!nSVCAK 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 literal 0 HcmV?d00001 diff --git a/output/META_2025-01-29_2025-02-02_20250204_044205/predictions.csv b/output/META_2025-01-29_2025-02-02_20250204_044205/predictions.csv new file mode 100644 index 0000000..eeb01e3 --- /dev/null +++ b/output/META_2025-01-29_2025-02-02_20250204_044205/predictions.csv @@ -0,0 +1,55 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.01,0.02,701.5,700.5,702.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Volume stability with slight increase', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been stable with a slight increase, suggesting healthy market activity. Historical context windows with similar patterns have also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 10:50:00-05:00,4.8064781697443326e-05,0.0001256123201974768,149963.0,4.8064781697443326e-05,up,True,10,4 +up,0.85,0.01,0.02,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume fluctuations are within a normal range, suggesting no immediate volatility spikes. Therefore, a cautious upward prediction is made with a high confidence score, and the suggested trade levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 10:55:00-05:00,4.351685909748104e-05,-0.00025112076068406486,135296.6,4.351685909748104e-05,up,True,10,4 +up,0.85,0.01,0.02,700.0,698.5,701.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume is fluctuating but not showing any significant spikes that could indicate a reversal. Therefore, the prediction is for a continued slight upward movement in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:00:00-05:00,4.298917821993209e-05,8.000680237943425e-05,131817.6,4.298917821993209e-05,up,True,11,4 +up,0.85,0.01,0.02,700.84,699.5,702.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant downward trend']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating a slight increase. The price is stabilizing around the MA5 and MA20, suggesting a potential continuation of the upward trend. Although there are fluctuations in volume, there is no significant downward pressure on price or VWAP. Historical similar contexts also show a tendency for VWAP to continue rising. Therefore, the prediction is for a slight upward movement in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:05:00-05:00,4.149782037959904e-05,-0.000457010480423653,131642.2,4.149782037959904e-05,up,True,11,4 +up,0.85,0.01,0.02,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume is relatively stable, suggesting no immediate volatility spikes. Therefore, a cautious upward prediction is made with a high confidence score, and the suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:10:00-05:00,4.4336996526506134e-05,-0.0005644284485425421,139622.6,4.4336996526506134e-05,up,True,11,4 +up,0.85,0.01,0.02,700.6,699.5,701.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume stability with slight increases']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating a slight increase. The price is stable and hovering around the MA5 and MA20, suggesting a consolidation phase before a potential upward breakout. Volume has been relatively stable with slight increases, indicating healthy market activity. Historical similar contexts also show a tendency for VWAP to continue its upward movement. Given these factors, a continued slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:15:00-05:00,4.764044910615661e-05,-2.926248399981457e-06,146893.0,4.764044910615661e-05,up,True,11,4 +up,0.85,0.01,0.02,700.36,699.5,701.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume stability with slight increases']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume is stable with slight increases, suggesting healthy market activity. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:20:00-05:00,5.031855119580486e-05,0.0004511403507908851,155762.6,5.031855119580486e-05,up,True,11,4 +up,0.85,0.01,0.02,700.13,699.5,700.8,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume stability with slight increases']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume, while slightly decreasing, remains stable, suggesting no immediate selling pressure. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:25:00-05:00,4.974696951637325e-05,0.000923836139950257,150515.0,4.974696951637325e-05,up,True,11,4 +up,0.85,0.01,0.02,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase in recent intervals', 'Historical pattern of VWAP increase in similar contexts']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has increased in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in a slight VWAP increase. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:30:00-05:00,4.896237920726243e-05,0.0013265614931013414,147394.8,4.896237920726243e-05,up,True,11,4 +up,0.85,0.01,0.02,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has increased in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in a slight VWAP increase. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:35:00-05:00,4.6763191756449274e-05,0.00041478562161728627,134910.6,4.6763191756449274e-05,up,True,11,4 +up,0.85,0.01,0.02,698.5,697.5,699.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume increase in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. The volume has increased in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in a slight VWAP increase. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:40:00-05:00,4.546321750664717e-05,-0.00017231645465398682,133829.0,4.546321750664717e-05,up,True,11,4 +up,0.85,0.01,0.02,700.12,699.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a pattern of continued VWAP increases. The volume, while fluctuating, does not show significant spikes that could indicate a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:45:00-05:00,4.330837920135666e-05,-0.0005983027383938133,123022.2,4.330837920135666e-05,up,True,11,4 +up,0.85,0.01,0.02,701.25,700.5,701.8,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with a slight upward trend']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Despite some volume fluctuations, the overall trend suggests a moderate increase in VWAP with low volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 11:50:00-05:00,3.995163713421679e-05,-0.0013557591993469398,127005.0,3.995163713421679e-05,up,True,11,4 +up,0.85,0.01,0.02,701.91,700.5,702.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume is relatively stable, suggesting no immediate volatility spikes. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 11:55:00-05:00,3.650385499420761e-05,-0.0005986958638157791,120410.4,3.650385499420761e-05,up,True,11,4 +up,0.85,0.01,0.02,702.5,701.5,703.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by stable prices around the MA5 and MA20. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume is relatively stable, suggesting no immediate volatility spikes. Given these factors, a further slight increase in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:00:00-05:00,3.0196042148822322e-05,-0.0004576941544266466,113582.8,3.0196042148822322e-05,up,True,12,4 +up,0.85,0.01,0.02,701.28,700.5,702.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility and a potential for continued upward movement. Volume fluctuations are present, but there are no significant spikes that would suggest a reversal. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:05:00-05:00,2.824129770151451e-05,-0.0008342368855510651,103441.6,2.824129770151451e-05,up,True,12,4 +up,0.85,0.01,0.02,700.77,700.0,701.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume, while fluctuating, does not show significant spikes that could indicate a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:10:00-05:00,2.5084165989675e-05,-1.602736701802887e-05,100054.2,2.5084165989675e-05,up,True,12,4 +up,0.85,0.01,0.02,700.23,699.5,701.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, similar to historical windows where VWAP continued to rise. The price is stable around the MA5 and MA20, indicating a lack of volatility and a potential for continued upward movement. Volume fluctuations are present, but there are no significant spikes that would suggest a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:15:00-05:00,2.432296297039116e-05,-0.0007790432048114526,95359.4,2.432296297039116e-05,up,True,12,4 +up,0.85,0.01,0.02,698.5,698.0,699.0,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations suggest no immediate selling pressure, allowing for a potential upward movement in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 12:20:00-05:00,2.7150807036024904e-05,-0.00021308143412182567,103340.0,2.7150807036024904e-05,up,True,12,4 +up,0.85,0.02,0.03,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with a general upward trend']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Despite some volume fluctuations, the overall trend remains positive. Therefore, a short-term upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:25:00-05:00,2.977712456336823e-05,0.00038051128598909356,112269.0,2.977712456336823e-05,up,True,12,4 +up,0.85,0.02,0.03,699.5,698.5,700.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations suggest no immediate selling pressure, allowing for a potential upward movement. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 12:30:00-05:00,3.052952155918609e-05,-0.00026011791649036,113683.8,3.052952155918609e-05,up,True,12,4 +up,0.85,0.02,0.03,697.5,696.5,698.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward trend in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish sentiment. Despite recent price fluctuations, the VWAP has maintained an upward trajectory, similar to historical patterns where VWAP continued to rise. The volume spikes suggest increased market activity, but the subsequent declines indicate a potential consolidation phase. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:35:00-05:00,2.9845757890001323e-05,0.00047730600272974377,113260.6,2.9845757890001323e-05,up,True,12,4 +up,0.85,0.01,0.02,698.5,697.5,699.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. Despite some volume fluctuations, there are no significant spikes that suggest a reversal. Therefore, the prediction is for a continued slight increase in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 12:40:00-05:00,2.6676601525665866e-05,-0.00028934837586755413,111061.8,2.6676601525665866e-05,up,True,12,4 +up,0.85,0.01,0.02,697.0,696.5,698.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations suggest no immediate selling pressure, allowing for a potential upward movement in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 12:45:00-05:00,2.2873145823221197e-05,-0.0006546191877121743,102638.8,2.2873145823221197e-05,up,True,12,4 +up,0.85,0.01,0.02,698.88,698.0,699.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by declines', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price stabilizing around the MA5 and MA20, indicating a potential continuation of this trend. The volume has been fluctuating, with spikes followed by declines, suggesting short-term volatility but overall stability. Historical context windows with similar patterns have resulted in slight VWAP increases. Given these factors, a cautious upward movement in VWAP is expected, with a high confidence score due to the alignment of multiple indicators.",2025-01-31 12:50:00-05:00,2.2566291109138437e-05,-0.0006448172756316761,102862.8,2.2566291109138437e-05,up,True,12,4 +up,0.85,0.02,0.03,698.95,698.5,699.5,"['Consistent upward VWAP movement', 'Price stability around 698.9', 'Volume fluctuations with no significant downward trend', 'MA5 and MA20 alignment']","The current market window shows a consistent upward trend in VWAP with no significant downward movements, supported by a stable price around 698.9. Historical similar contexts also indicate a continuation of the upward VWAP movement. The volume fluctuations do not suggest a strong reversal, and the alignment of MA5 and MA20 supports a bullish outlook. Given these factors, a cautious upward movement in VWAP is expected with moderate confidence.",2025-01-31 12:55:00-05:00,2.3029919595407566e-05,-0.0009600877077649839,107147.6,2.3029919595407566e-05,up,True,12,4 +up,0.85,0.01,0.02,697.5,696.5,698.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a consistent upward trend in VWAP, supported by stable prices around the MA5 and MA20, indicating a bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. The volume fluctuations suggest no immediate selling pressure, allowing for a potential upward movement in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-31 13:00:00-05:00,2.393005730649822e-05,-0.0012447742711882426,127902.4,2.393005730649822e-05,up,True,13,4 +up,0.85,0.02,0.03,680.16,678.5,682.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Positive price change in recent intervals']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing alongside the price, suggesting strong buying interest. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:30:00-05:00,0.00016077865490304877,-0.0005218696436019576,435575.4,0.00016077865490304877,up,True,15,2 +up,0.85,0.02,0.03,680.23,679.5,681.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume with recent price increases', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume is relatively high, suggesting strong buying interest, and the recent price changes have been positive. Historical similar contexts also show a tendency for VWAP to continue moving up. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:35:00-05:00,0.0012752841919079771,0.004161702404549827,1080229.0,0.0012752841919079771,up,True,15,2 +up,0.85,0.02,0.03,678.05,676.5,680.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, supporting the price rise, and the historical context windows show similar patterns where VWAP continued to rise. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:40:00-05:00,0.002124719493676097,0.01058593134834554,1350247.6,0.002124719493676097,up,True,15,2 +up,0.85,0.02,0.03,678.62,678.0,679.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, supporting the price rise, and the historical context windows show similar patterns where VWAP continued to rise. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:45:00-05:00,0.0026397495163043017,0.011183941836562739,1513989.6,0.0026397495163043017,up,True,15,2 +up,0.85,0.02,0.03,676.0,675.0,678.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:50:00-05:00,0.0030573183076748056,0.010835814571516167,1623775.8,0.0030573183076748056,up,True,15,2 +up,0.85,0.02,0.03,675.0,673.5,678.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 15:55:00-05:00,0.0021522185647485648,0.006142498532822227,1618137.0,0.0021522185647485648,up,True,15,2 +up,0.85,0.02,0.03,676.63,675.5,678.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price rise', 'Historical context showing similar patterns']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been increasing, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 09:30:00-05:00,0.0016019734962602894,0.0002998839704906886,1096012.4,0.0016019734962602894,up,True,9,3 +up,0.85,0.02,0.03,689.88,688.5,691.5,"['Recent strong upward price movement', 'High volume with significant increase', 'Consistent upward VWAP movement', 'MA5 above MA20 indicating bullish trend']","The current market window shows a strong upward price movement with a significant increase in volume, suggesting strong buying interest. The VWAP has been consistently moving up, and the MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also show a tendency for VWAP to continue moving up after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 09:35:00-05:00,0.0012363673433406497,-0.0003874382994210057,875035.2,0.0012363673433406497,up,True,9,3 +up,0.85,0.02,0.03,705.26,703.0,707.5,"['Recent strong upward price movement', 'High volume with significant increase', 'Consistent upward VWAP movement', 'MA5 above MA20 indicating bullish trend']","The current market window shows a strong upward price movement with a significant increase in volume, suggesting strong buying interest. The VWAP has been consistently moving up, and the MA5 is above the MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-30 09:40:00-05:00,0.0009290182365722655,-0.00046881429125028573,748557.6,0.0009290182365722655,up,True,9,3 +up,0.85,0.25,0.02,705.94,703.5,708.5,"['Recent strong upward VWAP movement', 'High volume with price increase', 'MA5 above MA20 indicating bullish trend', 'Consistent VWAP increase in recent intervals']","The current market window shows a strong upward movement in both price and VWAP, supported by high volume, indicating strong buying interest. The MA5 is above the MA20, reinforcing the bullish trend. Historical similar contexts also show a pattern of continued VWAP increases following such setups. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 09:45:00-05:00,0.0008126763268490045,-0.0011018666498481544,627926.8,0.0008126763268490045,up,True,9,3 +up,0.85,0.2,0.15,706.5,704.5,709.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent significant price increase']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes. Historical similar contexts also indicate a continuation of the upward VWAP movement. The price is consistently above both MA5 and MA20, reinforcing the bullish sentiment. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 09:50:00-05:00,0.0005898893135418692,-0.0009711706041415635,579440.6,0.0005898893135418692,up,True,9,3 +up,0.85,0.15,0.02,706.86,705.5,708.5,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent strong price increase']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes. Historical similar contexts also indicate a continuation of the upward VWAP movement. The price is consistently above both MA5 and MA20, reinforcing the bullish sentiment. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 09:55:00-05:00,0.0005357507024301156,0.00018134827510621343,487108.2,0.0005357507024301156,up,True,9,3 +up,0.85,0.15,0.02,706.11,704.5,708.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent strong price increase']","The current market window shows a strong upward trend in both price and VWAP, supported by significant volume spikes. Historical similar contexts also indicate a continuation of the upward VWAP movement. The price is consistently above both MA5 and MA20, reinforcing the bullish sentiment. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:00:00-05:00,0.000440089005379507,-0.0005762446329305171,431347.4,0.000440089005379507,up,True,10,3 +up,0.85,0.1,0.15,704.5,703.5,706.5,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. The price is above both the MA5 and MA20, suggesting bullish momentum. Additionally, there have been significant volume spikes, indicating strong buying interest. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, the VWAP is likely to continue moving up in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:05:00-05:00,0.00039407709329902785,-0.00026449564095520905,405661.0,0.00039407709329902785,up,True,10,3 +up,0.85,0.1,0.15,704.5,703.5,706.5,"['Consistent upward VWAP movement', 'High volume with price increase', 'MA5 above MA20 indicating bullish trend', 'Recent price stability around 704-706']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. The price has been stable around the 704-706 range, with a significant volume spike in the last interval, suggesting strong buying interest. The MA5 is above the MA20, reinforcing the bullish trend. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:10:00-05:00,0.00033768595168098825,-0.0008478596619360956,352597.2,0.00033768595168098825,up,True,10,3 +up,0.85,0.05,0.02,703.75,702.5,705.0,"['Consistent upward VWAP movement', 'High volume with price increase', 'MA5 above MA20 indicating bullish trend', 'Recent price stability around 703.75']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. The price has been stable around 703.75, with a recent high volume suggesting strong buying interest. The MA5 is above the MA20, reinforcing the bullish trend. Historical similar contexts also show a tendency for VWAP to continue rising. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:15:00-05:00,0.00027036730308904744,-0.0030040388785480265,352340.0,0.00027036730308904744,up,True,10,3 +up,0.85,0.05,0.02,703.0,701.5,705.0,"['Consistent upward VWAP movement', 'High volume with price increase', 'MA5 above MA20 indicating bullish trend', 'Recent price stability around 703-706']","The current market window shows a consistent upward trend in VWAP with the last several intervals all indicating an increase. The price has been stable around the 703-706 range, with a significant volume spike in the last interval, suggesting strong buying interest. The MA5 is above the MA20, reinforcing the bullish trend. Historical similar contexts also show a tendency for VWAP to continue rising after such patterns. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:20:00-05:00,0.000245664669478729,-0.003729256400066827,363806.6,0.000245664669478729,up,True,10,3 +up,0.85,0.05,0.02,705.35,703.5,707.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume with increasing trend', 'Positive price change in recent intervals']","The current market window shows a consistent upward trend in VWAP, supported by a series of positive price changes and high trading volumes. The price is above both the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:25:00-05:00,0.00018654010330215742,-0.004200094480346556,421080.0,0.00018654010330215742,up,True,10,3 +up,0.85,0.03,0.02,703.0,701.5,705.0,"['Consistent upward VWAP movement', 'High volume spikes', 'Price above MA5 and MA20', 'Recent price increase']","The current market window shows a strong upward trend in VWAP with consistent increases over the past several intervals, supported by significant volume spikes. The price is consistently above both the MA5 and MA20, indicating bullish momentum. Historical similar contexts also show a pattern of continued VWAP increases. Given these factors, a further upward movement in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:30:00-05:00,0.00015327592053016037,-0.0045540645209825314,469911.2,0.00015327592053016037,up,True,10,3 +up,0.85,0.03,0.02,703.0,701.5,705.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume with recent price increase', 'Positive price change trend']","The current market window shows a consistent upward trend in VWAP, supported by a series of positive price changes and high trading volumes. The price is above both the MA5 and MA20, indicating a bullish trend. Historical similar contexts also show a continuation of the upward VWAP movement. Given these factors, a further increase in VWAP is expected with moderate volatility. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-30 10:35:00-05:00,6.60299738628467e-05,-0.005214626629345104,545860.4,6.60299738628467e-05,up,True,10,3 +up,0.85,0.03,0.02,700.5,698.5,703.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'High volume with recent price increase', 'Historical context showing similar upward VWAP movements']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both the MA5 and MA20, indicating strong bullish momentum. The volume is relatively high, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, the VWAP is expected to continue its upward trajectory in the next interval. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:40:00-05:00,-3.5518388758593034e-05,-0.005124174396576114,594690.6,-3.5518388758593034e-05,up,True,10,3 +up,0.85,0.03,0.02,696.5,694.5,698.5,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Volume spikes in recent intervals', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been relatively high, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:45:00-05:00,-0.00014931570519180482,-0.00514853689095876,642673.2,-0.00014931570519180482,up,True,10,3 +up,0.85,0.02,0.03,692.9,690.0,695.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Volume spikes in recent intervals', 'Historical context showing similar patterns leading to VWAP increases']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. The volume has been relatively high, suggesting strong buying interest. Historical context windows with similar patterns also resulted in VWAP increases. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:50:00-05:00,-0.00017821283772823104,-0.0015941141644262302,640292.0,-0.00017821283772823104,up,True,10,3 +up,0.85,0.02,0.03,691.0,688.5,694.0,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume with price decline', 'Historical pattern of VWAP increase after similar conditions']","The current market window shows a consistent upward trend in VWAP, with the price consistently above both MA5 and MA20, indicating bullish momentum. Despite recent price declines, the volume has been increasing, suggesting strong buying interest. Historical patterns with similar conditions have also shown a tendency for VWAP to continue rising. Therefore, the prediction is for a continued upward movement in VWAP with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 10:55:00-05:00,-0.00015385654645905245,0.0009384126437823603,613761.6,-0.00015385654645905245,down,False,10,3 +up,0.75,0.02,0.03,688.29,686.0,690.5,"['Consistent upward VWAP movement', 'Price stability around MA5 and MA20', 'Volume spikes followed by consolidation', 'Historical context showing similar patterns leading to VWAP increase']","The current market window shows a consistent upward trend in VWAP, supported by a stable price around the MA5 and MA20, indicating a bullish sentiment. The volume spikes followed by consolidation suggest strong buying interest, which is likely to push the VWAP higher. Historical context windows with similar patterns also resulted in VWAP increases. Therefore, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-30 11:00:00-05:00,-8.654257687101818e-05,0.0035163600752134705,559843.6,-8.654257687101818e-05,down,False,11,3 +down,0.75,-0.02,0.03,682.0,685.0,679.0,"['Consistent downward price movement', 'VWAP trending downwards', 'MA5 below MA20', 'High volume with decreasing price']","The current market window shows a consistent downward trend in price, with the VWAP also trending downwards. The MA5 is below the MA20, indicating a bearish trend. Volume has been high, yet prices are decreasing, suggesting selling pressure. Historical similar contexts also showed a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 11:05:00-05:00,5.238958852821218e-06,0.004401191082676004,510761.6,5.238958852821218e-06,down,True,11,3 +down,0.75,-0.02,0.03,678.5,681.0,675.5,"['Consistent downward price movement', 'VWAP trending downwards', 'MA5 below MA20', 'High volume with decreasing price']","The current market window shows a consistent downward trend in price with the VWAP also trending downwards, indicating bearish momentum. The MA5 is below the MA20, reinforcing the bearish signal. Historical similar contexts also show a tendency for VWAP to continue decreasing after such patterns. The volume is relatively high, suggesting strong selling pressure. Given these factors, a short position is recommended with a high confidence score.",2025-01-30 11:10:00-05:00,3.0915356979022146e-05,0.002100488666666789,425274.0,3.0915356979022146e-05,down,True,11,3 diff --git a/output/META_2025-01-29_2025-02-02_20250204_044205/returns_distribution.png b/output/META_2025-01-29_2025-02-02_20250204_044205/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..cde5ef93220deeca275d2bec48a8b378d7a74191 GIT binary patch literal 20543 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 jsg!*i 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 literal 0 HcmV?d00001 diff --git a/output/META_2025-01-31_2025-02-01_20250204_134222/confusion_matrix.png b/output/META_2025-01-31_2025-02-01_20250204_134222/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..54e4224b44779c8c50486ae03d735843a1286278 GIT binary patch literal 26282 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 b`uQap5ha9p(~_Kq{_S9M_`oCUGtqwo22_)B literal 0 HcmV?d00001 diff --git a/output/META_2025-01-31_2025-02-01_20250204_134222/hourly_performance.png b/output/META_2025-01-31_2025-02-01_20250204_134222/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..69114021e06f67079e6986f63088c6a732f39d81 GIT binary patch literal 104979 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%0D>@=`*hU~R1%A$N$q*L6g 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 VE%yFn(170578Nb!`$~Jy|1TvGt3m(( literal 0 HcmV?d00001 diff --git a/output/META_2025-01-31_2025-02-01_20250204_134222/predictions.csv b/output/META_2025-01-31_2025-02-01_20250204_134222/predictions.csv new file mode 100644 index 0000000..c06b8c3 --- /dev/null +++ b/output/META_2025-01-31_2025-02-01_20250204_134222/predictions.csv @@ -0,0 +1,6 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,current_vwap,current_price,predicted_vwap,predicted_price,actual_next_vwap,actual_next_price,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +down,0.85,-0.01,0.02,686.5,688.0,685.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:30:00-05:00,697.1974936190093,685.9600219726562,690.2255186828191,679.1004217529297,697.0463600394921,686.760009765625,-0.0002484411757930627,0.000876361035427986,321471.0,-0.0002484411757930627,down,True,15,4 +down,0.85,-0.02,0.03,685.5,687.0,684.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in further VWAP declines. Given these factors, a continued downward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:35:00-05:00,697.0463600394921,686.760009765625,683.1054328387023,673.0248095703125,696.8987935702866,687.5050048828125,-0.00026068739523795365,0.0008068824199469748,344973.25,-0.00026068739523795365,down,True,15,4 +down,0.85,-0.02,0.03,686.76,688.0,685.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Given these factors, a further decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:40:00-05:00,696.8987935702866,687.5050048828125,682.9608176988808,673.7549047851562,696.8005264426521,688.0399780273438,-0.0003205279376347625,0.0008212550844322042,377708.0,-0.0003205279376347625,down,True,15,4 +down,0.85,-0.02,0.03,687.51,688.5,686.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 15:45:00-05:00,696.8005264426521,688.0399780273438,682.864515913799,674.2791784667969,696.6421877944183,687.977783203125,-0.0004138191809430758,0.00173290437008089,477075.0,-0.0004138191809430758,down,True,15,4 +down,0.85,-0.02,0.03,688.04,689.5,686.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 15:50:00-05:00,696.6421877944183,687.977783203125,682.7093440385299,674.2182275390625,696.3539038948549,689.1699829101562,,,659297.0,,down,True,15,4 diff --git a/output/META_2025-01-31_2025-02-01_20250204_134222/returns_distribution.png b/output/META_2025-01-31_2025-02-01_20250204_134222/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..b1071cb8a18bb07dd07b4523aee35fc6a6d92f8d GIT binary patch literal 33995 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 literal 0 HcmV?d00001 diff --git a/output/META_2025-01-31_2025-02-01_20250204_134222/vwap_changes_comparison.png b/output/META_2025-01-31_2025-02-01_20250204_134222/vwap_changes_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..a749165dd4ae71def149a602a7544cbf25cec1f1 GIT binary patch literal 33002 zcmeFZXHb-B*ENb^1V;he1QG=lBOsC_G^iw%BqBkgf@H}#o5{2h5CoJg2*}VhL6T%e zKr%E@kW7QbCN^hZ&CK&Y-}k;x)j3t?{P?O4RWlO0@4oLV?7j9{YhQuaRTb&~WcibZ zhKBy?6}cNUG=KEa&}`SC+XcUI&pCDs{tv>Jo}KeOOXH)i zrjAaQcD6$N;{3vAk6Ji8+dD}J2-y7V1^jl7<^mkg`YhlgyX~*sa-yMOyo3JRmMW8C zNkemA`>Ncfo9=H(y|j^shF4^!nG$bZy7c8CyVnd$sK`=hwp)C5N2lIYwu#aduUu#~ zi`R@nYp1bYYQVeH+n4q=Y$WYht#;M`$8}o)~-;o$|UCq<4 zuWg6VrlH}zI(gOW0`=Q{JEy7tUZ;5=N&V*F#Q_HDH-GHQ-+{ilxb6S7my{i}?DH5^ z`8-qN)l0_7P~5HB(ljX&1^he*Y%_A(zll}zwYTh7I;*~9tbAA@l;w3t)p$x=Z1OJo znGR4zc8ZKbc0S&O81|IgQeio11OgMj2viNjI(vHA*>^ z%nadVGTr(=-Kn^-wnSVk7SXV=VQF*zFLkaMW_mWKPMaIO0;x}^lnvGOrmV8;X0g@Z77Rbeo2keYiIp< zHH#OTl~&fOn2e-UWHuHorwc|^yKO()c+M1)tMg0m<^O!@5z~0S?yO~mf$P;ryXdW| z-L}1qlVuP;R=h;C9&eDGIqRiPbNjF3_Ovv-#8WA6Ur<&W{gRdV3yx(Fh*slvertNV zE^V4EYBC$GQ+0FQ{S?uS_4&q?$;Z2FeHo zF7H?-!7J8dFH0$$Z;(uZ(ZOzR!n9?IHR{x*hPaO-vc`GhICnA|6c zUHSF0;Ax-te7z?QF5ftB{*{)~``P4%n%}BM;b^Q^^NcU~v;Ll!(eUeY{kmxvIx%rG zaJOn*!ROn8qLQb9u~z&Qqf@KZeG+ls6bnZ?`5?({%=i>v- z^NlibTDMGJH%;TtNnf6()8aWBDiK(=QMQBeWAus3OR4>-qxk~mD`{32`p?%Xiie1Y)Y?9y(IK`PC9qnngpG%;hz@=N|+b3gK@Jh%0en7Dx|21(b302Lb9Gq zQ*RjQ8e}%tO$8WelwCt$q5YZDATjwXt1XxfHr$Im z9n&o-M?=iD?pUaip$Ph{k@6D$s7i@()s3>wEO7jEkjKkJ*iqJG;wPnikHD{vFjp?j z&9k|!H$0rJT~_#ETdZ#q37nep0w%IN3L&)_r(tYx3f%#f*44Gdv|xdf3j#_-3Po{r z{^<#MHOIFPkNL4B_zoS0>mIa|osBiwkfS@2B{TUkXXJUO&)QOko*HI#eTZ{2RnMqR zdNFj-IMXKm#w5`?tA6o3jQFrCpP;9t!UMGsD-{s}KleEwa+2uSe>Jd?i+`)GhfhS@k!;O4bq_#^f1&g%n@L=KLLYHR4o`2NVcaYb; z{os!|LeL^p0)@43Wh8puHKZ`m<}o>tP;u2#=nib#8cQtcoc%yqYr1w; zk*^6>Q7OLDjx|U~(pXZSPcEirTjH#ZxTcN3Qsn`)#EqqHftkixah=7EQi@1ce`>Tv zDSnf(rgl>@z1lNh(V$8+Xos=Gxnq4Mk4t@47mko-vq~wRx=!^X^Q)o5!Htv4ds*U2 ze$RI5$jtW4vIv$-PW*=L`XTy619MuY|5N_b^*L`N(yfE)Ob+|_2`*CR-r-{Rn$8nk z)*wEOSnd%hviDU}*TdWwTQcPRRjg?JartaOW zpPU6p-dI;LWpxs#t>^F0;dzqwJme5BhC=R>fwxK1pJy8SYtG9tPDKh3eS}+E>zHx< zj&*$VS4Qbftt!gs=>1lPBiM?boXILWFChC^xa|l3!&evH{rHsUZelFwwKEwLu3*8` z&86VW=}?JT90|V9-{*LGWvBsV|_1n}-W{VD-E?=Y@6op0H zQ#}mv{M)u0kFzn~R08OXd6YwsErnO>#X8t$jVM$QJrc=-m_Ib<;hwfD($|Chg zO(&!oGUZb_CXe-bX+AE>W>1(NJR3sS!g_%Aemrl&an*$koX;_a06BZMT=qDwHZmva z5;s0fNZ_!6bCdVGW0%RhF>AK>(wEPM>~L&*#L$#^ro0Pcff(m<(1tWad#kUnYLL6% z>>K9X!*$;EA|1cT%(Mb&-NFQOw);Uu>`0`EVZpM>+Z{Msp<(6Ba#rY z=DlavHF4M_o!G-h6|jeO-`JI`oJL7@7ywuXSt7SF7dHNAjY#Xky3R;i4)>#tZXE`0 zZP6vO)vVehaekD-8L@uv`EP^40)}sxEBqN7yGQbe!XR}Gg-L3K8+wj=&SO`{5x6KUz~(d1aK>96yY`MAyR{b(1iteuE;k3a7`_T!syi}K6S-S7lv zB{K^xYFT8qXxl=|VX@K`m0mIm%SkHHq6HiP&u2>3Z2PpODa%9Oh9is&E&EG+lB_#2 zUvv7cJA}+wc9}+GI8SwEpD!`SR#`8Ox1`t-A?w~4Z_m&(oy^F~j6S@kpqzDR?aJ9k zxSd;KeBmOo0#@d~2fnzpY{IRDXypKYyK9fY4JFnl@i$Y0? zFicZU)d?e#B}LVD%t~k*`MC7r-RqxDW={n0gw>MiSw-)CY}D(WjGvwr$Ee|DRZnsMnc(4KKRy7c6TS>*fk zcWa+XkpTSG&d2yHbuCVqgo?D+whZO?dix&!2%vk#L9?x~3NVSxjK5}tzT?%{O~~&@ zCPx*%ADH~~b5c%4tIEWf_)<;!){Kiuzr_0QipgYl_kjnmwK8-y4Sg2d3N2v)sF;S| zGCM*NXKm>;Zz~0S++^tG&+eM~9fI0oyR0_>Z`)hw`0Z3mtBRgmugg5;hMw%~N+HoI zUDI=6Ot8U4GTGDxaKO487XC8n*4&^{esS(-zr#-SSKZ&LNZZ zG|6VV-)LwK@G0gjU|EAy6Q?DGZ)jwvr-7~g?b^^LPk>w z1b4tV^CxG=at*p){CXzKaAfqas(>P9an||vuzmFO-O<9y;^Emu-DA3Dl_zV{n76Se zoHnVn*DUh4*w&(R2Imkcx=rvrfsp09E<=3XO4t+7^m>-V__3SpP)-A{99}GS6}H-Z zVd(Ssf-i(i;;v_B8du)4(R*W2wU0+Copd+NSlBy6D{ILtD~u4@w3%&_K)Rlrp}c5q zqZFYN!6^0nV)5b;Y?ldp=!f1bc;5h@;|eS_bTfZ2>7T>>nH45yqZ}fKBQPA`4lgBa zdcPIHB>ZJktW|Y{rY+~xV93KSk7!4Qju^|iy^U$=EDSxYpxNZeeKSs|VZR3;yJpBL zQAVYw3Faa05U_ocHhEfJu3Y+H&?gv3;BXL?e_MQAGG0=_-@jU6n|9U#^%!$~ zme>sSV%v)@ue?J#aW?xBx~)4DLlVPW#pt`&E6ju+`M!k}t~vLdUHd&wlXbuO7Wkdc!4XgzpF>3S7pYOKUd?@HxAbOY|&- z7&9-LiFM-9Ef8MUXO3%3yO48|pth)s$z4;LI^kd@XQP*Mq2d_9ZZSt{DL22<@!re@ z>%_w11T&MnD{C{QaWXm81Y1^qjVaFA8JIVji*J9EeE5><&b3A?S>M*+`k8jG z$A2B**3FT-eTdeZA9gcaNVP=hBI{4B47#NFDp{M?7K~{{(}X+z;mW=2MJAEl*F3WYII!C`!3iJmOLJZ}LsmT9^w94pJD? zXSGm_5x&`7Q?%;+p6FCu$S7wZda%W6N7-y|7WYTo2Dk1Dx#)KmuQ7aL@gp@UhiW(J zUvT804Jdk4-5e9tzALItB48u?z18Moq&WoUf(@mNPB$w(S&?=901`*s^R~XOY-!_L ztPR?2pGeo(zO%*cNvswP9KE;f!NzBjM%FG>sLLSkIL;+qcS5eB@Po8p#b}@@&Ty=4 z?Sy6p@ngF=X_00ym*w+02a`o&B;D5p20O@gg{vRauosv!-p0oc&fn>E>8NiR+{C!n zG=AL|$CO>1@Z@?A%YiI)uOEfkKIa*h<)Y)qsyMd!*c5m0w=9>CQ!9wpO2SLGTCW$G zHPISxdzXYblmmR1YpYk;I)dy!-WfZ+FO*Sg|JS%D>(w4T_omBX!c#bncg6Agg zS@CHKXYo6pfH3vnf~$oRe~I6;HddyUy6hxyk{*^UKR((f32 zN^8Voct2Nb=ZhvTFt2L;}QCbAI!UZeh(&@bSoPB zRN_0yta^>~{pO_Fk*`;8)oI?f3A@VnDcE;BJ4?=;qx%>^Z|78QoTmDLY_+OOrOWri ztantJD=pqPOKsp}stDWhIMkB)sTjd_XzydX?xDR8=~{Wla1udr#}CY}-11RgaKH)i zumtUhps$h^eII8@b1oN6Q9ZwcN3{is?rhEB*6%>;xFpP2?fA~DDM7fHvC8tZUabFn zh8?f)G21ZHkMt%yzk-{dVRkCkJpk}wi(eUh=q5OUwQb7e;@3ZN$3uT_mgv6BLkYt? z_i(}eB6}6N%VYooIGsG0#X2MYu%5X|oS;5!qH8Yrm+AsPB}18GN|zymW3?3I1|mIpm~4g=kQZRpUkEf{tTI5aQ1 zm&+>d%;l*c_OT;6)oFBtS{?Lo`{ zd|tRmqW9zR?6-(cN|@L3`m2U+O~)^nr-x^6=#Hc2aXzla9>j_KCuB6HzM=bB zBkbvQxyng_ae*#6VNq4KX-8r94xypu&Q(7kw^)2aXE8jL2`(CO(msy%dWU?<6Y|z7 zr?fH7qHIa}^o6X}i#N_d5P3j&I$t$e?R#iO$n&dMyH&#Jr6(6OxEuIWgZ7C$T#dzg zjm!)k)t=hS&3kH-7*Ep5Sbj?`Ew8fU+esI8a5q?3P3;YO$`@2k(5H_$MYvUw6Npl) zcatcu!jRa~eBw{XD$$UfJ61Ac+wO11VW^Y+=>$L95x%qBbO8iTjBZWp7rJu(qTl6g zqSYr`=$@FAsEG9n`^yTlh!X`uCT}j$W%I}dHGRaiRz2CpBNvK^b$I`S`73+8!IgmE z-3nv-E-AbX?`NyiIrFfLPTBaC!{d)_hIN{=tAg>O3cD0b*O{>%Uyn!p8n9AkY7Ys% zRh>HPZWkJOm~J+9XhZHC0ZOP*3~_eTJ+3W$catm6bg+7Fo6F&ZM?4?HK8b8k8Z+XU zZW^t_n# zp7|E1jV^ac(EZ{&de7-zq%l3uuwg%NNwc*jQn#q`G_W9IC zx$$+hk2Xf^K7diITdo2K?~ z3?=gW*v)06fWk77dc;~e?tWJ`g-FaDNxgjP( zR;{Vm$kV;^lW`z6B=n-fR@-;2yI)JfZCW3dr=}17IGoA`WYX)I(oNrxMi07>Tl;^G3yS zuQzbNW+kCnI+RX^St(c}GdiQacl_Dsyd|gehb+i3ew3A!5~$Pgwz?l5MY@*nJ`pl2 zj*3>PM&LD~O0!DHmmclX^@*je+p~%6t-@ui`b$Fzx z#+*hHfN9zNZ9|KzZ6r$R=0?_E^`hOs$QOVX(Pp?XaQ|DQ%%&7^J+IHx+H|o^yD?7P zA=rfgC5(0-+?s=JzaZ&^kkJLph({!$L{^tB(KkO~fl-s|jPD z--Oq-6|INX%W%o;;V=00V%?BPu+bX_*4-2Ys`^F!^gF#GT1IUhA2#j<)ZF{)EALP) z|KP^Q>}r;RaF~_MZ*Rp9n4A3}_&AlV-49zAyTKW)#v<80wOwcZzj;RH zkdYZG81$(gRbGFKh&09S8Q_{e>u1qi9MY|lG4-c_7+H6~d`IP#uBXKf(Yhg&Ucb$a zdAeTJ7>T5jrBRtpaolv6790OragU%qVb!;29G1!>`Adj5RK9uPwB#MMG(rZ&fXQV^ z@dvT<+|~GAg@x@|i_1f}(Iw`loWcTm$@dn~O`rTFG*a^E95cp3IcZJfbCr}ByMuja znqHhF{-o>PcKiDRNE+KD^}^4`t<8rv`ZnhxN)MKV(EMno>j6FK>V77>(BSdvKaM1X zUekXo$Y0CyQ@>)5_+_WyJ)~-RldSx~An*4-^3Pf9Y;?HP8g6UlJ418*Fc#hmU+-u< z|C>^a?TM}h`t8OhWuqlTs3Fp8nEKLl9>EM#vi=MzPTvI;t$IDnYtr}hL|=JK>iz5{ z;3bHzMiY54&S&Ws5?^>1?rbL~@8{`GXEjTHW5zOhWf}HV5^PnM_^`;b${Sv< za}{s3a+s?B^TUx=gE}EZ2R$o{no&LZ!0W&V!t=mSKKc*VKqQ@$a=jMyl9+JT3inqk z_FMeY$>4we@NQZ+Q|mw%ul^zGjr>o-Gou^z7Wam-iJuQ;7L1>&y3K~|F=3VGbi?+f z?6v78s32MDCAJjgU-;tXd426TJ@dJvu%6sZ1^yh$&fs?DlyDxCGrIe7q~n7|3X(K= zyUez4T{z@s#S(x(J`^h+_I#DH-vr7^BU;qvUdpMvUK>F7SpvnmvIgX6@$Zf;g}m%; zt3omh!EL$+l;=BaJEt{bEmLAd{X&0WmvZ8}>nzUhM7Q!X(5i8Xxr;$Kbb``$u;a=< zZ?3kmj66>k_}}Dr+bcoao!hQ!oq>lS(Hc$o zvWxYX%RKO)p-U1-n)i*#2Q`kLFMr_S_$v+7uS}-w(ZC#vEKYR^xsZq=E@MBq7RQ=+ zNVy$`<4`9=-xs;4{?Dyt0@vp}@PIZM1pD)gGyO6uyFC{tUUPVkyxh=V*ZFAyMA{UW_FE~ox{z6$;qIeRG;{_6UAT}9vx;)o z_y)OO4dRRYDv+RWA+o@hf%)x^K~m~Moj_^gWLBwkF$hfKka3jQC0&(IytOZv%cSRh zvb8QwRx--0KeH_yPsRgDJA#?^+g$5cj2;F0>e`vid}EH#-Xx_6{BXG5$T-H#Z*@Fn z{D&-K2J1LGx3i(y8`BA_V#q^W({D{d<8`;vH3Q!gy66slr}_mj4up^$?cljJwp7s{ z7;g{!umz-%2_S=`%ws*~ynzumL=roz!3dy;Q>5$~4kV^F%vTo8*NYkHdJMmADHx57 zMzWXZJp8Y2rR)nb9e@g)y8vQSdoLN-{bZe3K9@gy6(xQmV1oH8)7R=>f(D5dzm0o#LHE7XTrH1f(rc}6 zWRRb2ED?!qbJO^hTTiw2&VHnFd&02K*Unj_@6W=t)F{F(q|%E!$i(5$Pd-2kSpxN2 z+pl<^gUdVjxH3LEu!HD1nb88D_)L-DU&G;bmbSI+(e~N5P&7+GiAgd>m6!v62f(iA zr;MC^V?KxvWk}J}^Qr)x+b#8#~akucrI6^M$_G0d-x z&Tw#E^8B9D@4GhqXnWg$Z|yU#6+r~wq&poZKBOckgh{0J4JF{bLspGkyG-XDdmu@T zLrruI`8BLg5nmOfa6nTQxiP174eJ#?PZaBad&8gMK)WjM<>7trNnkjM)61+JTeOD( zNFn9*OCzI*3+@)+$oY<2W^ay@#c)k6g5SI@w-Ri33(iSwA9W`&Yf4LV-w#{j%dKPO z@_0NhXeBL|FO9V1rm6JILMzHDvUCX8g)E0XCt<$TED)PWg1S-)iHeNmeUm5KH7ht~ zG%-IEm)YNY;zuo&@iDtG12~)xS#VB<&1a!$W$)t)7xyJJnXul>lMVQ^jwEfK(S$!# zH6PDm@cwiy0uV5~?YS5}_1IU?dkC)qFnSZ`lwEaL2{4xY^a&#uR6BjbDtyzfy7b24 z>jCU26Zmq3lY}58!&l^8!R8f^?>@59b0nl9xXgA|Ti*IPV2Hfm9bxLtm??#$96y(p zh3a1^+K92e$BJU~71Li^`7JU^FCWF-&LX`0kVYEf`02fKnyY*&k|V>|81H2>z|nYQ zlDqwCfXl%Q%lOwy6|qxIR>!wbT6_kQAzUK#1ACy1bUdw(rvAFfUbYM8{6bw8Q)D(y z@j*Gea#8-Q?7}0ve2P^ZPx<17AJ=`tIw=Tg8!n|ybnVg1DqhlM7#mti&zsox=;@^K zHPgpbAC+=7F>kZ<`G{%p(sIyktY>tiU=7>i<)33p96ZrHbhyK(4y3tEwkJHP1Jgn( z*$4j;^n1JJCrpNsYjHK!)pQGjxh6+m(sh`~t$>UZrI;u1scgGTLU}s(6&a{v<|pN? zUlYr)tI0Lw*}^t;@*`TthJ-4UH=9d&rEOR>d|Kd9X@%GhX}9k!nFgPWIMTQIn4~3q z>4%-TZdj89nbKu5YpI4)#Ofx6<&KxWu&8IL;^*j2Rlu^;%SWh#t!OczndUvkss2%S!Y^v>fw^K&+0FZe!-w(&tObFhOI{avTVrx zFs)N2`!6}|Y|0%pPTsL=Zz@w^hv8$PN{d+}ndeE}0`b>rKw6M#FvM^W^IOsDmAg!n zSu%@i$J0S-b%rcK0jnq_tKr^Z6_)$m`h8q7%*!FO#d)>V6s8)8WoO2ldz02;pcZl( zU?*8t9|ji#2u()EmY{mFU7(CbNS7FIkig|tQ0lvI8~1z?naQH|HEE3?b&DxDBWb=RzYEUxmh+r5?4%8mtUorLXf!@*TjxnHUEvpnO1mEIfB6i@lj%!=rS z%U#ryB#J-mL@AF<$=o&4RBrm?-6e6IFanR@s?=qYF2)|ob>AD0ko2MON(p39;p9_| z53PeW@lt@u!sRRr+NvKzr2x=Wg-s-`)n_$do{VuCb*u9Bd4(Ld%QrMOsPYQg<@sglgd|IS}_uieG_+=|(S5NY!fv#v4`g*6FlYT_KL`W+~uE!*zMh6wkW` zQ04`VrEfCoPJsyGQR#R8H;yN)k^qTloTdczNdF&gKECWKEWB>AnoOj19G~fJ~UJZ%hl70Fs zhBrtu$VPcERZU;#s5Fi4HFZJL>;J&m|H8E4;WxZ0p3*C!!ZZqss|f?|7hg5x(wkII z5KD#cVP(IOoQ)Se?Loo z9+guq;5}3)ZvgIl%^?2knVC^o4X2+JLV5@rTUyPd`U&~%Oa-d%DsGuT5AJ`MXVrGP zpZl?){g*#l(5(AzEOzkvksvzr#en=j#Qvh@yr|0+Y47FVtpJ%8B1+ejn$}D_fEI}A za~}#Vl7c$cyLe3-pjqpCS$|=`c!id;n~|0Vr%aoAdpJ(Iof*kC0pt8&F6( z4^TS=&=-F%fTtmS3hYY}&f2lgY?CO!EzLKS_+ICY4t#lZ!d^w$;BV~7B?^gW0fhEs zIz-ySR5tuj;PH91^Ww^fMS5ypm zAAM&v_T&9Hq_3-BU$ZVgN&!4n_kLAk@}q_TGqS6+a0j1#0X#&QLd5ZhbDjKIC977t zfR|bT$3!5KSdf1Wyj>BafgUq}s23ozCnHcnbz;VCu8$u3_&Qwe?;(x{&zZPXEI_tilctM@~I3m8Gz~g@rgW4s!ViuLdBCk}DV_ z&-V8hIE^|3S2I#ps8tbu9&-(?xDP;jd%Q8m`-J?78#VAE<<3hX<0{7@d)*=Av2B3; zBn;Ae5-M8wz)v?Gu4ns!ECHm89kR{NZOlsL)^$Z17JDYa?*y0z9vgo#(ntyUke>&7v&2r6DcJxneE0kO0#DMi210jtrMhW`1UgAw!l| zHh=4&z|c8#`>R!YM!4eF&1tvNx}Ox=&m=873f;gEg?V==0Qk{Ie`vyV`so6LF-hnJ zlUkHCcmoR8Og5@S1B4D5vnwN7r?}?96J3yAP5Z(fHsSu?ARprT+gxPe_|>%Lu&WHp zia5lmnTdan=i1tR$_?E5VFYf|9+sWm2TniiB|e`*YK13khZb2z?5k;*4`JiV06eOY zE-rsaiMeBKhJPFE_gsp;gJ!T(ZmD7!g+yaTGKHSQwT$`@EZ6B)IGsX(E_V6 zHcsqvH(jXgS;dgmlHcWf=E)cWdA#L>0f57C@T*<}Uzi0$HV<1C2XiNkg(DpWh&Hi} zpNxK2YS^5<>qPJ(z!WV*APIAML&RIY1g=N2T4--3_!NpV0k)MY%w*9Q4lSD8^to4;kA<0B z)E!#~7G&l2Rj4@T33fo)Fnk{xP^iEx`mMIa&3T4C+AcZuNw&8zAgUAAVKd@-XK({D z48+zTGJChw$O_zZM4nr#a>YuNY_yr5Jc@p|*X50-W3hD}q_M@`_Z2&3&MLf9EL#P0 zYvK+@sZX|^3;RmJZR7a)wLNI9!@ot6tFDY%F|)t74H-ecV2zo+Vy92+ciaLlO2xV< z8_TT#Pd39g0outvp4fEbgFcZqgszG5A!ZC`LLn#Ycsw%iV0kb9rnBQ&rU2j#Kdf{6 zfj7<3O1cdoMX@N%niwz%24Ty8(QWe7hG7N-9i>aMg7#s{$0H0qPnG%>k$J){aN`(o znBk_+*mlbhY23Tg(+}4}MTsYI?Tik;x!aBKbC$}Fr?S`k{Wg7y3BtMY?AMFPbi*~r z2?jg6+gznVTUY9vZhPm2Ts&faXYKG`1Fw4r9uH5A=9n~psUrGy6Zd?)iF@=BqjW9p zF{DndbC|^Ld*F?)2)ti#^h>kAq&heqJt*y`)BED6=@JKTAPc-sWC``PF22qE8Kf zR~&4$b0-(9%6hL?xMEEXWZbm^x*y!ih(=i~UvuBY+;0R!l?UZVmQkr^;{m3-89rgx zePS;hxC5nOnwVe3OhQ<^nh)5{pn!HHRl3@!Dp2XJvR@y4);3u!4co2N?$bRoIp+R& zqA3MiKC3HOUfhn#d&IE!R42Y?-i^(+xyO6+tYSVge7|*SxHVHUwoT>~w?&^>w9Q=Y zJUoh!U+9tm=Fg6x!{?jM^OlbyXDnv>+X5S58odcJKyvOJHa&_{G3GJ-PJ0s z=F-K&APy_nvA;3(t)0*6*;rIRf^2<|!^q)z9rG;vPsg1tp@Eo2 zfui4+S4nn$(WSV)J_MV5@0q|Bc%0j$Rz$p!tmX39XJ?CMFdspOq21)yVx&T~08}t8 zO!qT9fv>HZ^ij}zL)SXA_r8VyekLB9soPbTXxU#y93RPmE&RY`=XCBy_t5qa4$qs% z{0z?!3o3nbA9zLZ8&rFJo`PIg&|7b`x!Tclp!hxVwc+=Ki$Y#2`I^vT($%435-OGP zv&y7K5kDQMC7H|O%bB|`ON1-8>Gy*yG}#p6&ou!nikv>e zKuGy4DvZau4+dJcsEE~*+y?JGwCFluV}{xhoMAYUMiLPbO+#}%XzUc_*GsjLcf!O6 zl_%$z={c}H={$Wr%b~#z3S;cp79KX-KKFa^87e!oFxM5!*f)xJzB4qPPxgFXZ;|C# zwvG1JxWn`M1F9FeVyK2$goS#H&0w_a$TjDoGazFex%0SuA2+rIKMGTNT;V`70I8tf zi1h%-fjb7{({dB0hFo}lhl!qTdp^^oC*8oS0~R_(uh_`Lw3xw%_ycEFi~6CoU-|wp zf1kB}<-(^5hB}gM8WS&j1dvoIFfW3fkpYjkJDf|%e!ej@7u~9(-V^R!pa$}{y zO0TN&eD$_hsM8_?C~eEvnp#(x^zAPh#?@zNnqDp(5b7Ho+y!*qcg6B*X9?v19y14L zKGo2hT9PD+16p4r%+e zw+w5)zMC@s6_o|Q{g(^KH6yVLf@w0uuX1PN#sp==_iu6N=ej&+tC(6Kz{PZvz5|FT z5cA8;+W4igh1SaMPC}w{i@Kp)K%aqTj^_4x?yb`4{&vLWqhBDI?JuTnx*ye5^8Lnt zQroFs27)a%2@Ml8_oM)YF5-tG#9vIof~hx8k3()!u_5BKW0IedL;y+)Tl{!e6jw#j z6#g5k@N(}&kgpjv&B(g(ZqkS;DAl+g$X62wNK_~cBIYPb>z@}Z7`NIyejw=R2^<+T zW0+v>tbu#>C5U`I$A0ovMMDyZS_s+s_odCa_ulI!*pvu*&`xKE0ylot{)EOK)Q9^Y zy230l57rPNfpB`y8O!0<+N!8()fp`X0)q;SM~xi69&bU-H`N|w7|0%>bhnv4l~2E@ zm&6~`@E-7m{g8wpYYd2iRHUsWQ0z>+{fNG~?7SdGfqRT>@O97C5hRTg1<_VgiZbbpj+YD~sma%mvL-#vG zSi&tBMYiY2$L)+5J5*;Fz&$UHtbu&m{D77t60nk|_9N8wNAu2B9 z#h?F!Vgmc%QK7Ymg32J_ZTt>$@;;uC1d{T?BV2G&SQemsAw(P|sBj8fTxSuz*Qp~m zfVf4s@60ib_5Xu(gKFOEZhVbk%}?noD^`l&w*(3CDpDDX$7g-=Y(1B%n@XGp-`8UklQjNIU3Dx z|6MNnuR42|OUE4etM5$E_jKo4N1*Jz0E&1bAE7fovvz202g8MTO*J2Z{aB$uUt6Lr z5rOm+|FPaa9UM85gUO8jduky1bqFH@HC*85z#~Rgq)AJF+S1G$eeVUb z#<%9#^*e)>|7%UsZThWUE&%Ol#WKj#<;RO;x0dBjSe7MFv<*v-gMr+*xET04v|a^2$_2mO$myH;4N!Ly^w>SsaLvvO{|J`nu}Ny z^5MyMXfKl{;*s*&z09J~?@E0|YO@X<^_xGB{;v@U6vDsxgp>ET*HYd3+KZ;>*E8u8j!Pz1*#o9hbn0DN_Z=GFFIF(|Q}q3v~e9QreS zqD;cXsWQ(hd8U8w3{^V4f2!>uXMR6uS>u2?lupDr-|&RQ(+nRHBiecUkubEJDUA97 zW!S<7-t z#5+c(AVW9zT8xAX%a9bPfJ!B8wviL6OnHKVYlD$Bog)vD-~GGl{x4v4KJ|0BdFwIT zx>FMNn;`48Ko_$Hs%=zoGe|a2;1s%Dc3)u>Hy(OK^q$W2IERfzwX56^7-p4Gd$vUj zEj`PtIFoy<=eBQj3bOx^ApReN@9+`88Lh1OV!8SEC&1+q?G{dXy3QUW!-J@2sH)0S+J`T7ib+^=6{(E&NW61v>IR8-1vC z^6=$pjdB1`b@)RJdFq_#x<7;Jk5B39Z#NOlI2G6@9!W4*wkez5B= z84o&>nYyPt4;C#FnG=Cmlq3gaExEBF929kp1CP&bpb{5}%=4Q=1y-or z)Djx=t=h>{b)f9kogl`Z3e-n$7m9odiqY*k=8fLg-vMby3%o$*CeYAmsBF13Xd?Bu z5b^(can|O>1H^MXgV!JhvE&H6ZH$POUWF<4Lm}-tI^&Xfa8l<{4JFTahC1l@?`7D_i|nqQ zTrgj{Qm*il$nRioM9r74%{U^YGO7{J7zjZ1@5&>HtX9rKpIHaX30JuFIl&D~zMx&073op*mecC~CeMFDR*^m1$w-C9{w~`w4$T-1{o1ErbH{OPjgspC1zZ=2 zsJEIA|Kl>X2Oc>PWBZ^{+8I0;Otbr`ulzB$gAAxvI2X=LSe)z-Kt3dw7NmtcZ*GwP zdDXdF)*6*Bk(ssN^>+vsns%Nz4s3HuoUd-B67@P4>o|W>0427wb{UGe{~l;9@mb^k z*BA_xRI^wo!Z@`0pdwTl>Q!e*o+)6>`5X{Iy}3=QhMX6RPBeHlwC^aaA zT(-q>?Y*yLD4NWgC!Tl;KbmJ9N4Pav-6DT6%qE{r;9M`3$%otbtw>t_n@I z2)iAcb*8@eT$QCk0|b|Pskm9c5v%gw#S?eGRh7KPA6w_u;GLiBoJNW)Mr~{V zYqRI}P8qE(6%Ne~mvEn&SV!vviD*Q;r# zVJW&2Ve8Cqc7yzaSPAMgXsC)Ghhq5Ff9-}cA7J6LCc7cD=cE8-{b{-cxPrp}+JhB7 zh$Dj|S)6s9o8(*I!{0JMwcTSl0-&jmytUkvw6APYAE1D6ZEgaO*sxg&4sQHE&+=v?Tt{8Z|0qfscbTGln;0M%)ZDoa)VU$~+$NV39NHkc03=-x-fxRrw z_g5{q2L)}7UPyC`(^d}D06{X`b;r^H%s8KYx97y%CU`w zl`9E6jXYS{kgbc6yV8k)RrKT4{yo&^((o9dz!peCXJg=Y;V>lRge$2^onI!tiZ`t{ z^dh}R$AREGjf01ud4nrY30!(A3G+toKc84aDpXcvbC8=B_xpDm$R(j09ZM1h{u4ZK zTBFa`;P8p78*5}W1e0EtYyrFEIgV+JYaYbuUPx~R^h)Vk88@5)FpG#Ml7Qv1#S`V- z_W-UD(Iz-xiNGcxqPz*fujT%>9dk}MU8Xt(^U?xqY$0~3EcsF&De~J6G8pYk#h1fM z#_GqxfT4=wfx&0j3^8npA4tP+wa4S3^_(r~WbKqt%h+lNg#s&DB4D~*cWF&kUlHYX zFbYZI?3Vg*@IO;6AyJh!x2_CuWax9R$3`L6cpO#^ht2A{OOL9FYgp0$+gwrIZs4l( zD}dB|9R{X8=jtQoiDd*g#%{xc3d_ygpI8t0=QEPWd-F_PzE4{YL z)p4-2M!{yOS*4hygdCO&|1vKBtAs+9W^gfwx4+D1KOtf7H{1g2OgsDbAkm{K`&gT953pJRa(|L$@U#c{teuLE|QgkK+ z!9w<9<;$pj203qOe}kR%GOCm(E^qDclV|O5KRg{j{TtJiY8i43(Bj%8zb6rCYl_E_ z4;10QL_{C4L;M%NS^5vlB&LS13H;#;1-UA81Q;N>ecnlRV*KyCt)FqaiEPSU4A&DM zD}nWRJT>2V<0S{na+v0yZ+jLs%I8u~Cu7W_- z42rbqDFJFQq~VjX#}NdP7R)@e39KD&TI1g+PV>PU9CFp|3^^D#O9|#LJedLg4gY>g z7*JlM+E~JI2v<@1FLAW)F@#Wo2jrGQJ(l8cuxSu|)#Ep?z0t@}iia{h8MKt*KA#v# zH&wKGTL39n zs80B=bUC@DA<(RI{+)mS`yp*z57xl%-;DMk96i*Z2)dLYI{+SpMfr^jsH1v&Vs{Uu zk_Bg2mdS8x16Mt`W2oo{l{F4ZTM$D-cAyU`m<4nw4;9UVZgd5xQ0+oU7xT4LpFB-u zl=6)&i6cBU^{5K>YrxYcPWL z;J-nRb1Ojjz4$v7Pm>^{o2s8TqM!vG^>r8)(_r{knVg(l<^u$Cz0KWS3~Z6WA4N!| z6>FwzRq_1|)adz4Ie>Ut07uYp6A7WQDEO2X#1PCJDBAi6kvEBDSZAQ95P%zpeXR=a zBAFHl;Wv<78U)(dFsR~D);*Y$NPUDKFLsc1OV@g5n(4)Qo}u#6>oamyS^{o9JNM6+ z{V|Ok*b^-&Y7-q`iS5hIsui5^IO$iU5Uj6lpRr&F?Uef zf}wnT_KZN)WU+Q}Jf&w1-?2Q_?~Azh=q(ESez+|>NSei&d6?5-^=Wjxj3+e4HiKp6 zIXVh0{-1KkYye5C?Rz?5LZ|UiS5ps$%L{)4e14GLjjeh8@L&x&<7Ah>zI~d?xd2SB z;yXh9tMVmXwQrBW8&r!7V$QW({)zn?({AHnWKl-_S*yU71?yejy3+WAH6zMg1htO= z=uTdQ_$(3ffGFiU-HR-wi4X*2wkk|M>YMPtf|DE0RqVA)2o?R7cMb|RX9%h(h%-gZ zq9y2f@|DJxI^bEr3f1%J_(@oOJET2%T0ovv( zm(!s7S4B+-$iw(=&+WBy67wkzI!eTE8-d9$SnoXbmLhexlaWws#I|KTOm@vUG5iIg zM?_ULBXhSN9F78CWvx~(wv!P+hmBx74uUzg=Y)tf6%944W=}J9_RCuL_9f#JU ztEl)bTpkQYiqQ+icTuAu*zL|hv(CHx<5VblKb$3B8$|;uO~%vL5Ad@U_$Fs~cxsOV zn19Uv4NMoe!vR*2XuYE{F9li}1bd;~K)!SD=aVE%7+yzo)f2f6>@3s4QLHh6VU7W7XE6QJVBZ{emN%Ld>{}H5F z@=}=(oI?aPpzAe+@ZcOB4HPU_p;)e7jYP2=EpnIX9`Sm#uwlGak&f8AfgJNhCZK(cG76!x6^dZGo8KDNDv4e>TG;@6-; zaPkDdFSW}Jz>TKcCIs@g5c>(v5Lt&urNN`wj6Bw;=h4hvkvhW4ABc&kS|MG>ATkX_ zv!p{>I$Ua>(Q-ru7Ap0H!Fd<56bVhR($t*rl-2eMSeaB~UBNgyqCSN@t<-%0A?4PL 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 literal 0 HcmV?d00001 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/accuracy_over_time.png b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/accuracy_over_time.png new file mode 100644 index 0000000000000000000000000000000000000000..a14ed1490002bdaa7ea74c69d04746bf886b5ec0 GIT binary patch literal 30410 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 NS3h~|+0hF({}&6wEy4f* literal 0 HcmV?d00001 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/confusion_matrix.png b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..e15b7ca66ff8b066b6e3bf8e80aad44cfdc91fae GIT binary patch literal 15129 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 Z_k`mEdQuJp(hh@Zsq3FF`Q!4f{{fk^^KJkD literal 0 HcmV?d00001 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/hourly_performance.png b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/hourly_performance.png new file mode 100644 index 0000000000000000000000000000000000000000..d2367f628eb2b4d5b6b847b54bc2ffa1e1216562 GIT binary patch literal 15401 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 literal 0 HcmV?d00001 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/predictions.csv b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/predictions.csv new file mode 100644 index 0000000..99f44ca --- /dev/null +++ b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/predictions.csv @@ -0,0 +1,99 @@ +vwap_direction_next_5min,confidence_score,expected_vwap_change,volatility_estimate,suggested_entry,suggested_stop_loss,suggested_take_profit,key_signals,reasoning,timestamp_prediction,actual_vwap_change,actual_price_change,actual_volume,actual_return,actual_movement,prediction_correct,hour,day_of_week +up,0.85,0.02,0.03,123.01,122.8,123.3,"['Consistent VWAP stability', 'Price recovery after dips', 'Volume spikes followed by stabilization', 'MA5 and MA20 alignment']","The current market window shows a consistent VWAP stability with no significant downward movement, despite recent price fluctuations. Historical similar contexts also indicate a pattern of VWAP stability followed by slight upward movements. The price has shown a recovery after recent dips, and the volume spikes suggest increased market activity, which often precedes a price correction or stabilization. The alignment of MA5 and MA20 indicates a potential for upward movement. Given these factors, a cautious upward movement in VWAP is expected with moderate confidence.",2025-01-31 14:30:00-05:00,-1.1105583570952815e-05,-0.00036670688996370826,3966618.2,-1.1105583570952815e-05,down,False,14,4 +down,0.85,-0.02,0.03,122.95,123.2,122.7,"['Consistent VWAP stability', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change trend']","The current market window shows a consistent pattern of VWAP stability despite price fluctuations, with the price consistently below both MA5 and MA20, indicating a bearish trend. Historical similar contexts also show a tendency for VWAP to remain stable or decline after such patterns. The recent high volume spikes followed by declines suggest a lack of sustained buying pressure, reinforcing the likelihood of a downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 14:35:00-05:00,-1.3211186807970954e-05,-0.0013505399265902884,4008056.0,-1.3211186807970954e-05,down,True,14,4 +down,0.85,-0.01,0.02,122.06,122.5,121.8,"['Consistent VWAP stability', 'Price below MA5 and MA20', 'Increasing volume with decreasing price', 'Recent VWAP movement downwards']","The current market window shows a consistent pattern of VWAP stability despite a downward price trend, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical similar contexts also show a tendency for VWAP to move downwards after such patterns. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 14:40:00-05:00,-1.6355316440536116e-05,-0.0020723591667192176,3979996.8,-1.6355316440536116e-05,down,True,14,4 +down,0.85,-0.01,0.02,121.76,122.0,121.5,"['Consistent downward price movement', 'VWAP stability', 'Increasing volume with price decline', 'MA5 below MA20 indicating bearish trend']","The current market window shows a consistent downward price movement with increasing volume, suggesting strong selling pressure. The VWAP has remained stable despite the price decline, indicating that the average price is not yet reflecting the recent bearish sentiment. The MA5 is below the MA20, reinforcing the bearish trend. Historical similar contexts also show a tendency for VWAP to continue declining after such patterns. Therefore, a short position is recommended with a high confidence score.",2025-01-31 14:45:00-05:00,-1.7417326629548535e-05,-0.0016428595591938544,3727302.6,-1.7417326629548535e-05,down,True,14,4 +down,0.85,-0.01,0.02,121.99,122.5,121.5,"['Consistent downward VWAP movement in the current window', 'Price below MA5 and MA20', 'Increasing volume with decreasing price', 'Historical context showing similar patterns leading to VWAP decline']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 14:50:00-05:00,-2.091489299663185e-05,-0.002395369174461204,3443378.4,-2.091489299663185e-05,down,True,14,4 +down,0.85,-0.01,0.02,121.67,122.0,121.5,"['Consistent downward VWAP movement in the current window', 'High volume with decreasing price', 'MA5 below MA20 indicating bearish trend', 'Historical context showing similar patterns leading to VWAP decline']","The current market window shows a consistent downward trend in VWAP with increasing volume, indicating strong selling pressure. The MA5 is below the MA20, reinforcing the bearish sentiment. Historical context windows with similar patterns also resulted in a VWAP decline. Given these factors, a further decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 14:55:00-05:00,-2.486659837508398e-05,-0.0014892089767824246,3764308.4,-2.486659837508398e-05,down,True,14,4 +down,0.85,-0.01,0.02,121.88,122.2,121.5,"['Consistent downward VWAP movement in the current window', 'Price below MA5 and MA20', 'Increasing volume with decreasing price', 'Historical context showing similar patterns leading to VWAP decline']","The current market window shows a consistent downward trend in VWAP with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:00:00-05:00,-3.436527654482324e-05,-0.0018026217797618704,4374939.0,-3.436527654482324e-05,down,True,15,4 +down,0.85,-0.01,0.02,121.1,121.5,120.8,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with price decline', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 15:05:00-05:00,-3.734786866232964e-05,-0.0016223424151536048,4319943.8,-3.734786866232964e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.98,121.5,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-31 15:10:00-05:00,-4.739785719892753e-05,-0.002232944670081144,4875779.2,-4.739785719892753e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.87,121.5,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:15:00-05:00,-5.6296059507715546e-05,-0.0024592079449161086,5438904.0,-5.6296059507715546e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.7,121.0,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing price', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decrease, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:20:00-05:00,-5.773196464137209e-05,-0.0002619766647307953,5975408.0,-5.773196464137209e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.38,120.7,120.1,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns leading to VWAP decline']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price continues to decline, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:25:00-05:00,-6.568851761662442e-05,-7.3850472906700215e-06,6071295.8,-6.568851761662442e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.1,120.5,119.8,"['Consistent downward VWAP movement', 'High volume spikes', 'Price below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:30:00-05:00,-7.323656447572047e-05,0.0007582907332427669,7441712.2,-7.323656447572047e-05,down,True,15,4 +down,0.85,-0.01,0.02,120.09,120.5,119.8,"['Consistent downward VWAP movement', 'High volume spikes', 'Price below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP with no significant upward corrections, similar to historical windows where VWAP continued to decline. The price is consistently below both MA5 and MA20, indicating bearish momentum. Volume spikes suggest strong selling pressure, reinforcing the likelihood of further VWAP decline. Given these factors, a short position is recommended with a high confidence score.",2025-01-31 15:35:00-05:00,-7.373007266053833e-05,0.002236663449870798,7803683.25,-7.373007266053833e-05,down,True,15,4 +down,0.85,-0.01,0.02,119.5,120.0,119.0,"['Consistent downward VWAP movement', 'High volume spikes', 'Price below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:40:00-05:00,-7.766438293643763e-05,8.40551292500269e-05,8379944.666666667,-7.766438293643763e-05,down,True,15,4 +down,0.85,-0.01,0.02,119.2,119.8,118.5,"['Consistent downward VWAP movement', 'High volume spikes', 'Price below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:45:00-05:00,-9.199469121468073e-05,-0.000664586920471999,8910146.0,-9.199469121468073e-05,down,True,15,4 +down,0.85,-0.01,0.02,119.98,120.5,119.5,"['Consistent downward VWAP movement', 'High volume spikes', 'Price below MA5 and MA20', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the last several intervals all indicating a decrease. This is supported by high volume spikes, suggesting strong selling pressure. The price is consistently below both the MA5 and MA20, reinforcing the bearish sentiment. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-31 15:50:00-05:00,,,10448123.0,,down,True,15,4 +down,0.85,-0.01,0.02,119.57,119.8,119.3,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price recoveries, the overall trend remains negative, supported by volume fluctuations that do not lead to significant price increases. Therefore, a short position is recommended with a high confidence score.",2025-01-30 12:40:00-05:00,-2.033845366850029e-05,0.0004390174834406624,2020659.0,-2.033845366850029e-05,down,True,12,3 +down,0.85,-0.01,0.02,119.66,119.8,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, the overall trend remains negative, supported by volume changes that do not lead to significant price recoveries. Therefore, a short position is recommended with a high confidence score.",2025-01-30 12:45:00-05:00,-1.9256507522241728e-05,-0.00017622634425992767,1893607.6,-1.9256507522241728e-05,down,True,12,3 +down,0.85,-0.01,0.02,119.81,120.1,119.5,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 below MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and moving averages (MA5 below MA20), indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price recoveries, the overall trend remains negative, supported by volume fluctuations that do not lead to significant price increases. Therefore, a short position is recommended with a high confidence score, expecting a slight further decline in VWAP.",2025-01-30 12:50:00-05:00,-1.8565567507483616e-05,-0.00048766468468477986,1814564.2,-1.8565567507483616e-05,down,True,12,3 +down,0.85,-0.01,0.02,120.02,120.5,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price recoveries, the overall trend remains negative, supported by volume fluctuations that do not lead to significant price increases. Therefore, a short position is recommended with a high confidence score.",2025-01-30 12:55:00-05:00,-1.7137754184742837e-05,-0.00012052560312877936,1795267.2,-1.7137754184742837e-05,down,True,12,3 +down,0.85,-0.01,0.02,120.0,120.5,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Decreasing volume trend', 'Historical pattern of similar VWAP movements']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been decreasing, suggesting a lack of strong buying interest to reverse the trend. Historical context windows with similar patterns also resulted in a continued downward VWAP movement. Therefore, the prediction is for a slight further decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:00:00-05:00,-2.0131370320114472e-05,-0.0011369023615181162,1772795.2,-2.0131370320114472e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.79,120.1,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, the overall trend remains negative, supported by volume changes that do not indicate a strong recovery. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-30 13:05:00-05:00,-2.1842133486382753e-05,-0.0005622726115864229,1828180.6,-2.1842133486382753e-05,down,True,13,3 +down,0.85,-0.01,0.02,120.02,120.5,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively high, yet the price is not recovering, suggesting selling pressure. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:10:00-05:00,-2.292063227046781e-05,-0.0003288530628820785,1904476.6,-2.292063227046781e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.93,120.1,119.7,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Decreasing volume trend', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been decreasing, suggesting a lack of strong buying interest to push prices higher. Historical context windows with similar patterns also resulted in a continued downward VWAP movement. Therefore, the prediction is for a slight further decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:15:00-05:00,-2.4882873714410225e-05,-0.00032685698720494316,2087009.0,-2.4882873714410225e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.77,120.1,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations with no significant upward price movement']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, there is no significant upward movement to suggest a reversal. The volume is relatively stable, with no spikes to indicate strong buying pressure. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:20:00-05:00,-2.2364121224471845e-05,0.00045997643683018397,2038585.8,-2.2364121224471845e-05,down,True,13,3 +down,0.85,-0.0,0.01,119.74,120.0,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, the overall trend remains negative, supported by volume changes that do not lead to significant price recoveries. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-30 13:25:00-05:00,-2.2828216342862806e-05,1.0593598970237705e-05,1996581.0,-2.2828216342862806e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.47,119.75,119.2,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Increasing volume with decreasing price', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:30:00-05:00,-2.4100198820403707e-05,0.001080830032221869,2186346.0,-2.4100198820403707e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.67,119.8,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, the overall trend remains negative, supported by volume changes that do not lead to significant price recoveries. Therefore, a short position is recommended with a high confidence score.",2025-01-30 13:35:00-05:00,-2.3087681893685374e-05,0.0019233395217684301,2471736.6,-2.3087681893685374e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.61,119.8,119.4,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price fluctuations, the overall trend remains negative, supported by volume changes that do not indicate a strong recovery. Therefore, a short position is recommended with a high confidence score.",2025-01-30 13:40:00-05:00,-2.3485480550117233e-05,0.0024986683684428135,2664183.2,-2.3485480550117233e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.58,119.75,119.4,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Increasing volume with decreasing price']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both the MA5 and MA20, indicating bearish momentum. The volume has been increasing while the price decreases, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-30 13:45:00-05:00,-2.1227856771582898e-05,0.003491376318579875,3109246.2,-2.1227856771582898e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.69,119.8,119.5,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'Increasing volume with decreasing price']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP, indicating bearish sentiment. The MA5 and MA20 are both trending downwards, reinforcing the bearish outlook. Additionally, the volume has been increasing while the price decreases, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:50:00-05:00,-1.803582256759695e-05,0.0022625874997778683,3310989.2,-1.803582256759695e-05,down,True,13,3 +down,0.85,-0.01,0.02,119.67,119.8,119.5,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'Increasing volume with decreasing price']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP, indicating bearish sentiment. The MA5 and MA20 are both trending downwards, reinforcing the bearish outlook. Additionally, the volume has been increasing while the price decreases, suggesting strong selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 13:55:00-05:00,-1.4707977744915501e-05,0.001735896568241857,3325258.6,-1.4707977744915501e-05,down,True,13,3 +down,0.85,-0.01,0.02,120.13,120.3,119.9,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'High volume spikes with no significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and both MA5 and MA20 trending downwards. Historical similar contexts also show a continuation of the downward VWAP movement. The volume spikes in the recent intervals suggest increased selling pressure without significant price recovery, indicating potential for further VWAP decline. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-30 14:00:00-05:00,-1.2376172661032747e-05,0.0011575109372735648,3303789.8,-1.2376172661032747e-05,down,True,14,3 +down,0.85,-0.01,0.02,120.5,120.7,120.3,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'High volume spikes followed by declines']","The current market window shows a consistent pattern of downward VWAP movement, with the price consistently below the VWAP. Historical similar contexts also indicate a continuation of the downward trend. The MA5 and MA20 are both trending downwards, reinforcing the bearish sentiment. Despite recent price increases, the overall volume trend is declining, suggesting a lack of strong buying pressure. Given these factors, a short position is recommended with a high confidence score.",2025-01-30 14:05:00-05:00,-1.1987511837202591e-05,-0.00018395798053358337,3252642.0,-1.1987511837202591e-05,down,True,14,3 +down,0.85,-0.01,0.02,120.89,121.1,120.5,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 below MA20', 'High volume with no significant price increase']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and moving averages (MA5 below MA20), indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite recent price increases, the high volume without a significant price increase suggests selling pressure. Therefore, a short position is recommended with a high confidence score.",2025-01-30 14:10:00-05:00,-1.039821664838847e-05,0.0008252444372939538,3038746.6,-1.039821664838847e-05,down,True,14,3 +down,0.85,-0.01,0.02,121.35,121.7,120.9,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'High volume with no significant price increase']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and both MA5 and MA20 trending downwards. Despite high volume, there has been no significant price increase, indicating a lack of buying pressure to push the price above the VWAP. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:15:00-05:00,-9.133096663754836e-06,0.0008860954876402094,3055990.0,-9.133096663754836e-06,down,True,14,3 +down,0.85,-0.01,0.02,121.22,121.5,120.9,"['Consistent downward VWAP movement', 'Price below VWAP', 'High volume with no significant price increase', 'MA5 below MA20 indicating bearish trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP, indicating bearish sentiment. Despite high volume, there has been no significant price increase, suggesting that the selling pressure is strong. The MA5 is below the MA20, reinforcing the bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:20:00-05:00,-6.385705105249606e-06,0.0016292766855798557,3316642.8,-6.385705105249606e-06,down,True,14,3 +down,0.85,-0.01,0.02,121.34,121.6,121.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with no significant price increase']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Despite high volume, the price has not increased significantly, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:25:00-05:00,-2.4136902281313155e-06,0.002321466483431789,3453906.0,-2.4136902281313155e-06,down,True,14,3 +down,0.85,-0.01,0.02,121.46,121.7,121.2,"['Consistent downward VWAP movement', 'Price above MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP despite the price being above both MA5 and MA20, indicating potential weakness. Historical similar contexts also show a continuation of the downward VWAP movement. The high volume suggests strong market activity, but the decreasing VWAP indicates a lack of upward momentum. Therefore, a short position is recommended with a high confidence score.",2025-01-30 14:30:00-05:00,-4.088709102956223e-07,0.0013553859573062765,3461728.6,-4.088709102956223e-07,down,True,14,3 +down,0.85,-0.01,0.02,121.26,121.5,121.0,"['Consistent downward VWAP movement', 'Price below VWAP', 'High volume with no significant price increase', 'MA5 below MA20 indicating bearish trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP, indicating bearish sentiment. The volume is relatively high, yet there is no significant price increase, suggesting selling pressure. The MA5 is below the MA20, reinforcing the bearish trend. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:35:00-05:00,2.972359205322128e-06,0.0019086123862724347,3621554.0,2.972359205322128e-06,down,True,14,3 +down,0.85,-0.01,0.02,121.62,121.8,121.4,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'High volume with no significant price increase']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and both MA5 and MA20 trending downwards. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively high, yet the price has not increased significantly, indicating selling pressure. Given these factors, a further slight decrease in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:40:00-05:00,3.8077213102560847e-06,0.00037551298994609184,3848711.8,3.8077213102560847e-06,up,False,14,3 +down,0.85,-0.01,0.02,121.77,122.0,121.5,"['Consistent downward VWAP movement', 'Price below VWAP', 'MA5 and MA20 trending downwards', 'High volume with no significant price increase']","The current market window shows a consistent downward trend in VWAP, with the price consistently below the VWAP and both MA5 and MA20 trending downwards. Despite high volume, there has been no significant price increase, indicating a lack of buying pressure to push the price above the VWAP. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-30 14:45:00-05:00,4.250030789965109e-06,0.0004208182623476886,3579942.4,4.250030789965109e-06,up,False,14,3 +up,0.85,0.01,0.02,122.25,121.9,122.6,"['Recent price increase', 'High volume', 'MA5 and MA20 trending upwards', 'Previous VWAP movement up']","The current market window shows a strong upward price movement with significant volume, indicating bullish momentum. The MA5 and MA20 are both trending upwards, reinforcing the likelihood of continued price increases. Historical similar contexts also show a pattern of VWAP moving up after such conditions. Given these factors, a VWAP increase is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected upward movement while managing risk.",2025-01-30 14:50:00-05:00,7.598956358378928e-06,0.0013694307322825727,3733361.2,7.598956358378928e-06,up,True,14,3 +down,0.85,-0.03,0.02,117.78,118.1,117.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes with price drops', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume spikes during price drops suggest strong selling pressure. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:30:00-05:00,-0.0004618761371477931,0.0004015786495789042,10871103.0,-0.0004618761371477931,down,True,15,0 +down,0.85,-0.03,0.02,118.01,118.5,117.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes with price drops', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume spikes during price drops suggest strong selling pressure. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-27 15:35:00-05:00,-0.0007724831291251733,0.0018360299301028449,21814109.6,-0.0007724831291251733,down,True,15,0 +down,0.85,-0.03,0.02,118.32,118.6,117.8,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes with price drops', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume spikes in the last few intervals, particularly with significant price drops, suggest strong selling pressure. Historical context windows with similar patterns also resulted in continued VWAP declines. Given these factors, a further decrease in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:40:00-05:00,-0.0008368222358340616,-0.0008603218702385174,23515413.4,-0.0008368222358340616,down,True,15,0 +down,0.85,-0.03,0.02,118.39,118.6,118.1,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes with price drops', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume spikes in the recent intervals suggest strong selling pressure, which is likely to continue. Historical context windows with similar patterns also resulted in further VWAP declines. Given these factors, a continued downward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:45:00-05:00,-0.0009102650864117601,-0.00226799673535355,25672110.6,-0.0009102650864117601,down,True,15,0 +down,0.85,-0.03,0.02,118.43,118.6,118.2,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Given these factors, a short position is recommended with a high confidence score.",2025-01-27 15:50:00-05:00,-0.0008127557967012589,-0.0004989342783458528,25826439.2,-0.0008127557967012589,down,True,15,0 +down,0.85,-0.03,0.02,118.29,118.5,118.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with negative price change', 'Historical context showing similar patterns']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the price change is negative, suggesting selling pressure. Historical context windows with similar patterns also resulted in a downward VWAP movement. Given these factors, a further decline in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-27 15:55:00-05:00,-0.000494788303688487,-0.0018219057098250446,23609766.4,-0.000494788303688487,down,True,15,0 +down,0.85,-0.03,0.02,118.51,118.7,118.3,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes with no significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent volume spikes suggest increased selling pressure without significant price recovery, reinforcing the likelihood of further VWAP decline. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected downward movement while managing risk.",2025-01-28 09:30:00-05:00,-0.00039480135114244863,0.003651531564469207,13482136.4,-0.00039480135114244863,down,True,9,1 +down,0.85,-0.05,0.02,119.26,119.5,119.0,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is significantly high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 09:35:00-05:00,-0.00023200292226610575,0.006230373535265343,12494869.2,-0.00023200292226610575,down,True,9,1 +down,0.85,-0.05,0.02,118.01,118.5,117.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score, targeting a further decline in VWAP.",2025-01-28 09:40:00-05:00,-0.00019187633714637387,0.0015008123481742297,10822143.2,-0.00019187633714637387,down,True,9,1 +down,0.85,-0.05,0.02,117.21,117.5,116.9,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains negative. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-28 09:45:00-05:00,-0.0001437782126185172,0.00347966081092671,9867403.2,-0.0001437782126185172,down,True,9,1 +down,0.85,-0.05,0.02,118.26,118.5,117.9,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains negative. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-28 09:50:00-05:00,-0.00012262289733838694,0.0006371805350520177,9315425.4,-0.00012262289733838694,down,True,9,1 +down,0.85,-0.03,0.02,118.38,118.6,118.1,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change in recent intervals']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score.",2025-01-28 09:55:00-05:00,-9.785384420635257e-05,0.0017212457828289507,8547930.4,-9.785384420635257e-05,down,True,9,1 +down,0.85,-0.03,0.02,119.73,120.0,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change in recent intervals']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score.",2025-01-28 10:00:00-05:00,-3.440849661978662e-05,0.005870285938423814,8017353.0,-3.440849661978662e-05,down,True,10,1 +down,0.85,-0.02,0.03,120.15,120.5,119.8,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change trend']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a pattern of continued VWAP decline. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains negative. Therefore, a short position is recommended with a high confidence score, targeting a modest VWAP decline.",2025-01-28 10:05:00-05:00,-1.65272862838739e-05,0.002102751080511056,7541500.0,-1.65272862838739e-05,down,True,10,1 +down,0.85,-0.02,0.03,118.96,119.5,118.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change in recent intervals']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest a lack of sustained buying pressure, reinforcing the likelihood of further VWAP decline. Given these factors, a short position is recommended with a high confidence score.",2025-01-28 10:10:00-05:00,4.171684318265978e-06,0.002722155113915603,7181643.2,4.171684318265978e-06,down,True,10,1 +down,0.85,-0.02,0.03,120.02,120.5,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change in recent intervals']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score.",2025-01-28 10:15:00-05:00,1.8478228034357613e-06,-0.0006885408822614181,6745212.4,1.8478228034357613e-06,down,True,10,1 +down,0.85,-0.02,0.03,120.03,120.5,119.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume spikes followed by declines', 'Negative price change in recent intervals']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The recent high volume spikes followed by declines suggest potential volatility, but the overall trend remains bearish. Therefore, a short position is recommended with a high confidence score.",2025-01-28 10:20:00-05:00,-1.9979873125353098e-05,-0.003212260343269935,6384070.4,-1.9979873125353098e-05,up,False,10,1 +down,0.85,-0.01,0.02,120.97,121.5,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a slight further decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:25:00-05:00,-3.9799378790228435e-05,-0.003086531307006035,5999035.6,-3.9799378790228435e-05,down,True,10,1 +up,0.75,0.01,0.02,121.77,121.5,122.0,"['Recent price increase', 'Stable VWAP', 'Volume increase', 'MA5 crossing above MA20']","The current market window shows a recent price increase with a stable VWAP, indicating potential upward momentum. The volume has increased significantly, suggesting strong buying interest. The MA5 is crossing above the MA20, a bullish signal. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Given these factors, a short-term upward movement in VWAP is expected with moderate confidence.",2025-01-28 10:30:00-05:00,-4.748488971872966e-05,-0.001290507738904767,5632995.6,-4.748488971872966e-05,up,True,10,1 +down,0.85,-0.01,0.02,121.03,121.5,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-28 10:35:00-05:00,-4.19792108145578e-05,0.0010321734695477869,5443540.6,-4.19792108145578e-05,down,True,10,1 +up,0.75,0.01,0.02,121.33,120.8,121.8,"['Recent price increase', 'Stable VWAP', 'Volume increase in the last interval', 'MA5 crossing above MA20']","The current market window shows a recent price increase with a stable VWAP, indicating potential upward momentum. The volume has increased in the last interval, suggesting strong buying interest. Additionally, the MA5 is crossing above the MA20, a bullish signal. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Therefore, a VWAP increase is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:40:00-05:00,-3.399299373943454e-05,0.0013143328130408582,5404037.4,-3.399299373943454e-05,down,False,10,1 +down,0.85,-0.01,0.02,120.63,121.0,120.3,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a slight further decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:45:00-05:00,-1.740282456016984e-05,0.002138816831984691,5314466.0,-1.740282456016984e-05,down,True,10,1 +down,0.85,-0.01,0.02,120.21,120.5,119.8,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. The volume is relatively high, yet the VWAP is not increasing, suggesting selling pressure. Therefore, a short position is recommended with a high confidence score.",2025-01-28 10:50:00-05:00,-1.3217775769458484e-05,0.0005941043180521244,4978547.4,-1.3217775769458484e-05,down,True,10,1 +down,0.85,-0.01,0.02,119.54,120.0,119.2,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Therefore, the prediction is for a continued slight decrease in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-28 10:55:00-05:00,-1.2194132814113967e-05,0.00019938277667330695,4672412.4,-1.2194132814113967e-05,down,True,10,1 +down,0.85,-0.01,0.02,120.69,121.0,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'High volume with decreasing VWAP']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. The volume is relatively high, yet the VWAP continues to decline, suggesting selling pressure. Historical similar contexts also show a continuation of the downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-28 11:00:00-05:00,-1.2789046080902144e-05,-0.00013014020133123028,4656576.4,-1.2789046080902144e-05,down,True,11,1 +down,0.85,-0.01,0.02,121.12,121.5,120.8,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price recoveries, the overall trend remains negative, supported by volume fluctuations that do not lead to significant price increases. Therefore, a short position is recommended with a high confidence score.",2025-01-28 11:05:00-05:00,-3.9310565269901065e-06,0.001877499576857261,4532781.4,-3.9310565269901065e-06,down,True,11,1 +down,0.85,-0.01,0.02,120.83,121.2,120.5,"['Consistent downward VWAP movement', 'Price below MA5 and MA20', 'Volume fluctuations without significant price recovery']","The current market window shows a consistent downward trend in VWAP, with the price consistently below both MA5 and MA20, indicating bearish momentum. Historical similar contexts also show a continuation of the downward VWAP movement. Despite some price recoveries, the overall trend remains negative, supported by volume fluctuations that do not lead to significant price increases. Therefore, a short position is recommended with a high confidence score.",2025-01-28 11:10:00-05:00,1.335565333682176e-05,0.0025192835865591456,5023880.6,1.335565333682176e-05,down,True,11,1 +down,0.85,-0.01,0.02,123.19,123.5,122.8,"['Consistent downward price movement', 'VWAP stability', 'High volume spikes with price drops', 'MA5 below MA20 indicating bearish trend']","The current market window shows a consistent downward price movement with the last several intervals all showing price declines, despite a stable VWAP. This is coupled with high volume spikes, particularly in the last interval, suggesting strong selling pressure. The MA5 is below the MA20, reinforcing the bearish trend. Historical similar contexts also show a tendency for VWAP to move down after such patterns. Given these factors, a short position is recommended with a high confidence score.",2025-01-29 10:50:00-05:00,3.945259424209535e-06,4.116385981856041e-06,4538481.0,3.945259424209535e-06,up,False,10,2 +up,0.75,0.01,0.02,123.19,122.5,123.8,"['Recent VWAP stability', 'Price recovery after a dip', 'Volume spikes in recent intervals', 'Historical pattern of VWAP increase after similar conditions']","The current market window shows a recent price recovery after a dip, with VWAP stability and volume spikes, indicating potential upward movement. Historical patterns with similar conditions suggest a likelihood of VWAP increase. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 10:55:00-05:00,6.138428835122944e-06,0.0010222187601988675,4391038.0,6.138428835122944e-06,up,True,10,2 +down,0.75,-0.01,0.02,122.68,123.0,122.5,"['Consistent VWAP stability', 'Price below MA5 and MA20', 'High volume spikes with price drops', 'Recent VWAP movement downwards']","The current market window shows a consistent pattern of VWAP stability with recent price drops, indicating a potential continuation of this trend. The price is below both MA5 and MA20, suggesting bearish momentum. Historical similar contexts also show a tendency for VWAP to move down after such patterns. The volume spikes during price drops further support the likelihood of a downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-29 11:00:00-05:00,9.487229346460957e-06,0.001170995062827307,4159313.2,9.487229346460957e-06,down,True,11,2 +up,0.75,0.01,0.02,122.77,122.5,123.0,"['Recent VWAP stability', 'Price recovery in the last interval', 'Volume increase in the last interval', 'Historical pattern of VWAP stability followed by slight increase']","The current market window shows a recent stability in VWAP with a slight upward movement, supported by a price recovery and an increase in volume. Historical patterns indicate that similar conditions often lead to a slight increase in VWAP. The confidence score is moderate due to the recent volatility, but the overall trend suggests a cautious upward movement. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:05:00-05:00,8.48755702204107e-06,-0.00012803019381044112,3885683.8,8.48755702204107e-06,up,True,11,2 +down,0.75,-0.01,0.02,122.4,123.0,122.0,"['Consistent downward price movement', 'VWAP stability', 'High volume spikes with price drops', 'MA5 below MA20 indicating bearish trend']","The current market window shows a consistent downward price movement with the VWAP remaining stable, suggesting a potential continuation of the bearish trend. Historical similar contexts also indicate a tendency for VWAP to decrease following such patterns. The high volume spikes during price drops further reinforce the bearish sentiment. The MA5 is below the MA20, indicating a bearish trend. Given these factors, a short position is recommended with a high confidence score.",2025-01-29 11:10:00-05:00,7.77233499663077e-06,-0.0002662448908378745,3665122.6,7.77233499663077e-06,up,False,11,2 +up,0.75,0.01,0.02,122.9,122.5,123.2,"['Consistent VWAP upward movement', 'Price stability around VWAP', 'Volume spikes followed by consolidation', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP, supported by a stable price around the VWAP level. Historical similar contexts also indicate a tendency for VWAP to continue its upward trajectory after such patterns. The recent volume spikes suggest increased market activity, but the subsequent consolidation indicates a potential for a short-term upward movement. The alignment of MA5 and MA20 further supports a bullish outlook. Given these factors, a cautious long position is recommended with a moderate confidence score.",2025-01-29 11:15:00-05:00,4.538649779756154e-06,-0.001034653511423289,3344988.4,4.538649779756154e-06,up,True,11,2 +up,0.75,0.01,0.02,122.68,122.4,123.0,"['Consistent VWAP stability', 'Price near MA5 and MA20', 'Volume spikes followed by stabilization', 'Historical pattern of VWAP stability after similar conditions']","The current market window shows a consistent VWAP stability with minor fluctuations, similar to historical windows where VWAP remained stable or slightly increased. The price is near both MA5 and MA20, indicating a potential for upward movement. Volume spikes followed by stabilization suggest a temporary increase in activity without significant price change, often leading to a consolidation phase. Given these factors and the historical context, a slight upward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:20:00-05:00,2.854331529827947e-06,-0.0005208297309227394,3194997.8,2.854331529827947e-06,up,True,11,2 +up,0.75,0.01,0.02,123.27,122.5,123.8,"['Consistent VWAP stability', 'Recent price recovery', 'Volume spikes followed by stabilization', 'Historical pattern of VWAP increase after similar conditions']","The current market window shows a stable VWAP with a slight upward trend, supported by a recent price recovery and volume spikes. Historical patterns indicate that similar conditions often lead to a slight VWAP increase. The confidence score is moderate due to the stability of VWAP and recent price movements. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected slight upward movement while managing risk.",2025-01-29 11:25:00-05:00,3.9327579637316035e-08,-0.0010680804690267331,3276943.2,3.9327579637316035e-08,up,True,11,2 +up,0.75,0.01,0.02,122.98,122.5,123.5,"['Consistent VWAP stability', 'Recent price recovery', 'Volume increase in the last interval', 'Historical pattern of VWAP stability followed by slight increase']","The current market window shows a consistent VWAP stability with a slight upward price recovery, supported by an increase in volume in the last interval. Historical patterns indicate that similar conditions often lead to a slight VWAP increase. The confidence score is moderate due to the stability in VWAP and recent price movements. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected slight upward movement while managing risk.",2025-01-29 11:30:00-05:00,-2.0769870230641363e-06,-0.0007688351289068807,3393461.6,-2.0769870230641363e-06,down,False,11,2 +up,0.75,0.01,0.02,122.86,122.5,123.2,"['Recent price stability around VWAP', 'Consistent VWAP movement', 'Volume spikes followed by stabilization', 'MA5 and MA20 alignment']","The current market window shows a pattern of price stability around the VWAP, with recent intervals maintaining a consistent VWAP movement. Historical similar contexts also indicate a tendency for VWAP to move slightly up after such patterns. The volume spikes followed by stabilization suggest a potential for a short-term upward movement. The alignment of MA5 and MA20 supports this prediction. Given these factors, a cautious upward trade is recommended with a moderate confidence score.",2025-01-29 11:35:00-05:00,-1.6163174401395697e-06,0.0001271652470341833,3262064.4,-1.6163174401395697e-06,up,True,11,2 +up,0.75,0.01,0.02,122.55,122.3,122.8,"['Recent price increase', 'Stable VWAP', 'Volume increase in recent intervals', 'MA5 and MA20 convergence']","The current market window shows a recent price increase with a stable VWAP, indicating potential upward movement. The volume has increased in recent intervals, suggesting stronger market interest. The MA5 and MA20 are converging, which often precedes a price movement. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Therefore, a cautious upward prediction is made with a moderate confidence score.",2025-01-29 11:40:00-05:00,1.17822743231355e-06,0.0008477747055353757,3709824.8,1.17822743231355e-06,up,True,11,2 +up,0.75,0.01,0.02,122.55,122.3,122.8,"['Consistent VWAP stability', 'Recent price increase', 'Volume decrease with price stability', 'Historical pattern of VWAP stability after similar conditions']","The current market window shows a stable VWAP with a slight upward price movement, supported by a decrease in volume, indicating a potential consolidation phase. Historical patterns with similar conditions suggest a tendency for VWAP to remain stable or slightly increase. The confidence score is moderate due to the lack of strong upward momentum, but the consistency in VWAP and price stability suggests a cautious bullish outlook. The suggested trade levels are set to capitalize on a potential slight upward movement while managing risk with a tight stop-loss.",2025-01-29 11:45:00-05:00,3.1980495527883512e-06,0.001065822519391274,3452764.4,3.1980495527883512e-06,down,False,11,2 +up,0.75,0.01,0.02,122.72,122.5,123.0,"['Consistent VWAP stability', 'Price near MA5 and MA20', 'Volume fluctuations with no significant spikes']","The current market window shows a stable VWAP with no significant upward or downward movement, similar to historical windows where VWAP remained stable before a slight upward movement. The price is hovering around the MA5 and MA20, indicating a potential for a small upward correction. Volume has been fluctuating but without significant spikes, suggesting no immediate volatility. Given these factors, a slight upward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 11:50:00-05:00,6.209433729253977e-06,0.0013519669230220854,3038042.6,6.209433729253977e-06,down,False,11,2 +up,0.75,0.01,0.02,122.34,122.1,122.6,"['Consistent VWAP stability', 'Recent price recovery', 'Volume increase in the last interval', 'Historical pattern of VWAP stability followed by slight increase']","The current market window shows a stable VWAP with a slight upward price recovery, supported by an increase in volume. Historical patterns with similar VWAP stability and price movements often resulted in a slight VWAP increase. The confidence score is moderate due to the consistency of VWAP movements in the historical context. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected slight upward movement while managing risk.",2025-01-29 11:55:00-05:00,6.290982537737744e-06,4.2192157903075955e-05,2815610.0,6.290982537737744e-06,up,True,11,2 +down,0.75,-0.01,0.02,122.17,122.8,121.9,"['Consistent VWAP stability', 'Price below MA5 and MA20', 'Recent downward price movement', 'Volume spikes with price drops']","The current market window shows a consistent VWAP stability with recent price movements below both MA5 and MA20, indicating a bearish trend. Historical similar contexts also show a pattern of VWAP stability followed by slight declines. The volume spikes during price drops suggest selling pressure, reinforcing the likelihood of a continued downward VWAP movement. Given these factors, a short position is recommended with a high confidence score.",2025-01-29 12:00:00-05:00,4.51640787790808e-06,-0.0002847589511212889,2816821.6,4.51640787790808e-06,up,False,12,2 +up,0.75,0.01,0.02,122.17,121.9,122.9,"['Recent price increase', 'Stable VWAP', 'Volume increase in the last interval', 'Historical pattern of VWAP stability followed by slight increase']","The current market window shows a recent price increase with a stable VWAP, indicating potential for a slight upward movement. The volume has increased in the last interval, suggesting growing market interest. Historical patterns show that similar conditions often lead to a stable VWAP followed by a slight increase. Given these factors, a cautious upward movement is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to manage risk while capitalizing on the expected movement.",2025-01-29 12:05:00-05:00,6.471107481698102e-06,0.0006300555126897145,2587996.8,6.471107481698102e-06,up,True,12,2 +up,0.75,0.01,0.02,123.14,122.8,123.5,"['Consistent VWAP stability', 'Recent price increase', 'Volume increase in the last interval', 'MA5 and MA20 alignment']","The current market window shows a consistent VWAP stability with a slight upward price movement, supported by an increase in volume. Historical similar contexts also indicate a tendency for VWAP to remain stable or slightly increase after such patterns. The alignment of MA5 and MA20 suggests a potential upward trend. Given these factors, a cautious upward VWAP movement is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:10:00-05:00,7.474825014563979e-06,0.0005494216529544349,2748415.0,7.474825014563979e-06,up,True,12,2 +up,0.75,0.01,0.02,122.86,122.5,123.2,"['Consistent VWAP stability', 'Recent price recovery', 'Volume increase in the last interval', 'MA5 and MA20 alignment']","The current market window shows a consistent VWAP stability with recent price recovery, indicating potential upward movement. The volume has increased in the last interval, suggesting stronger market participation. The alignment of MA5 and MA20 supports a bullish outlook. Historical similar contexts also show a tendency for VWAP to move up after such patterns. Therefore, a cautious long position is recommended with a reasonable confidence score.",2025-01-29 12:15:00-05:00,7.337070490776032e-06,4.1675221279458e-05,2779657.8,7.337070490776032e-06,up,True,12,2 +up,0.75,0.01,0.02,122.83,122.5,123.0,"['Consistent VWAP stability', 'Recent price increase', 'Volume increase in the last interval', 'MA5 and MA20 alignment']","The current market window shows a stable VWAP with a slight upward trend, supported by a recent price increase and a notable volume spike. Historical similar contexts also indicate a tendency for VWAP to remain stable or slightly increase after such patterns. The alignment of MA5 and MA20 suggests a bullish sentiment. Given these factors, a cautious upward movement in VWAP is expected with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:20:00-05:00,6.89177652929418e-06,0.0002074561845312184,2549590.2,6.89177652929418e-06,up,True,12,2 +up,0.85,0.01,0.02,122.84,122.7,123.0,"['Consistent VWAP stability', 'Recent price increase', 'Volume increase in the last interval', 'Historical pattern of VWAP stability followed by slight increase']","The current market window shows a consistent VWAP stability with a slight upward price movement and an increase in volume, suggesting potential for a minor VWAP increase. Historical context windows with similar patterns also resulted in slight VWAP increases. The confidence score is high due to the alignment of multiple signals indicating a likely upward movement. The suggested entry, stop-loss, and take-profit levels are set to capitalize on the expected minor upward movement while managing risk.",2025-01-29 12:25:00-05:00,5.301573401006454e-06,-0.00022216321703560915,2297604.4,5.301573401006454e-06,up,True,12,2 +up,0.75,0.01,0.02,123.0,122.8,123.2,"['Consistent VWAP stability', 'Recent price increase', 'Volume fluctuations', 'MA5 and MA20 alignment']","The current market window shows a consistent VWAP stability with recent price increases, indicating a potential upward movement. Historical similar contexts also show a tendency for VWAP to remain stable or slightly increase after such patterns. The alignment of MA5 and MA20 suggests a bullish trend, while volume fluctuations indicate active trading without significant selling pressure. These factors combined with the historical patterns suggest a high probability of a slight upward VWAP movement in the next interval.",2025-01-29 12:30:00-05:00,4.310572325083584e-06,-0.00027328275017138304,1983345.4,4.310572325083584e-06,up,True,12,2 +up,0.85,0.01,0.02,123.17,122.8,123.5,"['Consistent upward VWAP movement in recent intervals', 'Price stability around VWAP', 'Volume fluctuations with no significant downward trend', 'MA5 and MA20 alignment indicating potential upward movement']","The current market window shows a consistent upward movement in VWAP over the past several intervals, with the price stabilizing around the VWAP level. This is supported by the alignment of MA5 and MA20, which suggests a potential upward trend. Despite some fluctuations in volume, there is no significant downward pressure on price or VWAP. Historical similar contexts also show a tendency for VWAP to continue moving up after such patterns. Therefore, the prediction is for a continued slight upward movement in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:35:00-05:00,-3.290572549702331e-05,-0.00491944080988152,4003472.4,-3.290572549702331e-05,up,True,12,2 +up,0.85,0.01,0.02,123.1,122.8,123.4,"['Consistent upward VWAP movement', 'Price above MA5 and MA20', 'Increasing volume in recent intervals', 'Historical patterns showing similar VWAP increases']","The current market window shows a consistent upward movement in VWAP with the price consistently above both MA5 and MA20, indicating a bullish trend. The volume has been increasing in recent intervals, suggesting strong buying interest. Historical context windows with similar patterns also resulted in upward VWAP movements. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:40:00-05:00,-4.143688217975172e-05,-0.0023978043630817625,5163523.8,-4.143688217975172e-05,up,True,12,2 +up,0.85,0.01,0.02,122.86,122.7,123.0,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume increase in recent intervals', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP with the last several intervals maintaining a stable price around the VWAP. The volume has increased in recent intervals, suggesting stronger market participation. The alignment of MA5 and MA20 indicates a bullish trend. Historical similar contexts also show a tendency for VWAP to continue moving up. Given these factors, a further slight increase in VWAP is expected with moderate confidence.",2025-01-29 12:45:00-05:00,-4.870235351026042e-05,-0.002850244604934382,5824667.0,-4.870235351026042e-05,up,True,12,2 +up,0.85,0.01,0.02,123.1,122.8,123.4,"['Consistent upward VWAP movement in recent intervals', 'Price stability around 123.1', 'Volume increase in the last interval', 'MA5 and MA20 alignment indicating bullish trend']","The current market window shows a consistent upward movement in VWAP over the last several intervals, with the price stabilizing around 123.1. The volume has increased in the last interval, suggesting strong buying interest. The MA5 and MA20 are aligned, indicating a bullish trend. Historical similar contexts also show a tendency for VWAP to continue moving up. Given these factors, a further upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:50:00-05:00,-5.952015188198656e-05,-0.0042191476020916885,6396509.2,-5.952015188198656e-05,up,True,12,2 +up,0.85,0.01,0.02,123.06,122.8,123.3,"['Consistent upward VWAP movement in recent intervals', 'Price above MA5 and MA20', 'Volume stability with slight increases', 'Historical patterns showing VWAP stability or slight increase after similar setups']","The current market window shows a consistent upward movement in VWAP over the past several intervals, with the price consistently above both the MA5 and MA20, indicating a bullish trend. The volume has been stable with slight increases, suggesting healthy market activity. Historical context windows with similar setups have shown a tendency for VWAP to remain stable or increase slightly. Given these factors, a continued upward movement in VWAP is expected with moderate confidence. The suggested entry, stop-loss, and take-profit levels are set to capitalize on this expected movement while managing risk.",2025-01-29 12:55:00-05:00,-3.4766171462419226e-05,0.0010594028956515122,7155807.8,-3.4766171462419226e-05,down,False,12,2 +up,0.85,0.01,0.02,122.96,122.8,123.1,"['Consistent upward VWAP movement', 'Price stability around VWAP', 'Volume fluctuations with no significant spikes', 'MA5 and MA20 alignment']","The current market window shows a consistent upward movement in VWAP with no significant downward corrections, indicating a strong bullish trend. The price has been stable around the VWAP, suggesting a balance between buying and selling pressure. Volume fluctuations have not resulted in significant price changes, indicating a lack of volatility. The alignment of MA5 and MA20 supports the bullish sentiment. Historical similar contexts also show a continuation of the upward VWAP movement. Therefore, the prediction is for a slight upward movement in VWAP with moderate confidence. The suggested trade levels are set to capitalize on this expected movement while managing risk.",2025-01-29 13:00:00-05:00,-3.273330963471377e-05,-0.0006069654122190238,5468000.4,-3.273330963471377e-05,down,False,13,2 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/returns_distribution.png b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/returns_distribution.png new file mode 100644 index 0000000000000000000000000000000000000000..58550d27604854336ebaed5d54a875cfeb972aae GIT binary patch literal 20546 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

HyEt|{02#v9PYT`I6JR)>IL#?d`kRS zJYH8==d9t;MhY13v=^R3J)1@mAi@wCf_Cw!$>Bo}%l5pAVCO$A|>~7DgTE*?Iggq%9 z|C9q=i1$XK*D|11mn;_O=b^sL*0^L)euiVo08}QoWOIcC_o7Whz#;i~?}<70X$>lH zwDkgo1npTVeOZ!!!e3O#>2{gJ- zNBUa&d;mz68nU3XDmsc_kYfS!ek}&=pVfDQf$FsT9?(gfF8eyLu?e}fO=!z0*p)L{ zA@=o1-}N!|+=b^nQly7APDw^kdXdR@PugxSqcd6Rp-ncwz`^6sW}um_bW%I~(C=A& zyRd}r+M-NwyOu6HEBF)~D1oA=6`*yb`TpJmAJaD|*|#R^vJ#Lc7vG(B9+lKcH}L09 z==Rzbrcc4dZi6ma*tbE6-5KNUHmD!>aGt!IO+5N9Ha-3ca#;OiwEN$oiju+?*VqQa X%)SxqS5x2uY^utd7qfrA@#p^oW^PhS literal 0 HcmV?d00001 diff --git a/output/NVDA_2025-01-25_2025-02-02_20250204_042149/vwap_changes_comparison.png b/output/NVDA_2025-01-25_2025-02-02_20250204_042149/vwap_changes_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..2337bdb210ffc847a3f124bbe28782650d4209c1 GIT binary patch literal 43526 zcmbTedpOhK|35AzwF(ufgpP>NSz$;d-zov_8y`BAo9DSYmj2!)aJiYxr-EQs=bn^9c^Y%KW zbYAK7vHh<8{yu)H%F6KnY@p=r>!K|6tj`tfWV6rZ>wbKE!j8Ou>vA=7-1zwN{PcA$ zSOmYBpb7?CIFY|h%Zlu9ABA05CuXWu&(G$EWM<@c+X>uuG}F@Ux_k5EgKOLCbtg9E zK7qrZ+_Xx0D7NLAR>H2sZHAj(GplGlJ7r($ACi5|UbQ0~|MvQn%g=-$nck7tBSxDy z@UL4B&SCAx>1v**mEgbMwEKnrzKs;#)VuEQ`>AzNYX7#-*zfai>srALjDLTgkF1sa z_g-40;@|H3*YgMc`*Wz)|NYMQADAF=`nqrqH3XXGeE)hwef>KlAFATzh(mE|KhsRr zp~jPx@_4pa{r%ovTh6uKI}MUaTbHC{8gE38NM?3 zM0uuQ=cWz$Ueqc^QMO_7Z@ed$J(-lA?j>&PbD??|A2?a$+>}yDU*goP#s*Um@aVY2 z@lFh7h0A2JgNDAu9;u4A_MRJU4eXB+v~Ef{Q(#@{u5_iEP4<8fe@{F@zEl*#?s4Ir zu^&@EU0}l*1DhPNA}qi-PT79WxF(|Gfv>FaOrmbt-57_lVk`% zTx+6o=DWfq23K8V$tn4o6@0bG$)9AadGi1mL9?+ay&cHFsy12 zxx`JEk@Mxjm+#9Q8k236NP_r@&4~{uJA{8QPE+lHms5Y=UHovXfjmDwG&w&MU)~@c z@n(EgyVtK78rT;ya($9qI-4~10Xh9yyuha1i`{=unEdv_y@{-N4PP8e_sOnd{0g&X zmC>rXQpQ4?bd)ig@&ebKyY-7OLGS4u{AlE0FOo=H~Xa;e)*K zoIYe0QGt)I{%MCR6O8i9`(!ghizI!&9$<{rtS&PxYr@0C33Y7PdJdG-vV z4VNwRt{$A|)}8@&T~`x*q4elmJiO8JejaBl$LMal%F9A_7?%+jqcYgVNn^JsY+#SNM2 z|JapdB8?o&PVUv9?}r^efBt;n@7FF>-m$r`tMiizB~}lgF3n8}!20`wXkiOUbP1uo z>)qVkLK=TUIkxl`)IBPgBaDSPx!a`KN}mC3tIf(Wl7X+b^s=@|N3%X?397IP9<^{q z;ltBX4wb%6K?Z@ttcB~=i_TwrTrwtwHkG+|%9HWy`LsIB20&T)-n3cvP5)0~(!TK~ zOyE|{)um$AcxR(~CwjQf4A(GIac9UDDJbwZRzjsLVrfX4J(3ZzYtv)zn&m(Wc${{H z@4nl^4#g9WsKj9h6};D1Jg+9Pm{fs?WO2ZT1`a# z*@IO^ur7qml~?_2-EtH+%cmRDrxeHU#L~3v#2KR}U}E0qs4h?q$bkUvHi@(TiQO4t z?CX6)?^;I2ax#7*2?Pz+bHs_5GT3I;ua_oOBttOOZSlKc-WW(|P%tj$x^$^tYM2(rNkeWM4=8GoLROqrMftZ3yifHix+kpB4U6=!-4{03$_8aY zZ(^vxpzGU9SsQv+0o5o{1QcJahGxMaU!#tTeWP;eKpmv(qV4Ww1tw5y68Dl8#jF7^QP&L+;+L-7@j+BLc;QnXOrSY_8)mc3M8W_E4^ zo8%A?&aTTxP#%03?P_%c)B;pmx*#mvA&k|z&}FWb z!_D_r&gHjnrh&>gA^$-PGIpoUSHRXj5m#no4Izourv;MTu(6FEIO1>q!_glg!v+^G zQ z1Kq!yQmM09q{KR7=$9iQN)QQ!0Ro@#`bfaCfy>2+}%HXine9H((V1 z2;1V+UmI2C)-FRzzce)0ZlW2W=&3z+qC<7BFl0=$--C-um+N4i`mw z!M{q~V+DC~=7E2$-pkYDl`XT`AFl3$Iv`?^TuV`C&Em!=`zPsQ3YHZVPBn3-0ZzCS zC4Uquh=?6K(YpJp+J5L+6sk}tWmICXwH59H>k;YWndouE6@MBO62ej+56JO$l)DnI zBN#cCVqv(CRY2O^x^BBb0|HKm*5g;*g)>{MX#`giHcibmvxRv2bRf%ijA$zOi*QfK zos{jvZZlL45Uf7U2q=`9TP{B4zdDzmOG;rcJd#cK;g|_36GkkWbA+_UO4WRST^5(2 zvvBwLj-Z+aiCrv2=QS(7g7v1VBtP_|{Hv~yPDH_@y+W*|*=Bs$v{3gLLbWjG1Bz6} z)+4Dc&$Uydq{3uGIo;zYI_S2z_0gkyB@mvhH}uF<&Uu>@E|wDreSnZ|QE{1@+zdBo zCL<&tNS$l{xQEE3hwRe`4bIC@;p5w340_Ysr|F?H`e)LG2(v%cqDnnT8^b~Stp#;e zJlCNn{4GEgQM8CvY5}R-+o8M8*!ezghwC?LK;NPVg{lnx*u z(#t`qW@(0>vWe(@#=YZVa81dT_@IhZ@9N6hTZ9057eAdf+Iola;3eYq#M5SaYWaXI=Vzd1W9*dgEC*Sv1$SvdBhnm!kDA zB|N~EGw>l$6SwUHRXn7|BwhXdvy_x^d*SB{?%?Mq)N9wP{N4JW>q%{Xmy;v7SH){z zcaf7JiZk~1o)Dx1Yo}&<74gR329&OEHf6UO;TI$huAh6C>60ZO>nAenrdkEV|7~L8_T?D_P+v&Bg-Z2#*O7mMU6^+jWvto z3LI{cQ)4e(af!uhQlV9l%tw8h3u&j_u0~O|NXr70=|=}}>I{t=`9&LG%=Ho~UjB_d zcw62FfNUC*b!VO(Im|E&o6T&jdJ3U`25BXy^KdsG;QTHf7IRv4C| z7UUI0g6lK!U*Kt~0sQL)g?^Mbbz-dWoVQcMnImO(_`qll0Pqj*wEhkz0WH_pEHS7l zRV64f5Itoca61@=K}%fBYr87uJ07zHD(J5?i^N=baDgJgj*?bKu=W&`qCS=|^Zh2r zNGt^Xrn3qqmbs&^@9>Mq-Fmpvht|%ykhUzyH5d$ivpb9XcGvOe)*+&LaDIzD5@ag} zO^ltsE1nN#HLj6cr)H}!RorHZT;B|CMei-lcT?DlaZX#?t?b7=EoCR&Kfi^T;L@Jz zbxxrzIf!CpXBm2hJcW3uWOfPfRY0G%jOJ)? zCx*~?c`MHeKI%GhW7K}TsJ!U zxt^kIJ>`A%kr^;3x<89MOnA|=)z_ytuD79hPMml`IaCN~Yc~Uuf0Pb-y5HOd*}scF01+ z(j^2Ioga`Eb?9RfGAL#%BJBQ8Z_^!%?{!913<(@vqVR+8Q#$lKVw^oU+;qz!CQEMb zt-T&790xGhs*!VZsS@tPJ65VqUvT8ZiZ3_Et61rb2DhGTRXL+k6X)m7aNLXO+njB6E?@svJ~9*FlJ zyV@TBj%N+Jealrq_2(}yH+QyQi;A_DkQ?2!%}OUZnms2L4S~QqU!L6&y~{qs+H6YH z0A+9|Duq;ZsDv5lW>K$!h>x$c7WnLbAWO^Wz#Hv^mRdXb1<{*F)nSF1ffDWxnOz$` zn?<+^5XoiM#~+f{$xXl{M2$qopw8pP`C9J@N55JYY6dZENmct3q=KT0vQb^fAo>2a zE^Y7hm3DXDLN{0qSjt6Tb)Od5i?k~xl78Ni@s2?h= zZ~eGcAQl2WBW2L`K#v}?G3E#g9wWW4m2Ns2qn(#rE+YmT-M8139Lv`QfVAmU~^#zq}Kg z&oz3E_@MAsIE)y>Fb7q_J_hAysDn_33(;Q8(pSLtQF+3@*mU zSLdO=onq}y)CoS4FMIk~`?}q%$}SHh=n_kn#1icf5kwo{jcOVa?F}Jyori324q;hZ zJ7MGdqmrTp>jwlK>SS+h%htLY*23z=B-aR?jK0dJh_Nh?_pwtn&&6`iME@Re%$1M& zB&)3G{&aM@_U@0ax&2>OnmPRG`b{Ls|mmDdWq|E zk1%ucvxV?;xp(Z^s9_b3rkVC&H6m@`LRU8CLKl?h~{ zp4lm0^B1|0_z|(R#X|zc#Wd(Nf6$(6`F2aJ0&~{_t}L34X(MNy)rHVbZ+Dvi^$=2U z`eUA#L%hfJW!ma;Mrya^y2|uhHF96OJYcxkmXVWJ6;LmxzG%6Y*2sol*KbJFD^T-q zqua(~(oJA{J$zd;g)Bxx9_!q?5Kn(`#IQF!_lW*En7G3H>O^rf#CDfzUjAME(!ot) zh-W{L4x6?Ovw}wh2931x8ZHhLc1@$-F25bop}Dufqot-gRQ3`YiL-#*lS*H2-o|0| znRZb)WjhzEb2*Ao6t2d##UA_ZQpU`tMfO8%*5)c!?}Kpj zZ^&bFD;7x&TDPvjpZW92&y`B9tk|@18DaM0H?HY(44ZGw()^ATuIm?`Ma>`J$dqH2;1(;pKa7$$JpcYW~OMp z`3cs1v}J|D*3Na$@XTs8TGb%bl4R>=6xCpk+Y>z%4f9S;D$A1^g`{>OWZxjP^i+?V zzquU03M7X^eV6oewQUPh-(Pt>c-JO=@jj-U%Xq3FkTwAOZr>uA*J&sRTN>B0nMYLF z#VSxuSTEu`+&^V~cfB362A_Hby;+`e(jaTGHZAg5FEJZZG!=tOJ% zb9YD7el57Bs5Qpj^g=ffCPwQn!CuRYb|G@o5$G*37P0y4EuX^@?GBV_ABGjn=eFzI zgP6ev@*Zi!zA3tkA56Join@1qYnWmUn7RpfwFG3)CoR8@v#i;pY?vA5`wdp373;Zjh zW4wyr4H>}d+#6A09Z~xvZCgBaP;b9nGb@pX%!$o=aMQORx>Vr}8x6>5F%!(vjy67v zTxOB*%dPa4#|l^<&OkbnapzX?;g?B>x$f~Zs1NT*DPHDbqr~qwsO1#z8fw_R3ySU? zFLZ{kliH)u7w&DW$$(~Id?{7-7N{dxp^ z;%EJ5)LeBg_ucx&O9+~#BMnqY4cK0m?R10@6lk7Ie zdjBEko;M_uH5mhxXMBsd>1b*GJ-NkQUjX}?=tD9U3*&_9M)#-N8>WcB1a&&YFX4oZ zo)&z|H$3?uz{j%S_S~DXDujupS~j(k2?Qlv7q_Obe9j&_;q`@jytb;^y8>Gt+v2=w)lqxTxQikdetmnnUQjyJXN|@JPAQ=3 zKPpo3JH>-v!3z7s#)X8ni)zi%6HGY^AMa9QR1EPy*`)}XC?(l@anm`p2-@V!pBKYs zzR5=IG*NGbJ8;{8rd-RbT1w5|zHQzrarRhCq2nhl1B1tuOCgiD%mDda&*Ks05r9RD zS1j?U;6A?}C!!Wvbiuav_Vqw)7P18zO%%`+MXQ>)416=33AmJ^e;Sx8-wS3lR+nU% z(-kA>NPd7Tw!O>Fu51_v0;A9|+lu2%Rn4WTdlYf1m7U6*M)fkA62+dR;ORUi<#@n& zM=b#Cw*7a&{;jBfW~J_(wcwUZ?p6!*?B}TvbVa+W)8522CTw89#f@B`gaA$Fi7f{R z4MB7}pN|3pN_b#rP@RB2-e~i_L95Y=F#SclywbDhWckmjflpLsUzh_v5PlGdZOLKqc(EgLekiDYq)qIBD+soHk9F^#!69{>WL0_L8z-pI+8)@0@W5_hMUx2YQwqy7-Gl^<-asD8eC>>qZi+>PkEIX-fHV;}6suyLIm@l40a2=& zc?h8PxHYda5_dWTBh%h_|EYUc=C?g(4q)mkrylK#di?%T;2F0GP!p&+sFd9nAB$yl zjQqca($?|i%FX=`_ws+f|DR5#6vHebHPr)@juKEyDpx{y7Y%+QN6iG;MyY47gU6MB zHM@<3*;%3Yyp9coQ9UFO+W!0;0K%FI&#)*c+0>hLIdO6ZOduQJM+VU!ZjM}{?Y)i< zEI8xY{cL)}eB=p%`55r}M<2fePw<8%X)KE?OhDg6MZ%N zF$`;4*;^*fiQ)o}%-hN?AaToAK*(?MM5zG|n5+e$C-=N48mq$` zzBo4)xHy)>(~P`;1sp{8>?!&jr#ddDHuA>L6R6JHy@Teb2H0ODyep=v!SQ*9uG;L6 zQ*ib~&v1Cg-!rS=kBU?{W(S0;Q%H_x9xw-sab^z>jS8^1n31gy|cD1e2P=Hql4VcVq*#HMkC8G}dOR^@rP2cv=N zpcRz@4ODbb1%~z17-eEV`dpdMDeF#sF#po0SKuFb{k-=2xasUk@H}$1Q0Sc)@k#1O zFH^7FvLg?TU>M5)CK5uGIPGfsmU!hlO?XJvXB7xBy{V?bH2-Dn{>Ecc%=!8q5t=F#F zAGN4xP>NNKJ>^t6AgI?NBy9I~!6X~Xm*2&X$Dd@kJz3<#@fDfuN%+he*JJ#h(ly;z3k zyNrF$dF~qG)}`zz;qH=UZ;gU6KEq|9P-o*e(Z!RX zL1~lXb;|Ry_M<4*3Bex}9jXZyl)tGA(-WeFNzPIYI@7#5%*75mCe&02_3A2GONGsu zA;H|31kI+L*QJ2(d~=!02}0d4Ecc*2!0DL0G!M9pDKh zELI_z#ByNZ{*))L0tS4&IURb)o;}?ljjvs#<7&!)5k|HPq9!tDc=*!}dqb@QBsN@l zEw|bUikS0>Zvxm3(ra83zC0t3gSip_Vd^d@@3Zz)Ugg!CpMXE9)Vw33CIEXo>(j5r z3pX5cfr-ArGr;zICTY^e7a7db$HQd_X5dx%w`+?NaVP0U8p%M7wL_>w; zNoC^P)#$#pM##svze^nuu(O`s$GO0<^8|^EUBVW&7^U4ct1HN;MxN)Q_UqZjeBc2n z=?DvV!Jc74_FhcJh_4btW+(3NH2!My{*CX?H|Mca9Dv*&R!BpZ6P>^=D8mKE(3VeMZZpDC^-6VF{Bu%wbY%2|f1@H^5`}5WZwLY2SS)0oF3$r6O$x3!J zO6^;g^K#O^msiKl=epa`m90y@0<;9{cYU#_7@aZ4&lz=Xt$(!B?hHYGT&yhly|DV9 z=lRSP#kW`JGFZ5_)_Ru6oN8KFDkt{6v` zp)3S&?!oc$Urf}eb;_a9O~Cuh4_jFnInw7X*5y9aKegPs{QAVL2U~s(^FkUu#V#YT zG>^MBuvZSq$AlQNevSShTk?5rt-&EYJ;Q@jp3Wd@st7dzK!10H>=zT=If>7LT zP$9AO2Sr8&Spha>o?}I3Vse@@Uk@#GStScep3Ai-Rw)=*YK$*{o?8&a?882+1Yn7= z5CVYdjGaR~CoQPY4OlOaK)$5Wy2N$hamvLe;Bi8&5MBW`^8Q`3xd+|iXSxB;=%L1W znb7#b`Dz|BJFN3ByL1?>r6tzhdVZ|TaEP|LQeFzDbOA&8Rs@$qvprG{xen!7Ok29e zb|~a_?R&&aOyI8w6oCGio(7vrxB^f<>wuEr_s=2wHhr0j+ zh)jiHfUg9C+lQx#y;Zo+v98Od{s5?Ar0Pbl$hE{t`%XN+JM(R1SzfJO{39vp(kEsk zv4a*E%ci2@VldshY`iPqE~a>39|ea1TV!TA94KQIXDRNu0xqV%H;enO!LT_dT^vTn zG{vE3E{-ii+Dd;qCENWLf&_nD{t_!e4FCkHUnsCQkOF6D>BzC3TXoh{J#y9T$h!^v zp+Jx-x|Vr4mJL!JYd>Tm$gv&#>oMDMn_)<#`a&4QJS`0 zVEzcI!Ja$LN+YR=_(y7Wjv|BzBNs%IfQ{IQ_0{la7)H-P$hwYIWG{OEU7^C<*dV~~ zQoYS7y%DR+@XwFMuo;9ARE(6bBVK+Osw$V2q&|KgcTape4)S;U^EtgY7%|aYK8@RJ z3+qUUF#A}fSD*_>#BVMfV_^Le%YP?&XwRNKSa&soHeL>b?R5W4$E^S#yb=-!ydK$- zc>GVIkG*4AxD{qM3?H+RL4Gf_1u6qBslct{`w@aH-nu}p(2^o%CtK1KklSLg^ukma z5ib*w_~XZwAZ)`p;E_4N&iyHw+oF*x9XdZGUbQWnuG-QMzt|iB02#F!N$^$9&=^x7Dyy-h^^$eY)%-30T9Td`r0|AmCqBECUY{s&<*_fi2_eNEYNrAxy7`ks1lJ8p{s}McKTlYx>X~gGaY#zK)GxIE_fZK& zBb#Jb(-sY<@1mq3?z@-9--CKU=!YS*SyDZ?5EE&M5jA4(d34uVpcQrc^%%(I*^M#; zKBHdxJVt+(4xe`<&FJuKbZW{&b7H;Ndkpk3BOZ}}EZ?*Du{VIDjGEPOD>GWI*`e|! zke0g>MI_e-7r5L8^#ZFxlo8p+VpF{F4Tey9r-7b(NA3VW^F_;0zWzm5uJrw+SX^$zp5%=pn z8}Jt<&{Bj8gtE#$n*9xIk|MyV0UwLVak-02AQ$9aO|hz7{&A|g0*+2=j25@Au<4w0 zzms`Z31|ZTFU#cb3z5(;1rjc-?*8TlG_5nn7B&W^@HP9?J*{C@rNQ$6O>0^9X=A)8=b^lc8%R(Mq8=8^q)9r@?R0A0MCc%Kd z|JJk;px%&|Paa(D$BN7YBocUG?&+RWy|>?h0_h94>flhb+`Xf}xDRK34>WVQ1H&n} zlIqi~9TZLLyd9!yqlLQxW_-9|`&D-I z7V#=RoA?XopqAq<(&VA)5(I|<_xt_hPJz8>Fh;tn&eO;e2}VqEuo}7xXH$*^9W+T9 zsBXs$FNV#6W_U)NOs^ykJdl_G*)QMZkT5DM7@cB2P$fU7=0AGF%046;Q*T9otMhD! z96Ts&-Wl*DuN!U~?TL>Le}4jbxJy#EQ%7=9%SnBmQ^Oy?e)IMfki2x3IQt4Z|MvUN zMnCbWijOW96Ft>ocpwyYSeJRe_MXwN7t}2P@@3%BfdbbTt$+mCvZ{pmCVr|2WuEv+ z_+iP-zqctn@l~uZZ*cK#Dh)#(_e}m0n?(f7_wc);=I<+#)W#if-&a7=sEhSEKD&@e z*#0L7yu-oSd5Ul;wjYRi^IjnIhmC#uGxaRo-6bQejLM7bUilj~{?=ZTHXg{!3Z5a^ z4jF%Y`rDRww8;8$M8Fh5|D`Jv?Beo`KWsg+UN0J$MY()`fBlu`BfA#ZdiW=c{H*(| z=W(0Llk=x|6+lk!-=|nTF3#e1x53=|NZZU)x6d0WHpi|-mPKF=5%67`US+>ek@Sh| zkwWSqO4 zM6tcunhns(h$6sFsem3fQ@cPq64Lt)@hZhB=O1!`tAGjU2JO!Ryx0=x z3-s;}SxAlIq9TKZ%ZJ7PM7FgCttxg_tk;Sj?J3RyspIeAOVfH1CvM)y+^q)s5@g%E z<;>bjKu32Of~2B%1UD55V!Z-NTQ=~sL3E}Eze`djUJbMLcHD6gO`wM?fZ+55$WoT_5IrC&=A+d#VDEWJ z7H|RPA_0ba8}OwJp8m-O#VBFGOh5GB(=Bl_oH`7CF+BiuSi4{X2pjceC)>MI@j>Oh zjI)EpE1&>>N;%`<43bTE8i9hV!qW`$ff%NAj!DIrE83JD^G@YOvoYAJ?{@Zp3*v#6 zYOqv*mah(4S_Ta|MBWX7YGCaTQ!9z zu(0d4DF4EzfgpK17<8IJm1R4tGM;bUeY`g5*!7zkfFx88gLZ;io@rEO__mg5uMaA~ zQ5I@exiz7UtYRsf$t*pN;m2xYR3a1Qe_XryN!fXjZz^BK5!u%D0h-Hm=6FC_>}s+1 zj_B>Xb070UbGm+~T?MV&n-)q}h$Ic8?`tv%v%Mern?a&)GB+#kJCb1xWm#|mPM%dF z4dskz(M(%znGz8JoCerKhKU76KYcgP-b%Secc!BI3OHO58iYUy7Hq zJ3zy3()(L=C&t<2(k8TJEW3}dmSJ9zUv{wdT(kfsJNt%8$%|#6e3ycZEG7SX@dS(H zP@bk1WF0RBwcWo2xFKbtr`V3W1NI$BGM~b@PsyeS*9o+`yUl>xAs&K9?~4HB6uvY+ z%?3_7T;x67|7V(}J}O0^L@> zevq_XfY`^l@eLHW-|1WcS}JR81y$-4##a}bBdQu;f&xE5_LHn z5LARkVIx_9Ar}ELYFN=qc$ycyEVX$KN>0@jtkGg@BDxh40BZ^Z+IbJiSbP5Z`dn#Z zm%t#|%hAGYg&DC*iC#n(io?{A7P`u@d(V8|5)a#sLoIZLkW)^m83n z7n4i9sANe#5!fhZb+P-yttX+!EIwn8UmvKs>j{g*_}bSXMKcxN*caZ2!iP~gU|j(j z7K6#OB~nx8#Oz@{goCo|LgA(mp@;|SHGB38Be<8A_<(AvzlY{P2E;)(+#u7Chz4dk{LD0ZMAO6msG@^CT-$d5b`kOIkn@M!n|O3&Y+@a*dp*Q1-5q z?t8MPLV&6iAT~c(nrJ41yrAss?Bl_VWCNIpnINUQZ_u# zy=$Ae?9MT_O+?NQA3b_>p)S0XX4V|Sx%~C>dhINw7B!XcXRLvq_S;A zi=E02SgS%lO!E#d`-&W{&i-SG%jz;G=wp>UZVTqAHz41A8w%4yW`8G+hNBCf@&|;i z*P1jvy~pj{Ju$HIq>>_DKyO{PyirgKEs4O(T<$!aJsu%tFlp<5-L=0DtS;H1sSK9) zM0o_wf&e`}eRKdUU~;%o*LE4C9!JparA!`!wb`W+;;Ek-5N|zsAF^tP6QEkU*&~Oe z|6-SGXT2;Sj%;es8b;agYzO=wrBDWFPac~y%j8q$We%sR^v2$0`h zR+>|MN>0j6E=PY8+b0crk5{U@S>|_Nm@Ve9^*|8N@@;hqX3K;{~HC*2qkTEx_ z1?<>&( z+u1)pzI&8dZ%^Az4Ja5z@*GPQzar;zT~9=68SUF$B@4PpExS#CCcUOdM?$2` zJ>dK)seTfUiYW9Z*e~10Kjx%RYo%(~=HxKXx zw$EEq{MK6Fj)n)@oYewd167M3Y+Iup`@j8NX}ALyfm~j6hM{$k-T+>|IPmwV_Wj0c zd-(1ssi>%s@qCB#dwusg{B`{f3&~s&5E*G}YXerEL7DHcfk$^CiVM|+7m0`iQ)u|t zuWRn^^366+H8g>L0@lk}tNc7&y#%BK-gRHz2OQCdevoxQg>(Zr&ljaOsN4c$m89$O zbGl&wM|renMkCYzyFGxUJ0j6uVjIy{5un7h_DLq(tz!f6w`2V>uobit{%xh;lM?}^ z*~1-wsld&*JpQAz=dY4-BHvz8eT{0Fy*M7l1u`-mtl29=!!XuBd!7LDmZIR`( z0284u@<;%04JB0_ZR03^%F;Dl$4!MZw-kKe*O=%$xx@T5esrPsW{ zsH3mFfdL$knr-{ewJdU&-T(&IZ25+qJCy$^Z`|Cmc2B`2+0l3b37IpZ_T>vq}#u$2FYcfi%WTs z1DG5Z7K=rK;5tBoTlNUB6|GAOwB>5x0%aC=N5 zh5vhTaLTbGicM|SrA2#V_v#|obP&;gEJOX*tr&4?V@&&?1)W-eyMC8=I>;yX$ z?U(+t)AZ*p_epETk_6|b4wutpykNbUMi$Q+9JINfQC<gkx%$VO^QXMq+IeV|D_^@^Z=WORhULKA z?*ZhBsm%fh{!A|S&M5!MlYX?hK=SJW0t%0;`cmc)^SNi9-d(ius{9Ou-2v?o;FLhg zYkfiNM&qvHrqp|y;%(NVV5QT+cN#sIhYa{NFE6zB_s9)a(1Z zr#AmFfaOL`uo{&Y<%_RhdeBqi*4hW%kDb~h0MZzV=Uz_&zy8?82%Cf*e?k@et6Po1 z%7FS!e@kNMAzqI;arbZE+8w3#ze?z!1dnU%zx2034N}HCKl<@LD&q84sF)Yq^vcP3 zV}uNEKW2a1%0mYr(@l0eCcU`XRp?m40Y^N1{_hc&INmr1TE0P|D-)H9bl@d-{>QJpPyKgeO&{;J!(=2FM1Q-^L-Wc?XRtaf;yth8 z*Yo|m+QlK^VmthgtL9DPqny+~xBkj{ z(~o$!sebpry?y_&H63V6;JhyUX{Qejk7BF@BV57BfF5vl%n!}%g-qbc=6pYq*1*Pfh~)W6%Xkx}vz4B-=h!H-CC6msor6#jdoP-{;? z?%xN#{pY^@yAp-9`?j`X|3ACY@t$kntdt~U}i}(OvMifUZee$Gt5p*j9=qcGV4%Xl~+RW28@b(}=NjkRq z!6b;eUj3Zr0!R!jmK_eR;Qqe{RCdPW?nsQZ*ID0p0=|B5r1N_x9b^soWZiK$dEOrO zYw&Y;qOmM^ulpCT)R*zV;o80a@)v>J{4;%w|Bi#3R{Ph+=itV_2qX~R=LrISQ!cza zBQmr@#wX+4oy0j28V1$i3x2Haj@D2*M<9Sra|&*y=@hUdD(gBzIN% zxgbG!aRyCkh?Q^w3)qYLh)5gY4#K}D9OYqOd6~{+-+-62hk+w~An>DnxQy*LIf|FlK26i*x z_iE1HG|8upTnpXG+EeOgUe$@tPHQxp=cal#d#h7vIw4DUZ=ul==1vO{79rP4&JLfQ`%;D-B#`-(EV+}@R( z<9(L~7zxVWX+B^z^@p`URkh=%jii-Jj$tQTq`Q*sEE@tr3NL+s>*yzWS=pwm=6>?( zK7u=fu4G%gj~fHv(in^eVJ`#Jw=$=|`o|IY3>K}AhM92e=~2`EVlkyD>Lh7S3*D){ z?%U&bnQ^|iI+v!2^ZvBMI&c_H`%cWb==#V zds$!n1|K;y3Fh;7V|R3Qp2$McWpB%9VpO7Yr8GtEX_w;I;*mPhuUQZv(T((bw zPxQ@1g4kmt+R~^vK^uFmcj%gZv&ZRln;Luk=VjXzc*3tmJeM%P(7UL3NI*1~22t6KR9r=#$;A=&8Odx?j~mrl7DuOtb6UN+mRleuc^Q5%24Zx zooiN7R<*1sWzOTlT~(z$_Q=u8?Ip~KQz0G z6NR+4PLTvFoY@RKlMGDvbWU9t6BOy#;54A3_u7SLU!|?S2GIi>CE&;Sqbj?m`2%5D z7!@wiy;90!S#%P9Wx6Vi_iZt~a12T9agL9^aGLQwK}@_wA&zUJIo5xvhZ~s`7!m@{ zDr7B>)2_Etl$zn9W#MjRlQ6JmOZ*m5df!dM5LOMf@Idg)OYtJ)oHrl-bF)FtV+~UgVL_d96|kz|=c68zi)Z71{}9SJZ7dsBtVefEMG3~v zAxEtS{e16^1klI#-M_YPn0F?j<->r%7V+GIm z!tiGAgtG`<-32`Au8I#D;fJiNf1Ikxo*uqGOJ3RV*XWQ2P^DEu!Mp-G9;q zPR8Z@6D=i0ETFQFHGd*1BTq3ZSUvD(6ymI+A{Jm+{(fN}DV=+r`1AMwUr%obnPpg? z_;s3+hW-7WSCoR@FnP3AtXw&L?o@_^Vbq!$)JuOOpnZ#qNAIqh9+zG33P@7$C%rLe z?&-HgDr8M*a!JrBXhLB?f4{Jr@sz>-r!Dz^f2z;kLyeL0pD~(Ar4kSRoYZXM2;jbZ zx_;@EkIaJJa8XK~I2CAFstsV`hI3>Ac4F z7IHA8h9rRF&Y(O9{+?$2lqnJ`ZThdH)Q_7tZKJltg-Y9I{mIHCsi9_?_FgMdp1!<) zzUv3etTX%o^jMjukCu~RAyW2w-lXEcU*#VyMhStsdU{l1$-Rqd=)r?EK?t0K0RRwl zsCrl{oJKI3*>~5^&x9CKnVdYS1JuJDI-CqtMAj#TxvbiL(yI!YsA+ZlS*UoPh?rG> z)jti@mOUuII$(DY#=brAqZs=>g7WN^jT<8h&*JqqdrA+$y^hMHdAu~FMD1aV)PNk_ zpf=z3yK>NWlWPQu7=+kW?}BP=J`AJ?`z*J7a$>9jg%xwK{ymLOPxJa~!QhFXX7*=R zq@J#@5BLdm$`ggsolo}Ie#`16d}l2f^N{NJZ@O9U=jTFQLwpY~%V@N&LySR`{Z=>u zW={sf&<#I_5P>%^zw_IyZC^0-qw*Pn+1uI(j~X@v^`Itq-9E6$x(s$wM*(uB5WpKm z03MlCW z(0IQ;|8umvq2B;GE%)tOSs%!a!DFj%pH#w?r6$hlXWK-K9Zy#%!Uk!D9P%aAY-OHC}(Kc*xbecRq*EIlo_e6(5i%5iGhPB(rG|=iaR3 zrm#zM5ND^sSZi0yAlnO3di_Ub@!pcBER@hinqP(71FQ${3pBFFqEh|a9`Sv$5$92&3!aGJ3F^`E^ThaKZOR@?)aJTd$=>3 zR=s!Ux3~M(;y=E*(^mW2S_)!{o757?eapVzEahWLR!>f+c~|X|=NZ0NBjM?i<@?=h z!>wdwYITIi?Su)w-sm*A8M_?&e|XU?fCd?wNV=!wtuqyGzjX6o$^bsSn|_-UW|esDAC)) zMX)W-%Ch-sc2Jh4-{^wYLe&Oj3*d0mRXB5T8m40%>hT60-5ty^>eeXtTX8(-+(i@# znZ$X~R=7*ZFz4XYTh$;wT+2i3LQLf{6_@38c9!kjU&aOyS^&HmPiPXPJ~_;N=eEeEp2w}6kIK0 zdKd0vJi=RRiY^lyooJ2_tF1Qf+gDzD8ZXFhYPTR*@G+-&^duqpt)c6 z@eMl_Q}ocRW_nkZlb7Zkclba8P{K8zAI82bF8vKkv|1Sw^6O!$c5Ms_qpVBIoy%wO ztxost)7!T##69JN;*7~-;xlAkm2U5Bs7b&3MB9j8Rbl17ZZ!KT}F#)*{>a3YlLG6XC zv^MG`_aAc@oBiMW-Gu-4f8X(3Td~RE!+*$qfG@~X?)=$3;5+$Zg!I7~+co6Gz2uiI zqlR+u0QCuO%z2D;Dr)5o0J2Y$g&O%*cH7L^3z8wT9=2XaPRsq^!N1@B?61X{Aou9! zJ7;Sq8A(`<0P-+{V`~4GP2{b#t6qdUaa&q#qV^TU*4=uq2`Dn+{}b5#AlRg%e-4?* zz(?j42CxhvZTT8!J_OetT}Q_pE>UWzWOp`X2AQ0m;}%K6F3H?r-1tbLj3} zwzBf_bR4wd7EpF63k0F~+UTn8vu96f#vLM6KHBlHh#MCN5N}ht1xl0DPJn%@Q=kzR zpWQE&$cJdG>2A4D>ZnomKiU)3PtEx*P7upnDNZ9DTsMC2x$usk&+*z)c3^M$#>r7qGH*i zVb&}MpfjGGtaE2IW)J0pFaDgEN;-YLbJ&2kn7q}U-nc@%;+5B62%eNEFCGH1q7G~a z;~?=1DTLS86aKIPvIaxnf%}Q3pv`u#z)a@-xGHUPw*!QYwJ=3T7Fy%pZ9{ zjLVqH(iHwo*{tWDF8P!h>@tm_kj*zRo0I#M+jel>0$x zYEo_`^8!ph!q3Hua!SE}i**^%KIOJvoF893wW%QcN9gtOEPnDK=}@XX%d^6m$w4() z5+OptF2*RG1emX%ISuCX%xz&BA`Z39Zc{F0Z{DOCOnhSdj4ZIP^AtG@?W#tT5aXmj zDYQ;P&s0x%lM7evBpgm1d3pI}lToTPiotv0=2R7XDki_`BBu30KVi43M%-)mAi>r` zRp0sY8{>$#CP56~o}t-yVgnHi2Juky#9d8uI>uRoQ}*meB$B}uL``;{nT$xcFCyX% zT&+$JHU^ZI70{y`C9#bI0!HJWm*v#qS(&N%He-Y}3l?p4Bp@X;N-@v(;W5*py4Q3X z;DI?QjKTC~e9|YOIG7L^xXJ6(>{byVKmD^3_Y(1z^v%Pm%GudPzC*Ukw<64IkNS@m z)QY^{yU{Qsx6^;XCOF(oJ9QU5bm%;8YuL8wHi}G6WN`rvPxRY`*?= zK_kj@hGN}mAL6le4FVC-LD`yKmtwLUZo&uzT^lJtp8F1tuc4Sux0d?;RVO0dtUQB0 z|H>s-<_E6Y4Ofyn53k@X-@5v$(g{#ZQcL|VeIGUCo#>f}Z)-O3oLJ);{N6~)S$|{R z+n)tNF1?;ur_#7ye_hyk_|}@UWFw?Qu%i{HB}m!llBoWZCx;$rF%wy!VPoR0*8)ZO zgPnn=p95Ypgi*F z-F2zn!hASZf)fR6?BCa(CYJ5F(SeL0Zm(_vNY6502S?zFOJD;c`ha+REFg)fL0p@NH_KMV-rGVjQ*)4M;&cg)r5NaLpdCDX<}RiAfT>-3fkv%l~^eJ_5VIvk6K*W~}&AH!>+F4Obk zjbfao@%?G=^H>^G*{;`GJ%(oBL zD3q15XnmDWi=|I2NR7#mQ7vV)TJFHPqpU8!>AlFF@XRe*u_k4yo<%)fZf6rWtSR(5 z((LwiV5NE~@eH`E5%t!%$Z2Q$l>44NMFr^qlX~)bY+HL&xrQKsDywo+J3y=>Dlj?b zVi+A<3W~c{BxVSnm9elBusM-hze`Jh$*^vB=l6X7uhyHt*JQ<7i=IBEXBTVj!R`2r ziFW&;_K!4I7jx%Bo6VP;iH)DySi1O~M`$U{O7A5>6czn1x25{w9cmLK;gkVR z%qw7@-vx%BxnRg)2(m;UTxHlXyzBmJ?aaH<106*kxffFFCWeB#^BmHKNcB%zMpfb2 zn>UQI^SEC?MC9y-t(zUH!XxfD4`}{!E~KS4=WRa6q59UtiRdi{OlxMvKn@W1PEH+h z@P2)moI*8OX5Z7;?)aL(r;$e<8vU>%#2g|PEx)(z8Hu%key8uK5dXm3^_bW-6UNf~ z>J6OcyW7Kk8yiRAW;@0=W8xV2fqo27O1f|Ocg4}RkVz?AE&}hk*FLI{ zN%zyu6smnG0oBvi$p*_yQVv}@pK`ry7B!;O=W;y~&gadi-acp-c(ZuV*Cm zn$4@2pn09CdPPQqThkh_Q^K^7UpwU)42~ygK&;!`|%;sw2$mK7H}RntBUm-p#!|C zmR+{timZ}SI@a*)GM3z1`)!y99)B#zOYUUL2nHEwdF>S>@gBL3FFM(p=NKnAKnNlj zv(xk>!7%!>cpF>}XIJi)F9po7jFDa~IX=+QI>p>SmEE*v*$w_esT;i9S6*lwx-xbn z?X~Z91HpIs5*PIL2y~7eyU#R)tnMXLCu^wl{oLx;Jb1*Olnr@WmM?R~?bQaEy`s zxy9g4)l5yLAIARGP(C$(D}yasyHdRhH`%#z+dip1^aj00rd7_Jv$k(Hk7IJ^OS4JE zdi8_3heTXT!F$u+l~o`;C-JF#dO6Z89Z2}E860N+4K&Vron17bMi__K1jvN8b>!v4 zr^Z>c2Ne+h{=J^`!!`5TCX7DXgX(q`79g7WEDoG^-xbZ%?BuPQgI);w*Yx_#8_!hj zRAn{3%eP~5O+nK*z_hoC+@8FIPmjo@Rk+9IoH;8M-tNz`@X@2{^VfQIiP`Ivek(7MTSw#KX@jxFQU(ucm`k%KB3ws)pyQOuipA3t z;m`|>JV!V7h*+KU8%4tQM|4}}mjN3&1w5|8(}+ljWz0pt`~~=vm@Lp?cru78T0NvR z^#6j0bl6zB&4Dp{>>G09b5sxgY-wTs@pxIJX#v?DYP?+#a`l`J*5DM5t=ASlPwzyU zn-0BJ^IFvCoU1zduH1Utu5|F;ZW6%Du5HMiQ!#HTjrK}7jazeB*m@zqnBoc25Mti4 zO|`K3U((yx`{iW=@G*Lu304N7lRshNE7tcY)~+e?F#C_#qb)ghX3Z&c)}H6KG*miT zKW!WHn?3|VO0HSJmpwloU1}VG@`6xH?TaRGKJ)`u7FcWkj{REm^$A3A0-0lh$(lX7 zxWkCtOnSIjd~2Z7#WT!39dd~szlcQ?DPq;A$q)~gT;N&V zL^=boSmy!}r7Jy@%zIbHe#`9Q#b0a1m+>l}iz+5I%+H(c0bX{)3qYuCZJ2ax;ykOG z#G6#|NsIo$GBme)*9=`=c(pLcoHp1i}m6*$ut$K4K zkvh`czjl67CIaEx?gBDSb8Z9mb)f1JwAYs?jH7UF<5CHd3SrfxXjD8~nH)+Ec>-sl z3LZ3-=6(k^dwT};=C(WDK2a#a`x2BPirqwWzt+(rM3JoLMJswZSy&|A>2%u(o&}ZD;OrXte%|bhIGa#0J=yb;05! z4XWQ^e9F1snk2VA!dBX~A=6bDuY^JuFj>fU-=J@qX9823YiQPC1`v3s_Q;~UIo=o< z&~{!>RJkHQek)@@Jy_K@{{;OfS0B3n1cU7N-Yy5WQ>ipf_AMC<_gNZ|_-(u|W3Om# zA|M8KaNX*O{VB{nj1ju(O^sQrTA587;zSU+Q~PgsT!tL8p|$7|;r3i8L!2Lx(!G(j zAYuW@RuLXIJlVh~5wdDvT}Negxz1o_!9>EApo1wC;R`nyBM;Y(ESvy5+i!W~_Jeyn z8Mhu|XcHAB8n2s){w8wBw|hI|`*P;-Fj4R%&1Vh+g&A2(WxOzUJ4EpRU~Hg?QDQ3Q zo?{Q)4pFsC+FemcLV25|9qGS41oYrqIHDW{!840^;boZB2$4vDj@l16QJ-EaajU{@ zPrT)6oq4BLYDZOA-eLS6TIqbo_hAWe`Bdyl&2k_8edwB)@AQJdpzT;`c^B;y6qHc zo%ZM{qd;MR0!1#Y7V2L$I(8=Pvi+tgsw$vjdUN%hiWrLj&$?QIsCzGNR&SkzCq^B? z$YP1QR*f*w4XvNE_oM)FD;QjQl~GfaU6ghg_sG0NMUUK_md%ZXyQ-gaE=B^jQA7Zs zfbAc|sRkf7mZ&OZOF3Nw6HGhl7GojcJ2L(8Hy%#W#7Gcfo&^xzb9qfuP#@N#TGR1e ziF+wk_@nX6p(>CV`@%dp8Sa7!0r1BQ`E8)9+Ift@ckbBy2^(J2qrPina zxm+{~HR2q-G-ECrF_M8gT55CP3M9aTH@Ngx?a@hW8% zr)MW>FzxN_LONU$j%mc`Bg1vVk<{xb@7vDruHd4Nq(;e_GwxVcu0LPw>BN`rcOSMv zaW*9Fr%#TLVB6f$`60^NSk&X-;>Lop=?kKfosHVL_H+T(E3a?@>Yh@LDOvrGXuPj)3oB@hoFR|oLwWlX%ZlKmA zbAC9yr40dVc+@!DCy`HZ4oM{4AQCW7V28^ zs6-YTcAt3aPW%igLd#VRLKOt``ZOKwV+tf>Z2GN-n1%+sDdi1~_U8*tSQ^>mHy!;r{GQ|zfzkv zOhi2hW4aME*a@1rZ)Z>+rsw>;yZlx}a6l*NCy6d`o(Z^Zh_}=jc7?Zv6rP9Gl|WKt zP1C~K2@ErX)KCFXm@M0*m~2w!Uq>n=P?9|)yOP$j2geRM8BnI!6{ydLS<5#l+?Ui$*Rcnn?u3gr1MFT+2C%l&%5SY6)C zQx|bSiAMUOfV$@xK~^inlU)$Y>@us~(vWQ%HGtrC_QF*sQ5z8M-;3If!?NtR|H`3n z)|werjsE^#kx43R@8~f(Q*an~HDIu))?L$`H{?keDS**6n(D;@J z20=-T*r1FQ3kXNcqtm=Lxd_cRtT|piv?`uwQHNnXOO+wp;d^ga_VJPt1VH*HTNB+4 zmz9LBVHyGz1`LciBZ+z^0wNYBu{e;?#U}SrZByX4x51tDug)LKJ@>P@3G%M50v|T$ z0-=e!T;mvmsun4!G!DvlqKii=VhB*uIN1kGr!K34ym9EzukRI7qA)E;eWRE<(0OUb zI1!T_z_-wH^*_C3L^#jso@2zWrj}DcM5GG;`!2M(YcH%OgrXN$K?J@(Y1viBf);p# z+oL9v<32^!Ho{USO+Pq_IZh$k?fD83NtoE;Sxo*xLHeH?j-2CnG!ix6n%kN9YO_Y7 zxqpa-KUjpIOy2cBdGFHd&6V4mmP>5=Bojr92OT!e$=Ui^%@0zhXh4Y8vG^~r9hqn)< zzMbM|%{6Hrn6Dp6U)mEevQYJl9GCeG-bY;wiIA+lW=;H)*t$CZVBZt^0}HFSA7>=U zlgAaG7buz91{)-3052Ge z?CUxDk8?+vZj)APB1f3=^F2@*8CoUgcM*ZN{vhgV*&OM`KV{R50H}2lp9X+xSti#x zgfk%3$?f)gj>_CwkmUt!g8xy_-*Tls_iit<@p_h8TN`;s4!y;Nu_yRO#9E4yKD-T50oTt&iGfE*?Dv4@8z~0PI44X zKG<~@_5C!$8hNdPTAnGWGa=v^y-7$#l?}z+AQViW6T*bHoaE6$nzl)z(N7Q%h!G!0 z2I~AGmJOszOmBW#H(=M2K@Xb$!2~;pgG4LL0?szS1-zuCpd`5`I~=1Qo`LM?@}y zb8C^8VS9)F9#n0d-LoAj2S>_gjhZ`iG!wkJq$GdZc>em|q`M?`x=`R$H2Npqm1+TN zpA?pJuIeE%H$zq8X|P?jF1uCI9V@m&oqz^LTKr?%pB)%^*D_%cY3qH_HF*Dv;}_l? zG_ZpoXvC@VR=01Z?`@)Z%6{ac;Ht8nBE!j**tI4K0K16daLg{YR#I8geChP(lB+!$ z_ekyZRRc1YB(WLRhmEgRy4eWCiX1u9GSRnaIPXc~C6>{}h8Kn!7vI;&G$x3CWC-1WjjAkt zI@ud*HI%Qlm?pjb*J!4C6G&h_6g!b!_fujr03s?vVmJOo(Oakgv`$cPSkv(_@@ww< zlzfVZ2+yQtGX4JRYmhVDz9G^0;R8bf)W$d~5(ILuWCUJw$puBL9S58S#b%Wwuz>qD z>OJ>oQecHU58*{h%aCOG_8ST6H__w>b<+LXBE~PI8a}yCpA7ZB8-(pE%}Pe&QK%CY zB>FswSU}|@tR$R&6iV_+*+YzgnDH~Tvp&GI`Zi@x_2;wHyS_2vP40Q*N2{n3@+Ob% zVh5^tJ$% zf(5B$CkZqJ)XtC*$_f@!SbmX%26HdzBa!itjazjtMvhOJcebM29H3aM~OwQn$Fz( z3#pohdG&Bk*4d`qK#&#gb>wDOxr0mTlhQ4Z$~+)(ROS;-RyC1x+W}xz*bFV%BR!FZCuRW=B0&8exgK@n_M+XsO~%;k5aBcVs9KX#d-)~1 zTOL?@*_$-Io2yipUk z8s+TGy^6hurGZ^uplfDnYPY^+&-Z=v~tz8Of6B#A;~ zrQI{Ml6ISWS(MtRwU{cO0?hO)&2w2toqklL8It|jJ!=`f#NkYM287HM6tU_6h9n@1 z+jZt0H-rt2k84&+I%nnezF55r;=nk=+>C{A{`iw`N)b z`&Y(U(XbLt689>YdC-e4GTXme_g5B`lA;S@9e%kP3WS@jg5i!<3y`^oX@np-f=+

3YeU@)CNHU2>j%@!@9LhBRH zm&vQ?GVUvy^n$CMg)T^_5(gBbQS0Wo(V0@5=^(W`E|F z0q4a{FJO}djF_&abWD21!1bEfVRjpr%+*P3nKeuHSECN-uR^MBYrdSINy z9|rl$Zwo{1rB0={IG3voI4q@WGc~99X!(!T*?ach+Ff*-==>>JKBe~ugP6nDV+`Ky z1ga6t2v(HQL0hSTo~8zi{E<^)sJNDSMVTA>*=$Fw?4I^A^Xk#7?Q>89xM{r&^}%iCbBRMia%s+z944T;h6 zM)Y%^Bm5S%ZeTb9{4oos*u|{ER$PCxh(Br*RhUrpB0pc>6S}&(Jt?wj;$mVAa1?r& zRO*6R!<_gVQM)c_g?2fHv>{LCG~~VOTJh?YmrfJ0QYr^Gn+~|IIzsj%0%q0uJ4J7`U1L<3x=$ zT{eqVGCAaN+X=iy56zy7wgV>U(0-{Y1xQduUNRCN*518(N$@`-5-+`nk}i!Y!~(9b zt*mKKoRr&wG+@1*PdH--pLSCYA>@8-YdDnkk3@qohc9QT#QD!JsM^p}`a3@ z<@*vf`&7^Qj0AJq$(=a53*`F^T)5tOIuCbEb?WIOt9M&HB2wU8PJ`yF_nwOerQia= z8Z+NsW8d5u9-U*Lp+sd6XD0z~MjyBD0MC`@h1sZX={vi0+wXp2&5NPy26pF;TTF}W-C2n9sx-n5rBiy%nmtCX&Eaw*O#rs=c*WQ&VHl5$ zWzf1MzsdaBmDUOpV&S2(j%o|n)Pb}!5czJ7T|t{QA`4ji8}kV&5biX`sP8I-|LV|9p{lOIfH|##fHbm zsuLzHf~J4S^v7itcEqVYpUT+I@{2;X0c5j~U7aN~qzwySC@?1Srbmb(^S{`L?j z8u3BELxYNHSP{2VPZ=kDFt=Djtik;I+Z0Q0oFE?V(Ij=?){E7iGP6;asxLk7;pDr? zq-8nvDLxVMJ)ttka`!t(F%5M$ltaqLkV@h2s>G5)dOgtY*oJfo%jq-TPtD2sE{zi` zjWMvX!h_qC3hX=!^Wp_feh{e_84l`wO4Aek_EzeLUS11090hYsc09aRF)mXvu=W)C zUko2D+Cj>ux>BRS^_O#ZeN)RJZfS;(GwnE)gjIgk40rMv=}{3wmT*x@)bwiwabCc0 zRij2a@aeVwlvzD6A$A-p`zDVp~U9RWkO&!p)XA`y1>-B z&zK1beYuR$>Hh`*@85rmNG*s-6N%)A^%FQ)r-{fUpH8al{ysixt!ec^S&NWkur%gX zOgm)ILScjSpm-3UsDpDTu5d8%vmr$vs!-p#08XFH=f5lrLT`bpM8gI&eljJMj`9$R z2E%-`sxkW*eFx-}D$gEb!rTx~nmmhsL{}NZ+MksJM7Jr-*Ajdw!^2(o)Tzm8G@!(T zTi`P~mS8)eLm5j-DWru%V+yDZI`GdU-ObV=cwx_aiw(33^#=!!aZnyw{fYl=;x!i_ z+STc1+PN@B>@$qQx$i>3-wFM5SZ4LG)N1M?!PdZSk+7re^|m;T*YU0{Ee!e&$&0jeSSLsOC z{O%p7_#2}A)9~dQfod@*+At(vE))|JBeX&|J|M?GDk6eCTHX?s-p4hn3iki#k zP6*0Su=-l;>iL80OQ7ak3;p;B@2Zk+NcLX9JC<|Xn~FDY&dp(=-R=GZ!|tQ zIo)vOp<9NuY+TCca6u#UDkNc1U;%Wc`}a=!_WX0ZpClGcy-Y)-oydz@ociWs_pc?N zsa)R)qeS8tW)Hbfo1o=~$eUsph_sm)-gd)3EE&^e)8~wT5RL}Cw7D*D?na*_ghwB~ zK1V2iQhZ%cc=Xh0j$O41dr!pu#V21bQjk+fP18z<&#CzB#o$T(v)jvOW7H{@{bvA| zxLsUBS^1U;Ixv^5uk1t3Rv)gy`2s@#HQBP>0*5~h!l3Q4$XlyKVrwTP(T%AKMF#%< zzW)e?A}SumZ&A?At&TU$^)Wuu83pFhhsYwy9?5Af&ot6X5ZC9KDUz1kR%Uh1z5QR2 z-wkqxIp?mP=STrM1q35)43PJ6@S}7K`Ova=sx_nv-L)$fzR%oI0 zV6@30;^FQp{g$BfB!R|yt)w`+XCrRJzXk0B>NO{$39k|Ir3zFwzg6o#Iqn&!_7FRYjMLH9~%NF1YF`&#JomZ8-o^yKe14>!n`x31_wPiDQP~R_;>HAok=r& zmuwIc)C;dmFaH<_F{O{;=_-NLeV4FYpG&J9uo+tRpW&?a_6AJEtRB7y;`%4O<(I%m zk$I*T7VTr1V{0;~AM5^}+5nb+OtSP33@lJmwEnXhDN>Qn@*i_!oeXJ=Bd6<+k3M{O1?Noo_BE%F)pqj?HphuSiaP@iCI+FtDRhS?Pb zBatUNE$hJrxvBesu?tNxjyGrR3h}Al!>NM$*NokMe`^KJqb=8%ae#x2w=7(B58m4_ zS$7$uS9Y3m3g4xy1aVHA$mLt2u-AS;h}(o+Wv9vMpti5G+!9s8#)l|_J{sF~vK#4` zZ~k4Sz0r(U9nPOsv26v@UqA&pB|eKdFMcoczfZ4K8Fn-hTdA2D6|V6npK+R$XY3LM z)0$l%O|(|DII9mkD&8YF4NdwDHC$Q^rEFC%gXgI;HtRjqkbEhLfu#OV?6iaWAtH0u zEa@uCKkiw_<;M0@ocGU8Ucyc7?>A$s!K1M88%sNT>U;3%KTfXXo4i(12UXX>d30O_NQWE;L;VCV8m$1bpL2WITej@K1xz?)CSaX^RMO*TL8kGQ2`k&*LsQojk zj6uVpai5~DYuO_4t>-7pMctTtjOH4rnyL)FW%MpZk^7j=4{)o z=L&icr7jl?%{xtf3HK}#;y+1L=1f&reqDg|H8fq6`pcsw6gEr!zi1u_e8WA8jGt^hiXBN7lb2#Qz42s4K4yZ1P|3;ly_KmmK1)usj0Cl85{4F07FC zT6+8*O*cC}l`Tyo**u~o>=A=O@Ci8R6yTmE#Z>q7f-Md{&2j$sgBv6!=OM+<9S~#| zKySnSK@Yc=iU5~fKQ%KT&JqExBW4%QT7KJ-qOa^WJU@$Z*nh>uVTh`D$0Oup6s z@?QMM*RnB)bL6u$E{Zuu{rCUt1yh;(?e1(^i2(2qj6v;P*4CtftaPw1#(;Wsfh(5` zEgvb^hvq3rH;#fD){Tw(3B;c|sG&FA^J#1}h|{=w!dLn%wku15Q$5L?y zp9H~GdSN>F9aNu8LPY>)@g(fA=4Q`QIdszHsz;%OvI|<9uh%53ejCq zi{BbdoMF8ugy==V{G4d20N*DQh(L`I>F}_}W46lPRfnS<*j(#ITP?~xm29DCxOQhD zWFYmqvr9PtoPt=0^4@kH(z>$gyjrU(>6SKgvG|g1!W_*zF1m*jMQ6x`Z!5K%cG`TEB{Pgz zU>17J>;{CJ39Oa!4lM?z$VJAk-S!O99wDnFP+`oRwmA=5kp^@I*YCr9mAgK7Zpp%w z{E`E$Yftw-j6uJ{Auc!p#$q}1Yw82g37oS5J}_eBjea21Xs?Sd-FJi(@#h7Xtd$7Sl17 zlKISR#N9n;w;3{^5r3`=U+*Mp2fpxOT1=C1JH$Wt>G0?4gcdp?8OC;MC&V+FKOFbZ zJV?7kX7VLmG`G@C#B#kx`5SoK<(UQ#4bkT}%G)|{O()@|2gU3j zk1Kv$5a&=2%UQ#=7eu5;_g{Xylj$Cx{A7!*e~2bxMa)ARDL$ zm-(Bc1BwSti3L&7$A5v{lp-bEq+_`KNbf(3 z^@5s9nTD?yOS$Yi%LKoKI^qpw30(H(@XCnT1qp;(+<>LKUEuu44W>zQI|<{5P5sy* zXZzO~R*iI%_eJrbD&+QtUMeJ=g2ql&OHKAJ=3t3szf%7?TI2)RiRNG}-xxHc9cR%s z1}W29H8$*m)EV9yz(Z?mh+(*lWH4tN97AJqb=gS^4UYL*>kSY(t7;b zYd|;B(un^IG4}{|9c{115^(0H62yESZqAWftuG_)=XnH^&(p_w~V^ncM#QbG~{7u6aRhRb~srSnO{G zL7Y*TVbNrY3}fz*F9%wpO|dxy73yEOyx+lPIXa;>GWU>e z&CDsXVvA$O%;y_A6`aS@*M8Ya8+g2Nl>5Wdtqb>-D~{t<$k8p*Y`YsAT+Ve>dYeXe zc<(u4P9(oD>E)wIzKo zYhZ;v1wZOi}KctNEy6b&NYLQ*ZUW;YUY|T$*wb>BY!1cxVINW+R+X>#} zpHN*XsXNd8Re#-A%`<%OmQ0-PBK+>D8BUZ!BnjKwm6j`>yfS)hY`L{~4p;ujsoy2F% zWtor<8`>9X(s5^(U5AF~m&{EuC`tt9A#Eq<70j$JhvsiuGrBUuS_G98?S0Wn2buUB z-(X3-YdCz+*3=34M2Q+1(#kLTGyT?% z9SXePmd~)aRP@9w-ZHC4H8jcVNAxe$bDFrkIvPd*IkpWfpQU2caUrfZJhqU~c=IPm z&4~W8^FlRx$$G7W0Xe>eNo6>5rAWv*n!;53DCR!t*-bF8Y{}q`4V?TXN1bO(-sGp< zi4o2%F0_5S=OwzowddDG8-zmOM*378H0OUsoo?||rh{;@k+<8LLMgtF@;SHFPVxr` zCLI5oac$#JnO3cVK&Iw=+stgb*W4-DH+F5?HwLWCwy;RO?^Cu_Reyyc&$%F{DGBe1 zTfWiiA-1l(MoHcAw)q9>A-;JvLqj8y72kjVJbA{{&wk-xPm>q~uRiGZH~%=o+Y3=+ zD7~%4OgGNobMDeyJ70_8O-Dl3fU#(00B?{HJxrYA(EDt2n;bXTy=Lpt!d0T47OaoW zBi%(JL^UAWx`FBP5?%5>%Q_&up(NCo?`U; z3|Q+vM=-qvW~^3=POt=Dnxi7xenohpzrx}~0X2WMiuT6`{(1o}{~DLE!EzU?Wpx+R zefjx#^B&8K1;2lk&6AfcpKJNS#n|x+X$1Ka5q+Oo^SPp&*KBvuqwZmwQ@+LuMYRy{ z9FxVLIw2IZhK1F)&c0c88`L$1r5X!&wK)IILbE_nCK6v6YhT%908V!$r(U=94vWWGqa%TqDq}@jj$YUn zwc8#yogG}0Y`^{aL;fu7qFoK<>gs2b`sww@uM2)gZS#%ig524UEd-8us@nsp4f?(= zd^}uKzdcI}JtL08S@Tu5@Nyvoo$j{%VZ7=p$~iBg(m6}Sz}er=?Oo^7d^sZILk#B& z7^(OdD9b!cTg{>)cK@PV5BRCNbl>N<#CldBxG0ZW`C;CjYZ?!C1GMkEaha%@OglYa zC`S&9IcABvpW7+5@bEAcc_%3{)tchvqSIS4na69b!0<6aQ_p;ersXz-oCUl zq1>&_I9p?%x!j5*Oq1SYxYVLQuclC6U)`AB{sm3c33O9Xj(f6(+>sXX#_> zXXEdTi0Da!MQ)q;3^N~GbBX92gaNh|z(AK{jGZL6*`Olu&0jHQfNuKw?zggy?XJmC ztdH#DNZxe+IDMC{$!fbid9f|;TeH*jw@SR0cX{ysR*~4xr?%<0BSK|HS4cRXTPr&R z!SX=}Lt=C6Yghc4JQ2 z;AAQ4$}5nC*}T;;6`VW1FY=Lj$oprpkk{BNh{IF3|IKPp4YG zTHJM{0N;15fcKU+(U;cn5UUN(eZ$M{hYEFBCGoZ=iF7k59!Y+$TnNvA@2iV7N@QQI z`S2_I5*mODyZwao*YO5=CjFPlvlk&z@%&@_!p7` zFZRt^Uze{$Baqm^zQ>h!_&bU*l0GbKXC00@c2r^M2n;GhhVk7So;}t#TYN9xyY*{x z2AaIZyf@zKV%fcnrw~IC>rfG3FRH008nNLOd0r}?x)@Q}!@%OB9h)VrKbMfDAQWtx zZCK}4z)#%O%I_Ojc;G=ahltBFKa+OyT8@fU(&3ozM^<&dG5bUE$8$UdgGCq5 zrSU9`fOb%ZU3>n`An|>=+nK9gf7teN%@-w(cuc1~?fWzw`TWBDIk?brUVNz0R)klE zw2X7!&Xc}C(evQZZXA6$ubp!s)W-Lo1C5t`-N^xFsLyVGk( zvyAu-y~j^{dHEC~AFa7?G36x7s!c~?7QO&7z=bl71BrMlp}UGrWZyM=yNqGoC!@sz zF0+Z6t`>hk0kcMtq==@Ka0{xaX?FgtBziS@5p`yFH&Cbf>?>&_cmtc=Rw5l8|0REH zNwrd>4wrq_)J!rJoj!a$+P_Wpnxo2qRZ5A!+f_tqeV9DHMj=dODZ7^+6`o;&y3$I$Rbum z@}nO$^V(i5ySq_cT$>T{qWg6=BU|MLgAY~N|ed8#6W6DzjE8bBPC5efn4aey$eezK!J z2xd0=6hyI>@NjNkx%H^@n;=nPNOk-WAs+T~V>%=LpFgxC=;D}OctIfcuq_B3mZ?W7 z#;gprLf@koD2yFP>(FbkFpK-PLLQ{TfD(v;J_EB`CLJyFpFersiYK|t+h4r`;^*fb zpb^ghynXj;h|t+^mnh%h6x(Hd@>S3i8>PkYxpW z2Yp=h8AgI($OwDUF1C&L*z1f2i=Z(nG%rXs?Y#0r_CF8u_zZvQA{c|*1em}J5>@mH zRP|v06ME`+FZ8l^cvql&DFFmhqdNjY#6PAf)w?fkFSds1$$3*a32 zmnE!GpWsA(pvavbFn9GrYGq)|a>g=oZ8SXMjUy^wS`Pr|Y(wgQhD?);x>LQ_!@o`{ z7miZ*#Pp)V_-OQEmY&YDSb(0KeC;DHjy++K$YEvof&cQ;0xzPzfd^ai*{f2NaTRT{ zlZ{c6ctm4n)GYXWvequaB{fR~sdT*?zSE3yq8@*V zP2FCEi*yziYc?}hcs?kVdAA*L)QzICW_^?ycVs@4HrzKpV29#Ns1hQ?&7uO7QBF7-MpA&tux#^t!+vh+H;m zA;zWOX4P6~pkfSq@8l%VIicALRxBYQ3cP+_0C3}gh3*Zw4rq)WhFQ&eGE(jf-(zjh z>PjgKMI>O25blM)zQz6dzfM1}K9ujT_W_gx(Ov*Y-+w;bdThT?hWE-Ho9q!0jgJ5$ z;~?>tGZxgUNo!P+xQMoZR?Cf$>Tvn@AbN&w8XPU*O{;1vn0`Z!^b2uwf%}Dx^+eKW z5n3jTqGMV!cjs)H`)DW`X7k$!^%Do}Iwp+9^hWoNz+S#D2^)(yyg9cc#?F25ki-#= z#^3^B?qUu++DF!SR9&9@0Fb`(?B@g&R;DD03jl55akPjg6Kyv%QCQnnX5V~+pqLAQ z!F6M|iS+t1$ZFjb$qYKPgurfq?Kg1L%vrSN-dNs4z-UhZ-M@?sax`P26~3_a#hgfp z9b8YQ8Ro_5)s$r%jqMSGAVy>6BVUTL>kJk~%}vGq&lLW@^_CK;Ava@Q@1RMhI5due O>Oe;MVB-Fx7ylO;{WgmL literal 0 HcmV?d00001

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 literal 0 HcmV?d00001 diff --git a/output/20250204_040012/confusion_matrix.png b/output/20250204_040012/confusion_matrix.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1c5a6c5fb189b399fa14e21762269116209f4d GIT binary patch literal 16749 zcmc(H2{hDu|Nl_Zu5Okh6eST-B)b-S$i9<(C)u~5z3f|LgktPl_TALYP}b~Z>mvJ- zoniRDzv@0W{hsGJ=YP(B>709N%$WInzw>#&->>a+pWl|3JhY#7KMI99BrSDQ35D8q z3WXxo*t-XQf^mLu7yjaR6xVQ6wlj5fF}P=fk~46;Yi;LfZDDxI+2o#sg`MqXPJT|F z3#ZH-9q&2_aBjj*4_sqB$g8R+kP4?ZD(sV$fC=8JQNK!K2< ziLXt=%T5eF!4wCdlJWhzhl$ni;#TLZP{W4Voi5|mhKr-b87GWKlkiHfLsLcbT7Q#W zYDz{%#z7Ry=OE^r>rwdoCJ8ADWt@N_L7{RLePE5notKS+eY z%8A>UU+tSk)6m%#8}LwhOc$unRrFcsHB5MJ+$U#9*|go73-Z>PAmZk0+3_wD4SWL` zPZP*q=a@HtCP&@Wx%-|hXReyAratQO(DQS#&#ba53X5Me3cEXIUTct?^iDSMSt(ge4Z3H(%W9-5_-00=Ed+TfWQFJvBu*;`E^5T9|^!^QR2% ztc0aWn%T;A+gA>a{B_?7Y69qJ>?)SjHYU_@zQ+`VaumJvmd;W&7}W#@B*&ozoWEEk zYX$YWPiEqW#yyDQSW@H9udj)}2~!F<%WGQy(!8U7)(REyf^;|S{auHzo^tLocsl4@ zdRrH+dMLM!)6d|;6MVBIqwc5!yjqcGGSzPUPYzw4j$}grKqxK$J!3`BDR`au{d~ei zy1J+{VLZ7euSrCk(ygw}W41zlL)R#PH=@VtLQs>Hg>~*HmbtajxSHvr0ljpTw0KRQ z%K$w&z2ohTaRqO!nHoh+P0jL=TJ~%mtPYAt56$#IVk}*sXgTMyu{wtzXp8kKXjfxL zD~f)9x6ALqxKSW~lB;!pxtl$nO1X5T&8HNMdKGeC zW@9~OG<)S6-nKZjaIHxbw4KV57GJG-k278}mU5i!ueiGDm{saHuH@BEv*gz2HX4Ip zXdzn@n9NY-x#lq%<3jCP;W*Pu(5rB#Dr)5yfr^Ptv(RD-oh=>;94yoL*6%SJpdd=* z2^5$}AuCi!{p`K9;!QKkN3YLT+{&NU-Nxp%Y@r)knXWpJnzj#LF(T=H0+8q`T5W%HUr4KtJ6mtdu$l`g%Q9*Q=Z>CQ8o zD(tbvi`%QVW~f+W{R)PHL`5ps`(~-d>r~ZsRdv25A6R*zrj^FvR}nghc;K`O2w@B)5G+G?dtjg>oaB9#c_cKgH_M*&Z%)92C;vd zt@OEYai%oEjTk)MiZ?1{^`6S9iI)swC@2)2&TsYob97^&iHlQ7`TdLiK90?07sm(r zc=KfB!Udcr^1F;=Xwsmf%!TGZGK;rnOc(ZK6&Dl#qVU$xd7UhBk~cBwo=cyTy8Y=G z--qnk<(C4l4nBK%(ct=ANuopUCSkHh!JE)J=+JFnL+>|u*8;l`#W|yFzl_^j$KgvI z`&&mbjq87^crmtE9cBvL zm|iSNT!?72vScc1SJS3y$|PvFx3R^+-@F6zn* zd~mFifrBr}Dw9#f(=~Hxwqixkq%MMkokC#jb*Z8${I*J<2t9x7iQS}r$()P5m8*k(cn2J8 z7FEvYZ*DxL?$LK_7BA>PHgI+ZOp}v>&eoYLVS%`j(zMR?Z(QCb?@D0n30h4%z=XRH zv6k3$I%bq@ysIbQLfLcAfy-N?ys*P-ojP@k?!kAExiOX3lvY#*ZP$0YQE;|gD?747 z7rK1GatU#{N8Ne0-|MK^U5Z4wOO-fphEV3rKLP$>#6oM1S> zj9OAScENmi%d=al&!sF0VQ4COIRmBjwZ#MOatm8bF_`Xro1QDnJ$AU&uMa8GBHI>O zrkRPDIIMnwa!W|)BaB>vlISzMH11`x%2^vhZ~Z5jbuFcFniXUv;$d-(F@oyZ3ga?_ zv%+T&K+{WKdIj^Qq{Aw4@yzr&-fx;O)4bZ+7t=UXgQONl8vOM8tYqYJl^W(EaT_N0 zn=T~oR&C*$I^XOz6u=i>iCu`nkSCromQF--q^2s$m|89$lJ?>*ggddi5VuwS&OzzY zZDj$R?7B#cS!B!OMPXTHy+ns7Ol|vF-pDk5rLL!p=;P70r51B& zP<)gu+Z{{J)?|fj+XX$RHzHeiQ!UEc@-3t>4-+d7FP&cMlWItqu;dKGbYjuF;m+f% zGUIUjRNJ|m2AUF+R1Ti8s7gN@(x_MyNKeD6k%rl**Pm)@&tRwTj1RQ1NMvF_y$Q>yTBF&yCP(&hW0slf{J6*44EVcoyzJ%vg0@i>-fnG;xk!m=89CB) z!WXOv+xYP$`53J!Ba8jPiF45d8%e7(iCcYGQ%l|hr&06G_c+;6wDY8(jTY#U+J z;?d1W9%R=2-fpsappHtFz+1t&;Bq+oJTX4jw=h!AJ+=9y@{911wt~J5dR(hn^vFeN zFU6L}URo`^XT1oE&$Vq!&PI%`YiON+FXMGpX)C0y(^!#NKarBDA}Bm9@o24*Z)Br1 zo1vw%vHq(>j#EnBL7I7{FjrQXDz2c`&Wqh4i@=0nM^yFKYSpRTxYc;qbP3;zO!Jb% zB`(ZF&ZL=2SQLM0n=&_u$mdsM^Hn-G)OOz$on5i4rD&X}UmdCH9?*80@YhpD&Oct@ zr!U7OIC3f*DlJ5=JKjWmD(*w$W^n#E#bfeyNHm>;Xrf_IYS}kJDop5KA z7Qm^}|Cx?;s&infYCFh&h&cwMlz9IzH4AU^1T-nd3>E1cV@bP>HKSKKZeeE6Qi)i6 zee5XTDy4tk#9HRq4blu&p7#%^G-wBTh?eNT9@B7s*P!K1pLoDYb=U%%s=qlOS%7v^ zNRZ}eg#G<3K2`RM^X7pn%z7HFwE3pZ1OYFsyE}Tc?ZjzfICx3NYR`FUrhGf*k|e;m=cpXkQYas+FU(%zpt{y*C%)I(yc-p=?M6*z=~{RL@vZ;Q%jj9aTU;s$M*+C}kso^0Vt%5O0AjghJobs;R6 zTchW7cPCd0KruT!Z=3RoYk34{JVok~5@T?9F!sRGB7fV-z`~@(wdB(tt)tNY$E5l;L9gg@;v~HJLZPN6sX6Q8w`@e7DZZDSS#Y%_|EX& zxHTG|^~Q_lEbod;%&amlC=IPLE|gTF*y1ASC5rlJ&hMW=cHvE$foYuENR+s35u!YXo)4@P62%*fs7b{=m@oX^N>WP4JWdC6s_xAxk@J*rtn{qA^Ygfe^^Yfhj! zp6j@2pqnlg`gDDB;0xvgy)y!A#HpYWaFwNx=_ ziWO#8*S0CBRaMhWya$st>m;{f)gLi&kLid06oT9NVt~+5#3txGrBTu%!>*cDGJ<)r zK9#4yeal*aOH~ABjN!9^v}wS@d9{9AmBk%L-l@)>J0vKCdmK}@_Vh2gmb-6(_HaH) z@3SqNX4?Y3!FloEEb`^l5?2Or$JO|3I$^lhD$DaH&I3f(ohkt+Dd_u`qjrI%Y6Pa$4oK$iUwJ@J7wCPb}xcBk&0qf2(m)Sug4w#dlS2n6G&UaCt{{RCD z^}2kK$g=>jNSKOB-3f`5gTJ*;&D+m`HFR=rn;Kv+zHU7BGT}7qH zNtpN9$Hnh`d!f$xq(*^REdnSH3dJ;-Q^UaS>leZ-N&Nxe6m>cI_#nF4|3rHa_OE)l z^Zka!>-og0=f{S=f1uDGMzNFDgg-GFDEU< z#140< zW&Fm?1JRe$&xZk#{%o8mZQFV#n>RAwRvLT#w5C;NfiDh_icW|xmPJLiS2u`DU`PoPJX? zd!bRpI_5Z!`Rz=n(Kv7P!IM|-hBQU<+3CGP6UOIWWP6_7<|evqXMmfYu*%4h$h1+$ zgfOJbwiEIjLPe5Ot=bS$f5DGr*Pf~qX0H^jbko%`sn^TfXp9%fnqi+ST&PK4KZm?% zO?7yDU$Ae$+4EN|CkAldy)FY@bE`u^HIbEzi4#lo0*=psE!4E7DqAIa-uUKnv z(@3c@2DDiSH4KDoB52LL<%K{}kwq(uyx??xd~gassoKQL*b&O{zA_gT6%|S^Y0lEI z_%4tEd>;&hEW#mCEwkVs9`a)weX+{s*qkZo)GO#1aBP*c@3pU?D&hhm!Mr0wlbghV zR*t=4)V_hYv+avWB9kh!`B}3VCpGTKkDt!P>F^AEu_@{^T>bu6bE(rLYl4I@#WTgX zKGlt^8t;5xD+WF&_^^^!-e}gO7yHdg;~oJv$=_-VQW~dl5?%XZgwAXWFMq%t!%W?L z#3Lf&hDb2`kS}6~ko3S2{bauY!!W1ZRhC+(|_`t{C2KR-qxvU+EUNX=2} zaYC=(L|faBQh$<4P09}J;w1p=Vwx`#{s`f{tpByk@#$dj$)XKHd! z%Eb!tZ*Gi=((L;USgLnJS3+GgvQ>X z)ly2h3!H%3LSnKblcq%1vc(C=pajgk1hb}C`z_)MQvO2}-m5plLy$eeV)f34#J>83 zS(}zR<9H1+*pFW}y#?h&FH7v@?a*MpGT^yz92nhp<@rpt+|K83Q+G&TBaZOloQ|4;}f$xmZ`jnDs8R zIIls_7}F}fN21KC5yEL#xn}BroSVsgWrn^XnlC6JNJOAkij)*37A7Ya(SfL32h+6^ z)7I1mD!u#yhd%*pj?c}#_lE4I44()vv59p%9ML&v8lf}OUkdy{_Ti8SJgM2snc!RN zxJ;Y+qG)#D^HbDYDXzm?ZZ{Z7-x=EUqhFX?s}TuuntEo{j6qHF0vGtVYnZnY_2}S_ zNr>F&U|pl>U4PD>+a8VEKZx0lE&rznfBwR>j!0Sb;bopm!6R;<2C&U3T19Mk%=0IAtwazY^gvHT63=N ztpjpJ6d$jV(^HCW{6#SY3d?g&-O?(UW-60&HzjN?d z+3DGl#u#mVE;7`+{qkG>^Jzt-#+wE%0E{BENiI2z)SLH}I(bbWh7!6(s-(B1=97_A zO`FpyFNg!A=IgkEnnbsR5Dj?Z zfiaG_oSq#?in>Dv_c`0Q7XA?WE!ae20TUNP?-=UPw&Nf?^$d|8W49Z?RZ;}7%+w!S z4${+~rjE926A_8#Js0af7qB|V^#ng@SD{`Zmma|}Xl8bjL2`LYuNVFOllqW{Xa#fs z`dHW=VP~~lKdV6Q9r4E25$_X(nwLTrhW5DD>X@NuFNHvQ=l;w$@F|81%K>(=g#nc= z`VpOO3pC_rZuGQw7=nlOw+QOJcRw6zPF9Emv5t8V5k4PMh+O3?o6044p3q3?!2&zneMXkOu(NVmiUL?`UHA}hW(6};`IX6U0`25-t_zt!3)06k49H+W+ zTsOCyKN@-$$9G!&^)H>&WdrHil>%43m?y+HIR-HZ4~{3t1?Hv|v1m+Ybc= z=fCn=?rtuyQlF#Mr0>|mXssxSY^}`AKJ}&sPIGO;sIAyMPiyjORwt)@FF#+6QPW1c zdo<0g2%qyruA&gJCHj!#uvpae;tOG`zF7yQt<}2Ef=2aqTmFam`myf=57e3i!fgf) zcJ;4E#|8mYWjjQx-0cO}(!K)tzTl%*KeSt<30DD`Q>SE9*RdDpe!lXO+sLrbsWTuq zwP-gMSj-%(z8WhX=4%3Gi}*FtL+7bZehLo~<=C{vsV1A3DEYa%4!@kR*<2bKe))Yy zvN>V0`jGQ0l&VtLw;D!ThRbGXYHiz|f;SZ8GNV4b4nOnbEM3uUOc@ri8 zm~@6kl&xO#nDx)qFfwY}RX8a=Lu?d#7%LJd+OYR9_L~;O@k;i~4D&pIzL#5%NF#NihDi>mAtDvzL zf3|^1MvuVrDVW;rlNeY;ulM|?a|!+vnfuh*Z4H9(wk@k29?KT5K^OIRGYA5V;|PEkyt zUf+2CkX*8-(8h`*P63@&c{nJvWMhhX=v`k?K|8a#kCqCv~-L>c7 zvmnvU;*OShuN8uTkc^t=NkY5rT!C_ye-TSZ;LSL1r|b2x3vN?=Mt&1c(Kf}lj#_q^ zt`l)XbYIO$Ce-+|FOAek^?iOy!d_mQ#oby;Xen_RjqiC6*lp5NNH`)iq)oIm=~LJ_ z8lq%vN3J@X`@2rP$5qL4 z3DG^|Ocl;$c;vjJcJfM-w-zp#q!U$5I2c+ z{G+-R%Ouj%JuMoavMULe_M%JkqEl}_OjuKp*L^rIIjy+i^|dp(Q_H)>4d*v7u&!di zo*}zQ2_k*-h{1ooB?u2ICVUe1E9n)ZT8GAa{k`H)z_W zx8x1QA(?Ydr&FR#fqGURx3IiTvW$uG^v@?7GzN!*SSB|+8ULO|v{>~L_EZ?Ifp*)3id+4l> zAYzhHm|R5Vv6!gO_p2LkjR6tjZhTZZ9_9UMUciWp|4wS5f*1cXba=9kWYR%|e<}I5 z_1%F5eI0+=GQeVZ7`>YH`;;VL zSYij6rzensmiFNcUa^M3!0vmZQP(FiD_&01oHYENC1s2=8$l}{$O_k{Cb-lEi%R~>nL3eIBB|NuGdM4n$PAk;#;6jsVb}ae! zWaQpwfFXi&pSD-5)+%a$@Y=CJFxG@^OTI;DI5hD3IVmUII&bQV5ba2!6d(jDy^1B0 zlEoI;Av^DNZKt^qY!70ma^Dz6vBMeq08Wa z+2O&E-?SU$(4r*!h`Q@_*DO#UbJB?lNGbT>kNSkGS2$fK2hevCL9+i5_Wr<{Bs;KXGR2OE z=TN^w&naNCzaY`6-8;bXzmVw9oP_xUG63XScV7I8&jsE@{`!z~2V9qD-1!i-1Frvu z-uL~D-hW(%*UpE(A?W{f8K7$TOevv4jWo5O$GV;bg|0crsD>%=gn*;@k`ds|=fHmi z!Il04x%)YCfTsZtfvH8CAQ9k; zDEg}&Aa>&cSqy%@L7_W^F6uUob_HKIJrZacQ>_dl0OeX`c!?dp`qjrURTiev5R$=%yUf}FjR=0Re*I``UXBUr*A5h zlTk=d1;Ty9GJkSkWy%XCiLgape_AFvA>?{DM5j#$nCnHj%6Ns3kba=I`I4_W<}B>K z_$=D4lK%+>BLldjHi-U)@ZVKXndAL=-jl*R&|bVF_6o35K}UgQyJgf$v;daTsZ9|H zHc(ReDdkD41NrrPVEo|_pFe{Cky>Eg4$5@%*0qtJp`u$-yxXSgSq|nZqIYp!BBs>Q zT4fxC4|emX7ras{b?gG{;MzgvrE%Bq@5zmz59v*K-HHKQLe}Lf{WF z{hcwjxC;nV`mFjA<2ZOO+;6@@R!F&b0Q6)_;n@&LhUXQ_U($9>Q4zvbM5M0J}PDLZ$AN1E2fav^$T(St@IXlQt!6!W8hcfUZlZEI*-4^#%f4!2ZXK#NM6OQe?lD}`+Mhz4d!{3Bw zj8)We?6X#ox|&)wP~q*Zm{C4on*+vqH4vQ2E~1{-QhQFb1f4j@L7*iuAf#MUb9)bP zlAYp@NaX#gg(+Ta`!*`N<)-8I?S(y%4m{}XR7j^;oa(-8+W4yE^FJg7Vg-!QPuP~@ zViy1ph;Q$yucAoDC?1RVi+7prKOhv*62zWW%!Hl~i>oqtN>2^^C17B4xrp0-u!<}+ z6oXL2tK-04S@qOl)D(jqk>HO^T;oU#-#3kk*44QoqZX{RcwRaisO}sX z6~xnb5;0qz>Yf8xxZPbo&$PjJ{eXwOa`G_&m`NZ2=lLcksby+W)wRgrC0hUsX-&2g z(`rUm02@^GmN-m$Hf|&Gwv+?G=bLoew>2Rn7IX{pkL$JV2hF~Jea~(F`L))hlD9)b5E+2woqE3a3`BJ(&9&N&w#WB9)%^sL5FaHs^DAuVATjbTxU)v3Vc zf~gGjzX$0x(AQE6Jex_4flYDxJ^`kZ;@$`9hi~&+=WdfofwhyuzQQ$=ygLb~NDc%gsz7a5@yEV+vM!fk_yQ5reWozHEzdtgE9(B)Vt5B+$f_V@ zcM_4z6@^}T&VS-|nrQ3#shQ(L)d%vz^9F-`P=BjuzmH>@9n(20YVQs)Y=Pa?ZEfmb@0NUE2aqtM%=on{$nPBO zyrAO!tkrE54+Qj|z3P_+*GiiHYpq^BX!ol~rhb$ucw5)~DgFJvco2(z>0qia_gDNE zC9joihp=bGLVBL#7f}#o@n7F;eCK=f9yltc`AaYTt;Lx!{B|4Vcj|elzdstumeOJ= zqykMWtn-^C6crV7-rbu>P3|Zm!Y(O)R|wKZR`TUGM+*R2sH1cBmz$6xOP>YBMF0uO zT!q9J4dK-ln=e&>Jkn;9nI4HN!`BO%YPq}}%%{wC(e>^o!!Wrk&yfi1nUcEgrf4w!6Ub@POCpAiMclNti3(^-_y07an4! zMZJNU=WoN!eCLftpG-v|=pf%*u`K5{f)GL6Z(l(a%~eq5sqM<=B>ZW4*#aS)%OuPX z<{{nJkLo8ecSzu?U_SY{C>WzB_wwSK;}FxZ@X9mY+FDr$@wH0&Tnr_k7GDsDE|-_nl=UNCKtO69$v`)5Q?~~!Mb_XSC5_6 z9NUEm+&=)pn&htq^IL(cpWeC0H}>o4iFo`Al>FCOEBG7u#yyCPYywOBrzQ`B_*WpZ z6CcR`-c|H=mc!rj_O|U3tovBxzdaoTyy%Cd|KCXgGU&vv{P+SM8@S5;@;hawq`@tr za0mZ=A8EY#=vPDFAI|f`oA^(kpMZKp`J~s`>g3x2b)%Z;vMTNYp-Xy%QBgWVFpAo8 zEI4{7h3Nb&I=dwQ4Fy>QAX-8&^|AM-B+Ajx%caq&zOF#2?c9gv`_VYH)7bE0fyF;L{l@$&F%6;!8? zd3Nyl#Z$2`(TX8O?P~%dPkSUb8FcN&%gY|l<%HV0oCVG@wQMUu5mV(0S#wP^adw}L zcD)?P_Flu~cm-wO?BrT8AG>kC<%?;w%^-v|GWB9z2cJK-jm~m{{LC0)APQ}5EHuLu zHar1NU562;4N0iTYY{KPg}0j^XmG&AUNo5qe<|oUc0ovmbUQtEl zmpKSq@@JJ!q?rf_%4x$DBR0eaan@V^j#nBj!~s_DBHoBW4mdklKS(!~_7WdbhQRgivA#u!d|wllFiPX zLNIjSG5yVW5fne^xvife2PEW0iHj3X6hhy{a$*n4y)7I-uWPN0)<+#1stMwf_@m1> zOwO18S_GgfbMQ1t)piHu?CVe-5^071v(P%&2`Azg7?C?wC2(=n^vO=xQ51jE4-m(HLGt#N8ik8AG9i?wvsEXXDtM2@vI zL$Hb94vL=!XFp8Rcu`5(3>K=BWz&V)+$l<>G1#LymdhUf;I#|^FZPSu7(R#Zb&0kq z)I3NppfVT2PNMk|Np_~30qeUV5uJrB{S0W5uen)HDd0lRk#wgngq}N*UBEw0PjNM{m7!mpH-;t2Fb=HAPzk3)%{)k1#M+cxu!A$b9eQJdcnAk=z zpO=;{!SLRn0q!8rAQeP?jsgSbSP_BAfLe<6f#*Wgj@;jYN~wOE3_CFF+H*0P|LG>* zx~cIiQv9!U6V0?^@cc%ce;;i-WV_*WJBRmgL^*1wPrZ}n{(tz`fB5*C#ls&7lV{Js zgsBM>oH-6{#61JRAkxSo6H(6;=K#G%5}7l|$*1l>H*qW?VqIfls-KHXoI|AQ)Z|!N zXo3FZ46diZ>o|t!;`M-eLz=8W7b}NAeS00~Kn4D0$ri0(^P`xM6w(1K-T8fP&@c_* zq>{$ig3<)y#vPRG;z7h0^Wf)u9WK-jB6`|pRzZiBU#~6LMmc{yp{qu;`=|8I8s!`F zb#=>s%IS!kz#kr^%c6E;%qWd~?qi}BV>eJ58MZNMLDi-kvX44&Yny{<_FG0@+5a!_;F8Q8t-;&|&hD6q0F5FUrJ%4U3_p7AhP^n=XOEdZum z*tKu(TPAb=eIKKv{s>;G6eDfHd2bzuuvmz(H5^-zC1NBQ+>Ghn11lw_u}) zIm-%4N*+dZ$T=4XS*8_iCPmx&LLf4$SlHmtN9G+*~dF0jvU1Gm21#^(3Fbr-?n z5W9l##N3@l;=B{X?t;$nV)s9(lbz2x|5sHz>pIttI{z)B^53*Rck(5CKj8E-i|gWKBVa#gFnhV+*$ z@b+Dh=;l!*0gBKs$Q)7&do25dwVK^HE$M&!s3fD826v3s#^= zVKOy(_ah}DqX&W9+yLi};^EnnzebcLBO+rK=)3vVOK{c~lM&9sX%Sxxxr3V!FG3EV zA|M(uBNq5Ah%MGZNKNeL&@S{xf~yenQK{f`x~{O|vMsWOb#(TMxIv4cE)_;nQr)bAntoP0$K-u?~H2VmwZ5zGBvkYZ*XDF=Eoaet6jT^o=J~ zptI5O_1?X)3l~-`OLE-;yUOb%(3*41JYz$U>=4(X^!3g4*&5g&>W*g=K8zn`6e%xF zScCkmZ%9rWk`c0pGf#L0P)e_kzH%_kYq;VE-M<<-XOGWpyuDT10)PONoF9S+emm&< zi0TU*8lyt?;0;E&FS1fUCK`+-&Kc&J@iJ!c|#4OMNoxyjXw9g+vjA#4yRd{ z9dbtwTy*zyeRi|~NeDk|%A4pNw&(Ck4dQGQ_#@gIf`yQLk_7r-MO-I)%cKm8*`_MU zgafVR0)R*y9uj_tGnIzkfVexmDTAE&pWxJ~hsvvl z&>%GuaL?hK_JFdw;2Xg9aL*y%gg^nd&9x?P>UDvUmqvr|ww69F6yXg(LFgn;+TSck zj;!H?2R26d{Je`$YL5GlsO^O_N_452tP)wDI;LCdxP4ql1lZf)T(~3lPv*1K zP&6KnlN}tkaJpgJH1C#57sybjI)&JD)-aX|IudbEEM}RVa^ek$cZD3J+E`2$