Backtester Guide

The NUSA TERMINAL desktop application for testing trading strategies against real price history — running on your own computer, not on our servers. This guide covers every control on its screen, what each number in the results means, and what it cannot do.

⬇ DOWNLOAD THE APP

What this actually is

A backtest runs a trading rule over past prices and works out what would have happened had you followed it. It is not a forecast. It tells you whether a rule has ever worked on data that already exists — which is a great deal better than guessing.

The computation is heavy, so it runs on your machine. Our server only receives the result (a few kilobytes of JSON), never the computation. That is why you can test hundreds of combinations without queueing behind anyone.

WHAT THIS APP DOES

Downloads historical prices, walks the strategy rules bar by bar, computes the profit and loss of every trade including broker costs, and shows you the summary. It does not place orders and is not connected to your broker account. Order execution lives on the automation page on the web, separate from this app.

Installing

1

Download NusaTerminal-Penguji-v2.4.exe from the download page. One file, no installer — put it wherever you like, the desktop is fine.

2

Double-click it. Windows will show a “Windows protected your PC” warning.

3

Click More infoRun anyway.

WHY WINDOWS WARNS YOU

Because the file is not signed with a paid code-signing certificate — not because it contains a virus. Windows shows the same warning for every new application from a publisher it does not yet recognise. We say so plainly rather than telling you to “just ignore it”. If you would rather check, upload the file to virustotal.com before running it.

The app is Windows (64-bit) only. There is no macOS or Linux build yet.

Signing in with a licence

In the ACCOUNT panel at the top, fill in three fields:

FieldWhat goes in it
EmailThe email of your NUSA TERMINAL account — the same one you sign in with on the web.
Licence keyOf the form NUSA-XXXX-XXXX-XXXX-XXXX. You will find it on the Profile & Performance page under “Licence key” — click SHOW to read it. Tick show in the app if you want to check what you typed.
ServerLeave it as it is: https://www.nusaterminal.com.

Then press Check & load suggestions. If the licence is accepted the status in the corner turns green ● connected, your plan limits appear, and the suggested-symbol list fills in — tailored to your own test history and to the symbols you use on the automation panel.

These entries are saved, so you only type them once. They stay on your own computer, in penguji.json (see Files & folders).

Markets & symbols

In the SYMBOLS panel, pick the market first. There are five, and they are not merely labels — each has its own rules, costs and trading hours:

MarketExample symbolsWhat is different
CRYPTO SPOTBTCUSDT, ETHUSDT Buy then sell only. No short positions, no liquidation.
CRYPTO FUTURESBTCUSDT, SOLUSDT Long or short, with leverage and funding costs. Can be liquidated before your stop is touched.
FOREXEUR_USD, USD_JPY Costs are counted in pips, not percent. Open 24 hours, 5 days.
IDX STOCKSBBCA, BBRI, TLKM Rupiah, lots of 100 shares, no shorting. The most expensive costs here (~0.2% per side).
GLOBAL STOCKSAAPL, MSFT, NVDA No shorting here either. Prices delayed ~15 minutes.

Changing the market resets the symbol list — carrying BTCUSDT into the IDX tab only produces advice about a stock that does not exist.

Choosing symbols

Test settings

SettingWhat it means
HorizonThe size of one candle and, with it, how far back the data goes. 15m to 4h for intraday, 1d and up for swing trading, 1y5y to test across years. The longer it is, the more trades you get, and the more the result can be trusted.
Cost modelLeave it on Automatic — costs follow the instrument type by themselves. No costs exists for comparing rules stripped bare, and its results are always better than reality. Never decide anything on it.
LeverageOnly active in markets that allow it. Leverage does not change R — it changes how much money moves per R.
Score thresholdApplies only to the Confluence strategy, which counts votes from five rules. 3 = more trades, 4 = more selective. The other strategies ignore it because they have a single rule.
Send results to the web + team emailSee Sending them to the web.

WHY THERE IS NO THRESHOLD OF 5

There used to be, and it always produced zero trades. Rule 5 (buy near the bottom of the range) contradicts rules 1–2 (uptrend), so a perfect score cannot occur. The option was removed rather than leaving people waiting for a result that would never arrive.

Strategies

Ten strategies, plus an ALL STRATEGIES (compare) option that runs every one of them over the same symbols and ranks the outcome. That is the fastest way to find out which strategy suits a given market.

