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 APPWhat 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
Download NusaTerminal-Penguji-v2.4.exe from the
download page. One file, no installer — put it
wherever you like, the desktop is fine.
Double-click it. Windows will show a “Windows protected your PC” warning.
Click More info → Run 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:
| Field | What goes in it |
|---|---|
| The email of your NUSA TERMINAL account — the same one you sign in with on the web. | |
| Licence key | Of 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. |
| Server | Leave 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.
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:
| Market | Example symbols | What is different |
|---|---|---|
| CRYPTO SPOT | BTCUSDT, ETHUSDT | Buy then sell only. No short positions, no liquidation. |
| CRYPTO FUTURES | BTCUSDT, SOLUSDT | Long or short, with leverage and funding costs. Can be liquidated before your stop is touched. |
| FOREX | EUR_USD, USD_JPY | Costs are counted in pips, not percent. Open 24 hours, 5 days. |
| IDX STOCKS | BBCA, BBRI, TLKM | Rupiah, lots of 100 shares, no shorting. The most expensive costs here (~0.2% per side). |
| GLOBAL STOCKS | AAPL, 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
- Double-click a row in the suggestions list to add it.
- Or type your own in the symbol field, comma separated. You may pick anything — the suggestions are suggestions, not limits.
- Symbols you have already tested are marked (tested), so you do not repeat yourself without noticing.
Test settings
| Setting | What it means |
|---|---|
| Horizon | The size of one candle and, with it, how far
back the data goes. 15m to 4h for
intraday, 1d and up for swing trading,
1y–5y to test across years. The longer it
is, the more trades you get, and the more the result can be
trusted. |
| Cost model | Leave 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. |
| Leverage | Only active in markets that allow it. Leverage does not change R — it changes how much money moves per R. |
| Score threshold | Applies 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 email | See 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.
| Strategy | Suited to |
|---|---|
| Confluence, 5 rules | Trending markets with long data. The most selective, the fewest signals. |
| EMA 20/50 crossover | The 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 Sniper | Liquid intraday markets with real volume. |
| RSI reversion | Range-bound sideways markets. |
| MACD momentum | Trends that build gradually. |
| Sell the rally | Downtrends only, in markets that allow shorting. |
| Cash in a downtrend | Downtrends in markets that cannot short — its value is the loss it avoids. |
| Range fade | Sideways markets only. |
| Squeeze breakout | Quiet 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:
| Column | Meaning |
|---|---|
| SYMBOL | The instrument tested. |
| MARKET | Its market. Never compare R across markets — a rupiah result on IDX and a USDT result in crypto describe two different worlds. |
| STRATEGY | The rules used. |
| HORIZON | The candle size tested. |
| TRADES | The number of trades. Below 30, every number beside it means almost nothing — too few to tell skill from luck. |
| WIN RATE | The percentage of winning trades. The most misunderstood number on this page — see the box below. |
| AVG R | The 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. |
| PF | Profit factor: gross profit divided by gross loss. Above 1 is profitable. Below 1.2 rarely survives real costs. |
| MAX DD | The deepest fall in equity. This is the number that decides whether you could actually sit through running it. |
| STATUS | Whether 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:
- It appears on Profile & Performance, and becomes part of the evidence the automation engine uses to decide whether a strategy may be run at all.
- A summary is emailed to you and to any team members you have registered (Pro plans).
- Only the result is sent — symbols, numbers and settings. No files, nothing else from your computer.
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
| Trial | Pro | |
|---|---|---|
| Backtests per day | 10 | 500 |
| Symbols per run | 2 | 20 |
| Strategies | 3 | All 10 |
| Markets | Spot & IDX | All 5 |
| Compare all strategies | — | Yes |
| Email results to a team | — | Yes |
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.
Files & folders
%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”
- Check the email matches the one on the web exactly (case does not matter, a trailing space does).
- Tick show and compare the licence key character by character against the one on the Profile page.
- If the plan has expired, the key is refused until it is renewed.
“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.