# Analysis Request: Dynamic Timeout for Shadow Orders **Status:** Completed **Date:** 2025-12-20 **Priority:** Medium --- ## 1. User Description & Query **Goal:** Optimize the Shadow Order simulation by making the "Time to Live" (timeout) dynamic based on market volatility. **Logic:** * **Low Volatility (Slow Market):** Orders sit on the book longer. Give the shadow order more time (e.g., 60s) to fill. * **High Volatility (Fast Market):** Price moves quickly. If it doesn't fill instantly, it likely ran away. Timeout should be short (e.g., 10s) to fail fast. ## 2. Agent Summary * **Objective:** Implement a dynamic timeout calculation during shadow order creation. * **Formula:** Inverse relationship with volatility. ## 3. Main Analysis ### 3.1 Volatility Scaling We already calculate `vol_pct` (5-min rolling StdDev). * **Base Vol:** `0.05%` (0.0005). * **Base Timeout:** 30 seconds. **Formula:** `timeout = Base_Timeout * (Base_Vol / Current_Vol)` **Examples:** * **Low Vol (0.025%):** `30 * (0.05 / 0.025) = 60s` (Max cap). * **Normal Vol (0.05%):** `30 * (0.05 / 0.05) = 30s`. * **High Vol (0.15%):** `30 * (0.05 / 0.15) = 10s`. ### 3.2 Constraints * **Min Timeout:** 10s (Give at least some chance even in crazy markets). * **Max Timeout:** 60s (Don't track stale orders forever). ## 4. Conclusion **Recommendation:** Implement this dynamic timeout alongside the shadow order logic. It makes the "Success/Fail" metric much more realistic for a Maker strategy in different regimes. ## 5. Implementation Plan - [ ] **Step 1:** Add `get_dynamic_timeout(vol_pct)` helper method. - [ ] **Step 2:** Use this timeout when creating the shadow order entry.