SignalAI

Trading types

Every strategy has a trading type. The type is the single most important thing about a strategy: it decides how the strategy is evaluated — whether it can hold positions overnight, and how its profit and loss is accounted. You don't write the type by hand; you pick it, and your strategy inherits the matching base class.

TypeStatusHolding horizonOvernight
Swing✅ SupportedDays to weeksHolds — carries positions overnight
Day✅ SupportedWithin one sessionFlat — every position closed at the session close
InvestingDefined, not yet availableMonths to years
HFTDefined, not yet availableSeconds or less

Only Swing and Day are available today. Investing and HFT are part of the model but not yet implemented; a strategy that asks for them is rejected with a clear message.

Swing

A swing strategy holds across days. It is funded once and compounds over the whole period — one continuous book. Positions are carried overnight, so overnight gaps are part of the result (a stop can be gapped through; you are not guaranteed the stop price). This is the classic "hold for a while" style: the equity curve compounds, and the headline numbers describe that single book.

Use Swing when your idea is "buy and hold this for days or weeks until a condition changes."

Day

A day strategy never holds overnight. Each trading day is an independent trial: it starts from the same fixed capital (no compounding from yesterday), the strategy is rebuilt fresh each session so indicators start cold, and every position is closed at the session close — resting orders cancelled, flat into the next day.

Because every day is the same size, performance is an additive book: the running sum of each day's profit and loss over the fixed base, plus the full daily distribution (win rate, best and worst day, mean and standard deviation). This is the honest way to evaluate an intraday idea — a compounding "hold forever" curve would be a fantasy for something that flattens every afternoon.

Use Day when your idea is "trade during the session and go home flat."

The type changes the numbers, on purpose. The same rules backtested as Swing vs Day produce different — and differently-meaningful — results. Pick the type that matches how you would actually trade the idea.

How you choose

You don't set the trading type as a run option — the strategy declares it, by returning TradingType::Swing or TradingType::Day from trading_type(), and the engine accounts for the run accordingly. When you build a strategy in the Studio or with Claude, it asks which fits your idea and writes the right trading_type() for you.

Next: Strategy lifecycle.