Inspiration
Test Three was inspired by the need to merge speed, autonomy, and scalability in a trading environment where milliseconds matter. Earlier versions relied on synchronous loops that blocked execution or couldn’t scale across multiple product pairs.
Test Three set out to create a fully automated swarm of arbitrage agents, each running independently, scanning markets, executing trades, and managing risk in real time, no pauses, no waiting, no crisis.
What it does
Test Three implements a hybrid asynchronous arbitrage engine with:
Parallel Arbitrage Agents
Each product pair (e.g., NVDA/NVDA_DUAL) runs its own async strategy:
- All strategies run simultaneously via
asyncio.gather() - No task blocks another
Continuous Order-Book Monitoring
Every agent constantly fetches:
- Top bid/ask for the main instrument
- Top bid/ask for the dual instrument
Real-Time Arbitrage Detection
The strategy compares:
- Buy dual → Sell main
- Buy main → Sell dual
Triggers execution when spreads are profitable.
Safe Marketable IOC Execution
Through your helper:
place_marketable_ioc_order(instrument, volume, side)
- Ensures instant fill or cancellation
- Eliminates unwanted exposure
- Handles empty or unstable books
Position Alignment
The strategy checks and prints current positions each iteration to prevent drift between related instruments.
Robust Error & Disconnect Handling
If the exchange forces logout (as your logs showed), the system:
- Catches the exception
- Reconnects
- Continues running other strategies without interruption
How we built it
- Async event-loop architecture with
asyncio, allowing independent execution of all arbitrage pairs. - A universal IOC helper that determines liquidity, selects correct order direction, and executes safely.
- Hybrid arbitrage logic that blends spread detection, order execution, position management, and exception handling.
- A swarm-runner (
main()) that launches all strategies simultaneously and keeps them alive.
Challenges we ran into
- Developing a market making strategy to help shifting markets
- Dealing order of buys
- Optiver Riddles
Accomplishments that we're proud of
- A fully autonomous, scalable arbitrage swarm
- True concurrency, non-blocking
- Clear execution helpers that simplify complex order logic
- Ability to scale to any number of instrument pairs
- Safe position alignment preventing runaway exposure
What we learned
- Async logic drastically improves responsiveness for trading engines
- IOC orders are essential for fast and safe execution
- Even simulated markets introduce real-world challenges and are unpredictable
- Clean modular design simplifies debugging and iteration
- Swarm-style agents require strong fault-tolerance to run continuously
What's next for NoCrisis
- Adding a market making strategy
- Solving the damn riddle