Quick Start

This page walks you through your first honest run of Axiom Strategy Lab Pro — from adding the script to your chart through the first checkpoint where you can confirm the engine is reading your rules the way you intend...

Written By Axiom Admin

Last updated About 1 month ago

Quick Start

This page walks you through your first honest run of Axiom Strategy Lab Pro — from adding the script to your chart through the first checkpoint where you can confirm the engine is reading your rules the way you intended. Do not skip the Properties review. The numbers in that tab shape every result the tester produces.


Step 1: Add the strategy to your chart

Add Axiom Strategy Lab Pro to any TradingView chart. The chart's symbol and timeframe will become the testing environment for your strategy. Choose something you actually intend to trade on — results will change on a different symbol or timeframe, and that difference is real, not a bug.

When the script loads, the error table will appear on the chart. It will say "Strategy Inactive" in red. That is normal. The strategy will not run until you complete the consent step below.

Step 2: Review the Properties tab

Open the strategy's Properties tab. This is where the tester's simulation model is configured. These settings affect every fill, every equity calculation, and every metric in the results.

The defaults ship with:

  • Initial capital: 100,000

  • Commission: 0.1% per trade

  • Slippage: 15 ticks per fill

  • Pyramiding: 50 (maximum concurrent open trades)

  • Order size: 10% of equity

  • Currency: USDT

Before you do anything else, ask yourself:

  • Does the commission match your broker's actual rate for this asset? The default 0.1% is reasonable for some crypto spot exchanges but wrong for equities, futures, and many other crypto pairs. If you do not know your broker's rate, look it up now — every metric in the tester depends on this number.

  • Is 15 ticks of slippage too generous or too conservative for the market you are testing? On a liquid large-cap equity, 15 ticks may be too pessimistic. On a low-liquidity altcoin, it may be wildly optimistic. The tester applies this to every single fill.

  • Do you actually want to allow 50 concurrent positions, or does your thesis call for something simpler? If you are testing a single-entry strategy, set pyramiding to 1. Leaving it at 50 means the tester will happily open dozens of concurrent trades if your conditions fire frequently.

  • Is USDT the right accounting currency for the pair you are charting?

If you do not know all the answers, that is fine — but write down what the defaults are so you know what assumptions your first results carry. This matters more than it sounds. A strategy tested at 0.01% commission and 0 slippage will look profoundly different from the same strategy at 0.1% and 15 ticks. Both results are "correct" for their assumptions. The question is which assumptions match your reality. See Settings for the full reference.

Step 3: Choose a direction mode

In the Inputs tab, the first setting is Strategy Direction. Your options:

  • Long Only — only the long-side YAML sections are evaluated

  • Short Only — only the short-side YAML sections are evaluated

  • Swing Mode — both directions are active, and a long entry can close an existing short (and vice versa)

Start with Long Only or Short Only for your first run. Swing Mode adds interaction effects between directions that are easier to understand once you have seen one direction work in isolation.

Step 4: Connect external indicators (if needed)

If your strategy idea references an external indicator — an EMA, RSI, Bollinger Band, or anything else on your chart — you need to connect it through the Custom Token Section in the Inputs tab.

Each token slot has three fields:

  1. Name — the token name your expressions will use (e.g., EMA_50). Case-sensitive. Must be unique.

  2. Type — Number or True/False, matching the indicator's output type.

  3. Source — the actual indicator plot on your chart that provides the data.

If you reference a token name in your YAML expressions that does not have a matching custom token (and is not a built-in token), the engine will raise an "Unknown identifier/token" error and the strategy will not run. The error table will identify the unrecognized name. Double-check your token names — they are case-sensitive.

Step 5: Paste your YAML

The Inputs tab has eight text-area fields for your trade logic — four per direction:

  • Long Setups / Short Setups

  • Long Entries / Short Entries

  • Long Take Profits / Short Take Profits

  • Long Stop Losses / Short Stop Losses

Paste your YAML into the sections that match your direction mode. If you chose Long Only, only the Long sections will be evaluated.

If you do not have YAML ready, start with the simplest possible test: one entry with a market order triggered by a single condition. Something like a moving average crossover. The Beginner example in Workflows is designed for exactly this. The goal of your first run is not to test a real thesis — it is to confirm the engine is parsing and evaluating correctly.

See Rules & Risk for how setups, entries, and exits relate to each other. See YAML Reference for every field in every section. If you need working examples to start from, see Workflows.

Step 6: Check the consent box

Near the bottom of the Inputs tab, there is a checkbox labeled "Confirm review of strategy properties." The strategy will not run until this box is checked.

