Home/Work/Delight Equity

Equity research · Trading signals · Pakistan

Delight Equity

Six engines sweeping the exchange daily. Delivered, and in active use trading real positions.

The Delight Equity Signal Bots control panel: a watchlist header reading 239 stocks scanned by the board, EMA and SAR bots, then one card per component for the Report Board, EMA Bot, EMA200 Bot, SAR Bot, BB Bot and Below Book Value. Each card carries a run and a stop button, a start-at-logon checkbox, a log strip and the latest signals; Below Book Value is marked running while the rest are stopped.
Services
Software Development
Scope
6 components + control panel
Platform
Windows desktop
Model
Fixed scope
Status
Delivered · in active use

The challenge

Delight Equity wanted systematic buy and sell alerts on Pakistani equities: the same signals a trader would read off a chart, delivered automatically, every trading day, without sitting in front of a terminal.

Two constraints shaped everything. The exchange publishes no retail order or write API, so automated execution was never available, and building toward it would have been a compliance liability rather than a feature. And the suite had to run on an ordinary Windows machine with no developer setup and no ongoing maintenance burden.

What was delivered

A read-only market data client
The single component every other one goes through: prices, closes, klines, the full instrument list, market watch, index constituents and market-hours detection, with polite retry and backoff for the gateway’s transient failures.
Four alert engines
EMA 50/100 golden and death crosses; EMA 50/200 for the slower trend-defining cross; Parabolic SAR reversals as a stateless two-bar flip; and Bollinger middle-band breakouts.
A live board
The tracked universe posted as a single message and edited in place on each refresh, with per-name up, down and flat indicators and a breadth line. No channel spam.
A below-book-value screen
A fundamental research tool listing every name trading under book value, ranked by depth of discount, with distressed and stale-data names flagged and dropped.
A desktop control panel
Runs, stops and schedules all six components, tails their logs for live progress, edits the shared watchlist, and survives being closed without killing the engines.

Technical depth

The parts that were actually hard

Signals that match the chart

Parabolic SAR is path-dependent and cannot be reliably rebuilt from raw prices; our own reconstruction once disagreed with the reference chart on a live name. The engines now read the reference value directly, and moving averages are split-adjusted and verified against the chart to within roughly 0.1 to 1 point.

Processes that stay alive

Anything launched from a tooling session is killed by session cleanup minutes later. Resident operation was solved with WMI process creation, logon-revival shortcuts and direct launchers, so the engines outlive whatever started them.

Never double-posting

Each engine binds a dedicated localhost port as a single-instance lock; a second copy fails to bind and exits. The lock is per-machine, and the operational rule that follows from that is documented in the handover.

A backtest we reported straight

The backtester supports a proper out-of-sample split: warm on the first 70 percent of history, judge only on the last 30. It produced an inconvenient result, that across a strong bull market the default trend-following parameters beat buy-and-hold on only a minority of names. We reported that plainly and wrote the caveat into the delivered documentation rather than tuning until the numbers looked better.

Result

In daily use, trading real positions

Delight Equity trade from these alerts every session, and report a win rate of up to 80% on trades taken from the bots.

Reported to us by Delight Equity

What that figure is, and is not

This is the client’s own reported result, not a measurement we took. We have not independently audited their trade log, and we would rather say that than present someone else’s number as our own.

Note also that win rate and total return are different questions. Our own out-of-sample backtest, described below, found the default parameters beat buy-and-hold on only a minority of names across a strong bull market. A trend-follower can be right often and still trail an index it sits out of half the time. Both results are real, and we publish both.

The suite issues alerts, not advice, and no trading system guarantees a result. All trading carries risk of loss.

  • 6independent engines
  • 4,765lines of Python
  • 5 yrbacktest depth
  • 0third-party packages

Stack

  • Python 3.14
  • Standard library only
  • Tkinter
  • Webhook delivery
  • urllib / JSON feeds
  • CSV audit journals
  • JSON state machines
  • Out-of-sample validation

Capability used: Software Development

Bring us the difficult part.

The systems we are proudest of started as the piece nobody else wanted to quote on. Tell us what it is and we will come back with a scope, a fixed price, and an honest answer about whether we are the right people for it.