Documentation

Setup, usage, and what normal looks like.

Two products, two guides. Each covers installation, how to read what it shows you, what to change and what to leave alone — and, for the strategy, the behaviour you should expect before you subscribe rather than after.

← All documentation

Before you start

You need a TradingView account with access to BINANCE:BTCUSDT.P data, one alert slot on your plan, and a way to act on alerts within a reasonable window.

You do not need an account on any particular exchange — where you execute is your decision. You do not need to leave a browser open; alerts run on TradingView's servers. And you do not need to watch the chart, since positions are typically held one to two days.

If you read one section, make it What normal looks like.

More subscriptions are cancelled from misreading a routine drawdown than from anything the strategy actually does.

Setup

  1. Open the right chart. BINANCE:BTCUSDT.P, 5-minute timeframe. This exact combination is what the published results were measured on.
  2. Add the strategy. Indicators → Invite-only scripts → Selepro Veltus.
  3. Check the status panel. Top-right of the chart. The instrument line reads BTC · M5 in grey when you are on the validated chart, and switches to the actual symbol with a ! in amber when you are not.
  4. Leave the defaults alone. They are the configuration that was validated.

Reading the status panel

RowWhat it tells you
TrendDirection of the Gaussian filter — the prevailing bias the system trades with
KNN SignalWhat the pattern classifier currently reads: bullish, bearish or neutral
RegimeEfficiency Ratio and its label: range, mixed or trending
PositionLong, short, or a dash when flat
PF · Win rateProfit factor and win rate over the loaded chart range

The Regime row is the one to internalise. In a range the system takes smaller positions and historically performs worst. In a trend it takes larger ones and performs best. Nothing is broken when losses cluster during a range — that is documented behaviour.

A note on PF and win rate. They are calculated over whatever range your chart has loaded, not the full history. Scroll to a different period and the numbers change. They are a live readout, not the published record.

Reading the chart

The trend line runs along price with a soft glow: teal when the filter reads up, pink when it reads down.

Arrows mark entries — up-arrow below the bar for long, down-arrow above for short. Smaller, paler arrows are early entries, taken on the bar where the filter flips with high classifier confidence.

Level lines appear while a position is open: initial stop, final stop and first target. They are drawn only for the live position, so an empty chart means the system is flat.

Optional layers are off by default and live in Display: classifier dots, filter flips, higher-timeframe levels, volatility shading. They add context and clutter in equal measure — try them, keep what helps.

Alerts

Signals arrive on 5-minute bar closes. Without an alert you will miss them. Create one alert, not four.

  1. Right-click the chart → Add alert, or Alt + A
  2. Condition: Selepro Veltus, then Order fills only
  3. Expiration: the longest your plan allows
  4. Notifications: enable whichever you will actually see — app push, email, or a webhook
  5. Create

Order fills only captures both entries and exits. Choosing Order fills and alert() function calls instead produces duplicates.

Alerts expire. TradingView alerts have an expiry date, and when it passes the alert simply stops with no warning. Put a calendar reminder a few days before yours expires — a missed signal is not recoverable.

What normal looks like

All of the following is documented behaviour measured across five years, not worst-case speculation.

Losing runs. Across 306 positions in five years, runs of one to three consecutive losers are ordinary — 32 runs of one, 13 of two, 9 of three. Four happened five times, five happened five times, six once, and seven once. Seven is the worst on record. These are counted in positions; each position exits in two tranches, and TradingView counts each tranche as a trade, so a run of five losing positions appears in a report as ten consecutive losing trades. Losses arrive in clusters rather than evenly spread, so a bad streak feels worse than the average suggests.

Flat stretches. The ten best trades of the year carry between 47% and 72% of that year’s gross profit, depending on the year. Most trades do very little, and long quiet periods are the normal state rather than a malfunction.

Drawdowns. 28.1% across the whole five-year period, with regime sizing enabled. Within any single calendar year the worst was 19.9%, in 2022 — the deeper figure comes from 2022 and 2023 compounding on each other. If a 28% drawdown would make you abandon the system, size accordingly before you start.

Losing years. Two of the last five: −13.5% in 2022 and −4.5% in 2023. The equity curve sat below its April 2022 peak for about 35 months before making a new one. The system recovered when direction returned to the market.

When to actually worry. Not during a drawdown inside the documented range. The signals that matter are structural: performance diverging sharply from the historical baseline over months, or the live log showing behaviour inconsistent with the published record.

Both are monitored monthly and published. You will not hear about it last.