This is not a nuisance. It exists because the Properties tab settings — commission, slippage, initial capital, pyramiding — directly shape every result the tester reports. Checking the box without actually reviewing those settings defeats its purpose. The consent is meant to be a genuine pause: have you looked at the assumptions your test will run under?

Check the box. The error table should update.

Step 7: Read the error table

After checking consent, one of two things will happen:

If your YAML is valid and expressions compile: The error table will show "Strategy Active" in green. The strategy tester will begin processing historical bars and you will start seeing trades and equity curve data.

If there are errors: The error table will show "Strategy Inactive" in red, along with a list of errors — up to five, with severity and a message. Common first-run errors include:

  • YAML syntax problems (indentation, missing colons, unclosed quotes)

  • Unknown token names in expressions

  • Schema validation failures (a required field is missing or a value is out of range)

Fix the reported issue, re-open the Inputs tab, correct the YAML, and try again. The error messages are your first diagnostic tool.

Step 8: Verify with the schema summary table

In the Inputs tab, enable "Show schema summary table." A table will appear on the chart showing how many setups, entries, take profits, and stop losses the engine parsed — broken out by direction.

This is your first real verification checkpoint, and it catches more problems than you would expect. Compare the numbers to what you intended:

  • If you defined two long entries, the table should show 2 under Long Entries. If it shows 1, one of your entries failed to parse — likely a YAML indentation issue or a missing required field. If it shows 0, the entire section may have been rejected.

  • If you defined one take profit and one stop loss per entry, those counts should usually stay in the same ballpark. If the counts are off, an exit block may have failed to parse or been pasted under the wrong direction section. A bad from_entry_id can still parse and appear in the counts, so use the error table alongside the schema summary.

  • If you defined named setups but the setup count is lower than expected, one of your setups did not parse. Check the YAML structure for that specific setup block.

  • If you defined entries with belongs_to_setup but the setup count is zero, do not assume those entries quietly fell back to GLOBAL. A missing setup reference is a validation problem, not a silent fallback. Check the error table before trusting anything the counts suggest.

Step 9: Verify with the expression diagnostics

Enable "Show expression value label." A label will appear near the price axis showing every operational expression with its current value, evaluation status, and whether it is being used.

Look for:

  • EVAL — the expression is being reached and evaluated on the current bar. This is what you want.

  • SKIP — the expression exists but is not being evaluated (its owning setup may not be confirmed, or a gate condition is blocking it).

  • EMPTY — the expression field is blank or was not compiled.

If an expression you expected to be evaluating shows SKIP, trace back to the setup it belongs to. Is the setup confirmed? Is the gate passing? SKIP does not mean the expression is broken — it means the engine has not reached it yet on this bar, usually because something upstream (the setup state or the entry's gate) is preventing evaluation. The diagnostics tell you what is happening right now — use them. Scroll to different bars and watch the status change as conditions come and go.

If an expression shows EVAL but the value looks wrong — a boolean showing false when you expect true, or a number that does not match what the indicator shows — check that the custom token source connection is working. A correctly named token with a broken source will report 0 or na instead of the indicator's actual value. Also verify token names are case-correct: ema_50 and EMA_50 are different tokens, and a misspelled name will cause a validation error that prevents the strategy from running. See Default Tokens for the complete list of built-in token names and their exact casing.

What "normal" looks like

On a successful first run, you should see:

  • The error table reads "Strategy Active"

  • The schema summary counts match your YAML

  • Trades appear in the strategy tester's trade list

  • An equity curve is drawn

  • Expression diagnostics show your conditions evaluating

Ordinary surprises that are not problems:

  • The equity curve does not start from the very first bar. The strategy needs bars to build data before conditions can fire.

  • Trade count is lower than you expected. Conditions may be stricter than they feel when you read them as prose. Check the expression diagnostics to see whether triggers are evaluating as true.

  • Results are different from what you imagined. That is the point. The tester is showing you what your rules actually produce under its assumptions — not what you hoped they would produce.

Surprises that are problems:

  • Zero trades when you expected some. See Troubleshooting.

  • "Strategy Inactive" that does not go away after fixing errors. Check that consent is checked and all YAML sections are valid.

  • Expression diagnostics show NOT_USED for conditions you thought were active. A token name mismatch or a schema ownership issue is likely.

What to do next

Once you have a working first run, resist the urge to start optimizing. First, understand what you are looking at:

  • Read Rules & Risk to understand how setups gate entries and how exits are evaluated.

  • Read Settings to understand what the Properties tab numbers actually do to your results.

  • Read Backtesting & Realism to understand what the tester assumes about your fills — and where those assumptions break down.

The first run is not a conclusion. It is a calibration point. Now you know the engine is reading your rules. The next step is understanding whether the results it gives you back are telling you something real.