Alphanume Learn
Quant Trading Curriculum

Short Selling Course With Data: Borrow, Dilution, and Honest Backtests

A data-driven short selling syllabus covering borrow mechanics, corporate events, point-in-time tests, position sizing, and squeeze risk.

Alphanume Team · August 24, 2026

A short selling course with data has to teach two systems at once. The first is the research system that identifies securities whose prices may be vulnerable. The second is the borrowing and risk system that determines whether the trade can be opened, carried, and survived. A backtest that models only the first system is not conservative. It is incomplete.

This is why short research cannot simply invert a long strategy. A long position can wait through a drawdown if the thesis and financing permit. A short position faces changing borrow fees, recalls, buy-ins, hard-to-borrow restrictions, unbounded mark-to-market loss, and crowded squeezes. The course should put those mechanics before the first equity curve, then connect them to dated corporate events such as dilution registrations, financing agreements, lockup expirations, and default disclosures.

Start with the borrow ledger

A short sale begins by borrowing shares and selling them. The position owes those shares back, and the lender can charge a fee or recall them. Availability and fee are state variables, not fixed properties of a ticker. A name can be easy to borrow during the research period and unavailable when the signal fires. It can also become expensive after entry, turning a modest expected edge into a negative carry trade.

A serious course therefore creates one borrow record per ticker and date. At minimum it stores availability, fee or rebate, source, timestamp, and whether the quote is indicative or firm. It explains that broker feeds differ and historical borrow data are often incomplete. Where exact history is unavailable, the backtest should run explicit scenarios rather than silently assume cheap, unlimited inventory.

Short-side frictionBacktest representationFailure if ignored
Borrow availabilityReject entry when inventory is unavailableSimulates positions that could not be opened
Borrow feeAccrue daily using a dated fee series or scenariosOverstates returns in crowded names
Recall or buy-inModel forced close under declared ruleAssumes the trader controls the exit
Corporate actionAdjust shares, cash flows, and event datesCreates false jumps or missing liabilities
Gap and squeezeUse portfolio limits and stress lossesLets one name dominate the whole strategy

Use corporate events as hypotheses, not labels

Dilution is a useful example. A shelf registration, an at-the-market program, a convertible security, and a resale registration all involve filings, but they do not create the same immediate supply. The signal has to parse what security is registered, who can sell, how much capacity exists relative to the float, and which later event makes sales possible. Merely labeling every registration "dilution" produces noise and invites hindsight.

The same discipline applies to distress. A late filing, going-concern disclosure, covenant breach, exchange deficiency, and bankruptcy petition represent different stages and mechanisms. Define the event in fields that code can inspect. Save the filing timestamp, form, accession identifier, relevant amounts, and a short classification rationale. The research question should be narrow enough that another person could rebuild the cohort without reading your mind.

  • Supply events. Shelves, at-the-market programs, converts, warrants, resale registrations, and lockup releases.
  • Distress events. Defaults, covenant breaches, going-concern language, delisting risk, and bankruptcy steps.
  • Promotion context. Abnormal attention or price movement that may interact with future supply.
  • Control fields. Float, liquidity, market capitalization, sector, prior returns, and volatility measured before entry.
  • Borrow fields. Availability, fee, utilization if available, and the observation time.

Build a point-in-time event study

For each event, define the first tradable timestamp and calculate forward returns from prices that occur afterward. If a filing lands after the close, an entry at that same close is impossible. If a classification relies on an amended filing posted next week, it cannot inform the original trade. Keep raw filing time separate from derived features so the audit can show when each fact entered the dataset.

Start with an event study rather than a portfolio simulation. Measure median and mean abnormal returns, hit rate, dispersion, and worst adverse excursion over fixed horizons. Compare the cohort with a matched control or broad benchmark. A negative average can be driven by market weakness, sector concentration, or a few collapsing names. The study should show the distribution and the count at every horizon.

events = events.sort_values("filing_time")
events["entry_time"] = next_tradable_time(events["filing_time"])
events["fwd_5d"] = price_at(events["entry_time"], offset=5) / price_at(events["entry_time"]) - 1
events["short_return_5d"] = -events["fwd_5d"]
events["net_5d"] = events["short_return_5d"] - events["borrow_cost_5d"] - events["trade_cost"]

Turn the study into a survivable portfolio

Short portfolios need hard concentration rules. Cap initial weight, aggregate exposure to correlated themes, and size with both ordinary volatility and a gap stress. Liquidity constraints should be based on a conservative share of volume, not on the assumption that a small quote can absorb the full position. A position that is easy to enter during calm trading may be impossible to cover during a squeeze.

Then attack the backtest. Raise every borrow fee, remove the best few winners, delay entry, worsen fills, and impose a forced exit on unavailable inventory. Check whether delisted names and bankruptcies remain in the historical universe. A result that survives only because failed companies disappeared from the database has committed survivorship bias in the direction most favorable to a short strategy.

  1. Write the event definition and tradable timestamp before measuring returns.
  2. Assemble the raw event cohort with stable identifiers and preserve rejected rows.
  3. Run the distributional event study with controls and multiple horizons.
  4. Join dated borrow assumptions and remove impossible entries.
  5. Simulate portfolio limits, forced exits, costs, and gap stresses.
  6. Hold out later dates and publish the failures beside the aggregate result.

What this syllabus adds

This guide is intentionally different from the existing short selling backtest article. That article focuses on how to test a short strategy. This syllabus unifies the prerequisite borrow ledger with corporate-event classification, point-in-time cohort design, portfolio construction, and squeeze survival. It is a map of what the learner needs before a negative historical return becomes a plausible trade.

Begin with the shorting mechanics lesson because it establishes the liabilities that every later model must carry. From there, the quant trading curriculum hub connects the data, event-study, and risk modules around it. The standard for success is not finding the ugliest chart. It is building a short thesis whose data, inventory, timing, and maximum damage are all explicit.