Settings

Leave these alone

Gaussian period. Range-limited to 23–27 for a reason: robustness testing showed that pushing it to 30 turns the strategy from profitable to losing on the same data. It is the single most sensitive parameter in the system.

Engine parameters — K neighbours, bar skip, confirmation bars, KNN confidence. These were validated together. Changing one in isolation is not a tweak; it is a different strategy that nobody has tested.

Safe to consider

Regime-based position sizing (on by default) is the one modification that passed full walk-forward validation. It scales exposure with the Efficiency Ratio — smaller in ranges, larger in trends. Switching it off returns the system to flat exposure.

Display options change freely; they affect nothing but what you see. The HTF context toggle removes the higher-timeframe gate and produces more trades — not recommended without your own testing.

Position sizing

What the published figures assume. Regime-sized exposure: position value runs from 25% to 150% of account equity depending on the Efficiency Ratio, with 50% margin posted. 0.05% commission, 2 ticks of slippage, execution on bar close. Because sizing can exceed 100% of equity, the Properties tab is set to 2x leverage — that is the headroom the sizing needs, not a fixed multiplier applied to every trade.

How the strategy's sizing works. With regime sizing on, exposure is multiplied by a weight tied to the Efficiency Ratio — reduced when choppy, increased when directional. Average exposure works out around 0.65x of the base. Measured over the most recent 365 days on BTCUSDT.P: of 59 positions, 17 were taken at 25% of equity, 37 at 75%, and 5 at 125%. None reached the 150% ceiling.

Translating to your account. The strategy calculates position size from the equity figure in the Properties tab, not from your real balance. Running the defaults, the numbers on your chart describe a hypothetical account, not yours.

What we will not tell you: how much of your capital to risk. That depends on your finances, your obligations and your tolerance for loss — none of which we know, and none of which a strategy vendor is in a position to judge.

What we can tell you is what the system did under stated assumptions, and that a drawdown of 28.1% is part of its history. The sizing decision is yours, and it is worth taking to someone qualified if you are unsure.

Common mistakes

  • Running it on the wrong chart. Another exchange's BTC, or another timeframe. The status panel warns you; do not ignore the amber.
  • Expecting it on other assets. Tested unchanged on ETH across the same five years, it lost or broke even in four of them. That test was later found to be our error — it ran Bitcoin’s stop widths on an instrument that moves about a third more per bar; the correction is here. What remains true is that the published script is calibrated for Bitcoin, and the stop distances are the part that does not travel. Do not run it unchanged on another market.
  • Judging it in weeks. A month tells you almost nothing. Assess it over quarters, ideally a full cycle.
  • Changing the Gaussian period. See Settings.
  • Increasing size after a good run. Returns cluster; so do losses. Sizing up after a strong stretch is how a documented 28% drawdown becomes an undocumented one.
  • Missing the alert expiry. The most common and most avoidable failure.

Troubleshooting

SymptomCause and fix
No arrows on the chartThe system trades around twice a week. Long gaps are normal — check the Position row shows a dash.
Amber on the instrument rowYou are not on BINANCE:BTCUSDT.P at 5 minutes.
Numbers changed on their ownPF and win rate reflect the loaded chart range. Scrolling changes them.
The alert never firedCheck it has not expired, that the condition is Order fills only, and that notifications reach a channel you monitor.
A change made things worseReset: the settings dialog has a Defaults button at the bottom left.
← All documentation

Setup

Add it from Indicators → Selepro Flow — Market Regime, on whatever chart you already use. There is nothing to configure to get started.

Flow is free and works on any symbol and any timeframe. The defaults suit intraday charts; tuning is covered below.

How to read it

Flow shows the same information in three places.

The bars are tinted by direction — teal for up, pink for down — with the strength of the tint showing conviction. A solid tint means price is moving efficiently. A pale tint means it is chopping and the direction reading is unreliable.

The ribbon along the bottom tracks the regime over time:

ColourMeaning
GreyRange — price is churning, direction is noise
AmberMixed — a move has started but has not established itself
TealTrending up, with conviction
PinkTrending down, with conviction

The ribbon is the part most people end up using. One glance left to right tells you how the market has behaved over the session: mostly grey means a sideways period, long coloured blocks mean a sustained move.

The status panel carries the numbers, and the rows that matter most are the ones at the bottom.

