# Analysis Request: Extended Timeout for Shadow Orders **Status:** Completed **Date:** 2025-12-20 **Priority:** Medium --- ## 1. User Description & Query **Goal:** Extend the Shadow Order timeout to **10 minutes (600s)** to capture the "Mean Time to Execution" across different market conditions. **Reasoning:** Instead of failing fast (which assumes Maker is bad if not instant), we want to gather data on *how long* it actually takes to fill. This helps optimize the timeout later. ## 2. Agent Summary * **Objective:** Modify `clp_hedger.py` to use a long fixed timeout (or much longer dynamic timeout) for shadow orders. * **Risk:** "Success" at 9 minutes is effectively a "Failure" for hedging (Delta Drift). * **Mitigation:** We are collecting *data*, not executing trades. A 9-minute fill log is valuable data point (it tells us "Maker is impossible here"). ## 3. Main Analysis ### 3.1 Data Value vs. Hedging Reality * **Hedging Reality:** If a hedge takes > 30s to fill, the price has likely moved significantly. The "Hedge" is no longer hedging the original risk. * **Data Value:** By waiting 10 minutes, we can generate a distribution curve: * *50% fill in < 5s* (Great!) * *30% fill in 5s-60s* (Okay for stable markets) * *20% fill in > 60s* (Terrible) * *If we used a 60s timeout, we would just see "20% Failed", losing the nuance.* ### 3.2 Implementation Strategy Instead of a complex dynamic timeout for now, let's set a **Fixed Long Timeout (600s)** for the Shadow Simulator. * **Why?** We want to see the *actual* fill time for every order, not cut it off artificially. * **Logging:** The log `filled in X.Xs` becomes the primary metric. ### 3.3 Memory Impact * Even with 1 trade per minute, 10 minutes = 10 items in the list. * Memory usage is negligible (<1KB). ## 4. Conclusion **Recommendation:** Switch the Shadow Order logic to use a **Fixed 600s Timeout**. * This turns the simulator into a "Fill Time Data Collector". * We can analyze the logs later to find the "Optimal Timeout" (e.g., "95% of fills happen within 45s, so set timeout to 45s"). ## 5. Implementation Plan - [ ] **Step 1:** In `clp_hedger.py`, replace the dynamic timeout calculation with `timeout = 600`. - [ ] **Step 2:** Update logging to ensure `fill_time` is prominent.