Automated Trading

TradePartner: Automated Options Trading Platform

Self-driving trading platform built on a simple promise: help active traders make more money while spending less time at the screen. Rule-based options and stock strategies run against a live Tradier or Schwab account, with SmartOrders™, SmartFills™, and SmartShare™ handling entries, exits, fill optimization, and strategy sharing. Used by 1,000+ trader accounts across Tradier and Schwab.

The Spyrol Group LLC logoClient: The Spyrol Group LLC (US)Ryan Jones, CEO13+ year client
TradePartner overview dashboard showing open positions, working orders, and the trader's connected broker account

1,000+

Active Trader Accounts

60,000+

SmartOrders Executed

8 Years

In Production

The Challenge

Active options traders missed entries and exits because they couldn't watch the screen every minute their strategies needed them to

Multi-leg spreads behaved as four scattered orders in the broker, with no single P/L and no clean way to roll or close as a unit

Traders were locked into one broker's tools and workflows, with no way to bring the same automation to whichever broker they used

Systematic strategies were duct-taped together with spreadsheets, price alerts, and manual order entry

Our Approach

Ryan Jones came to us after five agencies had taken months and his money without delivering a working proof of concept. The trading logic was complex, the broker integrations were fragile, and the timing requirements were unforgiving. We shipped the POC in weeks, followed by the first production version, and have been running the platform with him ever since. Today we own the full stack end to end: broker integrations, automated execution engine, real-time data layer, and trading UI. The latest phase rebuilt the trader-facing dashboard from scratch on a modern Angular 21 stack, developed on a parallel branch and rolled out without disrupting the live platform that thousands of subscribers use daily.

Key Features

SmartOrders™ watch the markets for conditions you define (price levels, indicators, time-of-day, option Greeks) and place the order the moment those conditions are met

SmartFills™ work the bid/ask spread automatically on every order, getting better fill prices than a static limit order would

SmartShare™ lets traders follow each other's strategies. Shared trades land in the recipient's account ready for confirmation, automatic execution, or editing

Spread Matrix gives traders a visual grid for constructing complex option spreads. Define a spread pattern once, see it priced live across every eligible strike, and place trades directly from the grid. Patterns auto-export and reuse across watchlists

Spread Manager to track, roll, and close multi-leg option spreads as a single position with one unified P/L

Works with either Tradier or Schwab as the connected broker, with the same interface and automation regardless of which one a trader uses

Real-time price streaming and live order status with sub-second latency

Performance Tracker journals every executed trade across both connected brokers, breaks down multi-leg P/L per leg, and renders performance over time as both a sortable grid and a chart, so traders see which strategies actually make money without exporting to a spreadsheet

Admin portal for user management, system monitoring, and execution analytics

SmartOrders configuration screen with rule definitions and live chart
SmartOrders™ builder. Traders define multi-rule entry and exit logic with a live chart preview, then the platform watches the market and triggers orders the moment conditions hit.

Scope & Scale

1,096

Broker Accounts Connected

2

Brokers Integrated

380,000+

Broker Orders Executed

Modernization

Framework

Before: Angular 12 with NgModules

After: Angular 21 Standalone + Signals

State

Before: BehaviorSubject with manual subscribe

After: @ngrx/signals stores

Styling

Before: Component CSS, dated theme

After: Tailwind CSS 4 with design tokens, dark-first

Real-time

Before: Polling and scattered alerts

After: SignalR hubs for notifications and price stream

Build

Before: Legacy Angular CLI (slow)

After: Modern Angular 21 esbuild with sub-second HMR

Tech Stack

.NETAngularSQL ServerSignalRRedisTradier APISchwab API

How It Fits Together

TradePartner architecture. Trader UI flows to SignalR and REST API, then to the SmartOrders Engine, then to a Broker Adapter, which talks to Tradier and Schwab. Redis, SQL Server, and Admin Monitoring support the SmartOrders Engine.
Trader UI → SignalR/API → SmartOrders Engine → Broker Adapter → Tradier or Schwab. Redis holds real-time state, SQL Server persists order history, and the admin layer gives operators system visibility.

Scroll horizontally to see the full diagram.

Technical Challenges We Solved

Broker abstraction across Tradier and Schwab

Unified execution layer so traders use the same SmartOrders, SmartFills, and spread workflows regardless of broker, while handling each API's authentication, order-status model, and failure modes separately.

Sub-second real-time execution path

.NET, SignalR, Redis, and SQL Server keep market events, order status, and dashboard state moving without falling back to slow polling during active trading sessions.

Multi-leg spread management

Modeled complex option spreads as a single trading object instead of scattered broker orders, giving traders unified P/L, roll, close, and lifecycle controls across legs.

Automated order safety

SmartOrders evaluate rule conditions, broker state, symbol status, and fill behavior before execution. A trading automation bug does not just create a bad UI state, it can place a real order, so the safety checks run before the system commits.

Zero-disruption modernization

Rebuilt the trader dashboard from Angular 12 and jQuery to Angular 21 on a parallel branch, keeping the live system stable for 1,000+ trader accounts while the new UI was developed and rolled out.

The Result

1,000+ active accounts. 60,000+ SmartOrders executed. 380,000+ broker orders placed. 8 years live, every trading day.

Traders no longer babysit the screen. SmartOrders run themselves at sub-second latency, handling entries, exits, and rolls without manual intervention.

The new Angular 21 dashboard rebuilt the trader experience from scratch, replacing a dated Angular 12 and jQuery interface with a modern, dark-first UI built to scale with the product, not hold it back.

What Keeps It Running

TradePartner is not just a platform we built and handed off. It has been running in live market conditions since 2018, with real traders, real broker accounts, and real money moving through the system every trading day.

That changes the engineering standard. SmartOrders cannot fail like a normal web form. The platform has to monitor live broker state, order status, market data, user rules, and execution timing before it places or updates an order. When Tradier or Schwab changes behavior, slows down, rejects an order, or returns an unexpected response, the system has to fail clearly, preserve the trader's state, and keep operators informed instead of hiding the problem behind a generic error.

We maintain TradePartner with that operating posture. Critical execution paths are monitored. Broker integrations are isolated behind adapters so one API's behavior does not leak across the rest of the product. Order history and execution state are stored in SQL Server, real-time trading state moves through Redis and SignalR, and admin tools give the team visibility into user activity and system behavior.

The recent Angular 21 rebuild followed the same discipline. The new dashboard was developed on a parallel branch while the live Angular 12 and jQuery system continued serving active traders. Releases were staged, reversible, and built around protecting the production trading workflow first.

Have a production system that needs to be built, rescued, or modernized?

Trading platforms, real-time integrations, broker APIs, and systems where downtime means real money. Tell us what's on the line.

Get a Free Quote