StrategySuited to
Confluence, 5 rulesTrending markets with long data. The most selective, the fewest signals.
EMA 20/50 crossoverThe benchmark. A strategy that cannot beat this simplest one is not worth its complexity.
20-bar breakout (Turtle)The start of a large trend after a quiet stretch.
VWAP SniperLiquid intraday markets with real volume.
RSI reversionRange-bound sideways markets.
MACD momentumTrends that build gradually.
Sell the rallyDowntrends only, in markets that allow shorting.
Cash in a downtrendDowntrends in markets that cannot short — its value is the loss it avoids.
Range fadeSideways markets only.
Squeeze breakoutQuiet markets building up pressure.

The See the full rules button opens the exact rules of the selected strategy, including how its TP and SL are derived.

Running a backtest

Press RUN BACKTEST. The progress bar moves, and each symbol appears in the RESULTS tab as it finishes. A single symbol usually takes a few seconds; ten symbols against every strategy can take a few minutes.

The app uses your connection to download prices, then computes everything locally.

Reading the results

The RESULTS tab has ten columns. Three of them actually decide things:

ColumnMeaning
SYMBOLThe instrument tested.
MARKETIts market. Never compare R across markets — a rupiah result on IDX and a USDT result in crypto describe two different worlds.
STRATEGYThe rules used.
HORIZONThe candle size tested.
TRADESThe number of trades. Below 30, every number beside it means almost nothing — too few to tell skill from luck.
WIN RATEThe percentage of winning trades. The most misunderstood number on this page — see the box below.
AVG RThe one that matters. Average profit or loss per trade, measured in multiples of the risk taken. +0.2R means each trade returned on average 0.2× what was risked. Negative means the rule loses money, however high the win rate.
PFProfit factor: gross profit divided by gross loss. Above 1 is profitable. Below 1.2 rarely survives real costs.
MAX DDThe deepest fall in equity. This is the number that decides whether you could actually sit through running it.
STATUSWhether this result has been sent to the web.

A HIGH WIN RATE IS NOT PROFIT

A strategy that wins 70% of the time still loses money if its three losses are larger than its seven wins. What decides profit is the AVG R column. If AVG R is negative, the strategy loses money — full stop. We spell this out because the win rate is the easiest number in trading to fool yourself with.

FEW TRADES = YOU KNOW NOTHING YET

A result from 12 trades is not a result, it is a coincidence. Widen the horizon or add symbols until you have at least 30 trades before concluding anything, and 200 trades before risking real money.

Sending them to the web

With Send results to the web + team email ticked, each result is uploaded as it completes. What happens then:

Unticked, results still stay on your machine. Save JSON… writes them to a file, and that file can be uploaded by hand at any time from the Profile page.

Plan limits

TrialPro
Backtests per day10500
Symbols per run220
Strategies3All 10
MarketsSpot & IDXAll 5
Compare all strategiesYes
Email results to a teamYes

The limits are enforced on the server, not in the app: a result outside your plan is refused even after your computer has finished calculating it. The app greys out what your plan excludes so that nothing is computed only to be rejected.

See plan pricing →

Files & folders

Settings%APPDATA%\NusaTerminal\penguji.json Error log%APPDATA%\NusaTerminal\penguji.log JSON resultsWherever you chose when pressing Save JSON…

Open results folder and Error log open both directly from the app.

When something breaks

“Licence rejected”

“Needs at least 120 bars”

The data is too short for that horizon. Pick a longer one — from 15m to 4h or 1d, say.

The result is zero trades

The rules were simply never satisfied on that data. That is a valid answer, not a fault. Try lowering the score threshold to 3, changing strategy, or lengthening the horizon. Some strategies are deliberately idle outside their conditions — “Range fade” says nothing at all while a market is trending.

The app closes by itself

Open Error log and send us what is in it. That file holds what happened immediately before it stopped.

What you should know

A BACKTEST GUARANTEES NOTHING

Past results promise nothing about future ones. A rule can work for years and then stop working because the market changed. The numbers in this app tell you what has happened — that and nothing more, and that is already worth having, as long as it is not mistaken for more.

From our own measurements: on the IDX board the Confluence strategy returns about +0.22R per trade, while on US equities and on crypto futures the result is negative — and that already includes taker fees, spread, slippage and funding. We show the losing numbers as they are, because hiding them would make the rest unworthy of belief too.

This app is not investment advice and not a licensed financial product. Test in simulation for weeks before considering real money.