How it works
Every number on this site comes from one daily feed produced by SahastaDirectionality (SD) and its backtester. The site only filters, sizes and sorts it for you. Nothing here is investment advice.
1. The daily feed
After each U.S. close, a runner computes SD for every name in its universe, finds today's setups for each strategy, and attaches the backtester's numbers to each: probability of profit, expected return per dollar committed, and each strategy's scorecard at account sizes of $5k, $25k, $100k and $1M. The backtests trade each year with SD's models refitted only on earlier years, so no year is graded by a model that saw it. Option trades are sized in whole contracts, which is why small accounts cannot take every trade.
2. What your answers change
| Risk level | Largest loss per trade | Low-risk share | Medium | High |
|---|---|---|---|---|
| 1 · Protect capital | 0.5% of account | 80% | 20% | 0% |
| 2 · Cautious | 1% | 60% | 35% | 5% |
| 3 · Balanced | 2% | 40% | 40% | 20% |
| 4 · Growth | 3% | 25% | 40% | 35% |
| 5 · Aggressive | 5% | 10% | 40% | 50% |
Default blend. Each strategy has a risk class (low, medium, high). Your risk level gives each class a share, as above. Within a class the share is split in proportion to each strategy's backtested Sharpe ratio at your account-size bucket. A strategy gets no default weight when it is a benchmark (buy-and-hold yardsticks are shown for comparison), when its out-of-sample backtest is negative (Sharpe not positive, or negative expected value per trade; these are flagged "negative backtest" and never blended by default: today that is QuietCondor, FireVertical and SdRouter+Condor), when none of its backtested trades were affordable at your size, or when it trades options and you have not both enabled options and confirmed you understand they can lose 100%. Weights are then scaled to sum to 100%. You can override any weight on the Strategies page.
Sizing a trade. Your per-trade risk budget is account × largest-loss %. The strategy you weight most may use all of it; others use budget × (their weight ÷ the largest weight). Options: contracts = ⌊budget ÷ most a contract can lose⌋. If that is zero, the trade is hidden and the reason is shown. Stocks: dollars = account × min(weight, 1 ÷ your position limit), and also capped so a 20% fall would not exceed your loss budget.
Stock strategies publish a target portfolio each day. Each one in your blend gets account × its weight; its top targets (up to your position limit) share that in proportion to their target weights, in whole shares.
Return goal. A trade is hidden when its backtested expected return is below your annual goal scaled to its holding time (goal × days ÷ 252).
Probabilities. When the feed gives a probability of profit per account-size bucket (costs and affordability differ by size), you see your bucket's. Otherwise you see the single backtested figure. The site never adjusts a probability on its own.
3. Stock picking
Score = SD weight × multi-timeframe SD + sentiment weight × sentiment + long-term weight × P(up over a year), with weights renormalized and missing inputs treated as a neutral 0.5. Names SD flags as sell are never picked. Selection is greedy by score with caps on the share of names per sector, per industry and per non-U.S. country, and a minimum U.S. share, like Thatha Stocks. Position weights tilt equal weight by score, between 0.5× and 1.5×.
Entry and exit points come from SD's timing model: for a chosen certainty and window, the price the stock touched with that frequency in similar past readings, and how often such a limit filled. The fill odds are calibrated out of sample, but waiting with a buy limit did not beat buying now on average: the misses cost more than the fills saved. Sell limits held 21 trading days or longer helped slightly. Timing exists for SD's 125 core names and for the names Thatha Stocks selects; the other ~14,000 listings carry SD readings only.
4. Your holdings
Import your broker's positions CSV. Only symbol, quantity and cost basis are kept; cash, money-market and total rows are skipped, and lots of the same symbol are merged. Each holding shows SD's readings and exit timing (a sell limit and its backtested fill odds). SD's sell verdict is experimental and off by default: tested walk-forward, the names it flagged went on to outperform the ones it kept, so the site never treats it as advice to sell.
5. Email
If you turn notices on, you get at most one digest per daily feed from directionality@sahasta.com, and each item is announced only once (a flagged holding at most once a month). Every email has a one-click unsubscribe link. Mail goes through SahastaMail's internal delivery, which today reaches SahastaMail-hosted addresses only.
6. What the evidence does and does not say
- SD's direction calls are right about as often as "the market goes up": about 57% at one month from 2019 on. They do not beat drift.
- SD's real skill is the size of the next move. The strategy built on it, buying a straddle when price is coiled and SD expects a bigger move than options price in, is the only SD strategy with a positive backtested expectancy. It still loses on most individual trades and wins through a few large ones.
- The single-stock option backtests price options from realized volatility, which cannot see earnings premiums, so they are likely optimistic.
- The universe is today's surviving large companies, which flatters long-only stock strategies.
7. Your data
We store your email, a salted PBKDF2 hash of your password, your answers and settings, imported holdings, and a log of emails sent. Sessions are HttpOnly cookies; only a hash of each session token is stored. You can delete everything from Settings at any time.