troubleshooting & FAQ
Common setup resolutions for desktop plugins, browser tab sleeping, Windows DLLs, Java runtimes, API rate limits, and WebSocket reconnections.
This guide provides troubleshooting solutions for desktop integrations, web platform latency, API connectivity, and synthetic futures pricing.
Web Platform & Live Latency
Browser Tab Sleeping & Latency Spinner
If the latency indicator in the bottom-right corner displays yellow/red or large timestamp delays when switching back to the browser tab, the browser has throttled background JavaScript execution.
Resolution:
- In Google Chrome / Brave / Edge, navigate to Settings → Performance.
- Under Always keep these sites active, add:
https://www.gexbot.com - This ensures uninterrupted real-time WebSocket tick processing and chart rendering.
Desktop Plugins
1. Windows DLL "Blocked" Security Attribute
Windows blocks .dll files downloaded from the internet. Blocked files fail to load in ATAS, Sierra Chart, NinjaTrader, or Quantower.
Resolution:
- Open PowerShell as Administrator.
- Run
Unblock-Fileon the downloaded DLL:Unblock-File -Path "C:\Path\To\Gexbot_ATAS.dll" - Alternatively, right-click the
.dllfile in Windows Explorer, select Properties, check Unblock at the bottom, and click Apply.
2. Sierra Chart DLL Location
Sierra Chart requires custom studies to reside in its data directory.
Resolution:
- Copy
gexbot.dlldirectly to your Sierra Chart Data path (typicallyC:\SierraChart\Data\orC:\SierraChartInstance_1\Data\). - In Sierra Chart, click Analysis → Build/Open Custom Studies DLL to verify compilation or load status.
- Configure all parameters in the Settings and Inputs tab (not Subgraphs).
3. Bookmap & MotiveWave Java Runtime Setup
- Bookmap: Install Java 17 or higher. Add the add-on through the in-app Add-ons manager.
- MotiveWave: Ensure MotiveWave is closed before placing the JAR in the
Extensionsdirectory.
4. NinjaTrader 8 Compatibility
- NinjaTrader plugin requires NinjaTrader 8.1+ (64-bit).
- If upgrading, remove legacy
Newtonsoft.Json.dllfrom the NinjaTraderbindirectory before importing modern assemblies.
Developer API & WebSocket
1. Daily Quota Reset Schedule
- Daily API request quotas and hourly burst rate limits reset every night at Midnight US Eastern Time (00:00 ET).
2. HTTP 429 Too Many Requests
If your application exceeds your subscription rate limit, the API returns status code 429.
Resolution:
- Inspect the
Retry-AfterHTTP response header. - Implement exponential backoff in your HTTP client:
import time, requests def fetch_with_backoff(url, headers, max_retries=3): for attempt in range(max_retries): response = requests.get(url, headers=headers) if response.status_code == 429: wait_time = int(response.headers.get("Retry-After", 2 ** attempt)) time.sleep(wait_time) continue return response return response
3. WebSocket Handshake Timeout & Reconnections
- The client URL returned by
POST /v2/negotiateexpires after 15 minutes if not connected. - If the WebSocket disconnects, negotiate a new client token via
POST /v2/negotiatebefore reconnecting. - To modify group subscriptions on an active connection without reconnecting, send a
PATCH /v2/negotiaterequest.
Synthetic Futures Pricing & Basis Offset
Why does SPX 5,000 not equal ES 5,000?
Cash indices (SPX, NDX, RUT) and equity index futures (ES, NQ, RTY) trade with a basis offset.
Basis Offset Factors:
- Dividend Yield Drag: S&P 500 dividends reduce the future cash value.
- Cost of Carry / Interest Rates: Short-term interest rates increase the futures price relative to spot until expiration.
- Fair Value Basis Formula:
Futures Price = (Cash Index × Multiplier) + Basis Offset - Historical Replay Calibration:
When calibrating historical basis for replay charts:
Use the Level Converter to convert strike levels automatically.Additive Offset = Futures Price - (Spot Price × Multiplier)