RowWhat it tells you
ER 14 autoThe lookback the indicator is actually using. auto means it is scaling with the timeframe.
DirectionUp or down, from the smoother's slope.
RegimeThe state, and in brackets how many bars it has held.
EfficiencyThe ratio itself.
HTFThe regime on a higher timeframe, picked automatically unless you set one.
R/M/T · 500bHow much of the window this market spent in range, mixed and trending. If the label reads · all instead, the chart holds fewer bars than the window and the figures cover all loaded history.
Max trend · allThe longest trending run in all loaded history — the most this market has ever given in one stretch.

Those last two rows are the reason to keep the panel on. Every regime tool paints the state of right now; this one tells you how long that state usually lasts on this symbol. If something ranges 80% of the time, you have just learned something concrete about whether trend tools belong on it.

The same four values — the ratio, the higher-timeframe ratio, and the percentages of time trending and ranging — are exposed to the Data Window and the screener, so you can sort a watchlist by them.

What the Efficiency Ratio measures

Distance covered ÷ distance travelled.

If price moves 1,000 points in a straight line, the ratio approaches 1.0. If it moves the same 1,000 points after 5,000 points of back-and-forth, the ratio is 0.2.

Both end in the same place; only one of them was a trend.

ReadingRegime
below 0.20Range
0.20 – 0.40Mixed
above 0.40Trending

Those boundaries are adjustable and somewhat arbitrary. They come from research on Bitcoin intraday data; other markets may sort differently.

Tuning

Regime lookback — bars used to calculate the ratio. Shorter reacts faster and reads more local behaviour; longer describes the broader condition. Ignored while the adaptive option above is on.

Regime smoothing — averages the ratio over several bars. Higher gives a calmer reading.

Confirmation bars — how long a new regime must persist before the display switches. This is what stops the ribbon flickering on every candle.

The trade-off is unavoidable. Faster settings tell you about a change sooner but flip more often, some of which will be noise. Slower settings give clean blocks you can read but arrive late. There is no correct answer, only the one that suits how you trade.

The lookback adapts on its own. A 30-bar window is two and a half hours on a 5-minute chart and thirty days on a daily one, so treating them as the same measurement is what used to make the reading go sluggish on higher timeframes. With Adapt lookback to timeframe on — the default — the window scales with the chart and the panel shows which value is in use, for example ER 14 auto. Turn it off if you would rather set the window by hand.

Using it with a strategy

Flow was built so it does not fight other overlays. The direction line is off by default for exactly that reason, leaving the bar tint and the ribbon, neither of which competes with a strategy's own plot.

Used with Selepro Veltus the two are complementary rather than redundant: Veltus draws the signal, Flow tints the context. The ribbon shows which kind of market the strategy is operating in — useful, because trend systems behave very differently in each.

If both status panels are on screen they will collide: Veltus draws its panel top-right and cannot be moved, and Flow now defaults to the same corner. Flow has a Panel position setting with five corners — move it to Middle right or Bottom left and the two stop overlapping. There is also a Compact panel option, three rows instead of seven, for phones and small chart windows.

What Flow does not do

  • No signals. No entries, no exits, no targets, no stops.
  • No prediction. The regime reading describes what has been happening, not what will happen next. A trending reading can end on the next bar.
  • It lags, by design. Smoothing and confirmation mean the label arrives after the change has begun. That is the price of a stable reading, and removing it just returns the flickering it was built to fix.

A directional reading is not permission to trade, and a range reading is not an instruction to stand aside. What you do with the information is yours to decide.

Alerts

Three are available, all about regime changes rather than trade signals:

  • Regime: trending — the market turned directional
  • Regime: range — the market turned choppy
  • Direction flip — the direction reading changed while the market was trending. It no longer fires inside ranges, where the slope changes constantly and the indicator itself declares the reading unreliable.

Set them the usual way: right-click → Add alert → condition Selepro Flow. They are useful for knowing when conditions have shifted without watching the chart. They are not entry signals and should not be treated as such.

Troubleshooting

SymptomCause and fix
The bar tint is invisibleYou are zoomed too far out — with hundreds of thin candles the tint disappears. Zoom in, or switch bar colouring off and use the ribbon alone.
The ribbon flickersIncrease confirmation bars, or regime smoothing, or both.
Everything reads greyMost likely the market genuinely is ranging — which is the reading, not a fault. If you turned the adaptive lookback off, the window may also be too long for the timeframe; turn it back on or shorten it.
It disagrees with my trend indicatorLikely, and not a fault. A market can be clearly heading up while the ratio reads range — precisely the situation Flow exists to flag.