FlyTradr
📊

� Backtesting Lab - User Guide

Last updated: December 14, 2025

🔬 Backtesting Lab - User Guide

Version: 1.0
Last Updated: 10 December 2025
Status: ✅ Complete
Audience: Traders, Strategy Designers, Platform Users


📑 Table of Contents

  1. Overview
  2. How to Access
  3. Key Features
  4. Interface Tour
  5. Running Your First Backtest
  6. Configuration Controls
  7. Understanding Results
  8. Performance Metrics
  9. Charts & Visualizations
  10. Saving & Exporting
  11. Templates
  12. Tips & Best Practices
  13. Common Issues & Solutions
  14. FAQ
  15. Related Guides

🎯 Overview

What is Backtesting Lab?

The Backtesting Lab is where you test your trading strategies against real historical market data. It answers the crucial question: "Would this strategy have been profitable in the past?"

Think of it as a time machine for trading — you replay historical market conditions and see exactly how your strategy would have performed.

What Can You Do?

🎯 Capability📝 Description
🕐 Historical TestingRun strategies against years of past market data
📊 Comprehensive Metrics20+ performance metrics (Sharpe, Sortino, drawdown, etc.)
📈 Equity CurveVisualize your portfolio growth over time
📋 Trade ListSee every trade with entry, exit, P&L details
💰 Fee SimulationInclude realistic commission and slippage
💾 Save ResultsStore backtests for comparison
📤 Export DataDownload trades as CSV for analysis

Why Backtest?

❌ Without Backtesting✅ With Backtesting
"I think this will work...""Historical data shows 62% win rate"
Guessing at position sizesOptimal sizing based on drawdown
Unknown risk exposureMax drawdown of 12% identified
Blind tradingData-driven confidence

📍 How to Access

🏠 Dashboard → 📊 Platform → 🔬 Backtesting Lab

Step-by-Step Navigation

  1. Log in to your Flytradr account
  2. Click on Platform in the main navigation
  3. Select Backtesting Lab from the sidebar menu

📸 [Screenshot: Navigation path highlighted showing Dashboard → Platform → Backtesting Lab]

Quick Access Methods

MethodHow
Command PalettePress Ctrl+K, type "Backtest"
Direct URL/platform/backtesting-lab
From Strategy BuilderClick "Run Backtest" button after building

✨ Key Features

🧱 Core Capabilities

IconFeatureDescription
🎯Strategy SelectionLoad any saved strategy from your library
🌐Multi-MarketTest on Binance, Yahoo Finance, and more
📅Custom Date RangeSelect specific historical periods
💰Capital SettingsSet starting capital and position sizing
📊Fee ModelingSimulate commission and slippage
⏱️Session TimerTrack backtest execution time
📈Live ProgressWatch results as they calculate
💾Save & CompareStore multiple backtests

🛡️ Realistic Simulation

The Backtesting Lab models real trading conditions:

  • Commission fees (per-trade costs)
  • Slippage (price impact)
  • Order execution (market/limit)
  • Position sizing (based on capital)

🖥️ Interface Tour

Layout Overview

Screenshot: [Diagram placeholder #1 - Add relevant screenshot here]

Sidebar Sections

SectionPurposeIcon
Strategy SelectionChoose which strategy to test🎯
Market SelectionPick data provider, symbol, timeframe🌐
Test SettingsConfigure capital, dates, session⚙️
Execution SettingsSet fees, slippage, order types💰
ActionsStart, Stop, Reset, Save, Export🎬
TemplatesSave/load configuration presets📋

🚀 Running Your First Backtest

Let's run a complete backtest step by step!

Step 1: Select Your Strategy

  1. Click the Strategy Selection section in the sidebar
  2. Click Select Strategy or the dropdown
  3. Choose a strategy from your saved library
  4. The strategy details will appear below

📸 [Screenshot: Strategy selection dropdown with list of saved strategies]

💡 Tip: No strategies? Go to Strategy Builder first!


Step 2: Configure Market Data

  1. Click the Market Selection section
  2. Configure:
FieldDescriptionExample
ProviderData sourceBinance, Yahoo Finance
SymbolTrading pair/tickerBTCUSDT, AAPL
TimeframeCandle interval1h, 4h, 1d

📸 [Screenshot: Market selection panel with provider, symbol, and timeframe dropdowns]


Step 3: Set Test Parameters

  1. Click the Test Settings section
  2. Configure your backtest parameters:
ParameterDescriptionRecommended
Start DateWhen to begin testing6-12 months ago
End DateWhen to end testingToday or yesterday
Initial CapitalStarting portfolio valueYour typical trading capital
CurrencyAccount currencyUSD, EUR, INR

📸 [Screenshot: Test settings panel with date pickers and capital input]


Step 4: Configure Execution Settings

  1. Click the Execution Settings section
  2. Set realistic trading costs:
ParameterDescriptionTypical Values
CommissionPer-trade fee0.1% (crypto), 0.01% (stocks)
SlippagePrice impact0.05% - 0.1%
Order TypeExecution styleMarket (default)

📸 [Screenshot: Execution settings panel with commission and slippage inputs]

💡 Why fees matter: A strategy with 55% win rate might actually lose money after fees!


Step 5: Run the Backtest

  1. Review your configuration
  2. Click the ▶️ Start button
  3. Watch the progress bar fill
  4. View results as they stream in!

📸 [Screenshot: Backtest running with progress bar at 50%]

Status Indicators

StatusIconDescription
IdleReady to start
Initializing🟡Loading data
Running🔵Backtest in progress
Completed🟢Finished successfully
Failed🔴Error occurred

⚙️ Configuration Controls

Strategy Settings Panel

ControlPurposeNotes
Strategy DropdownSelect saved strategyShows name + last updated
Strategy PreviewView DSL summaryRead-only
Refresh ButtonReload strategy listUse after saving new strategies

Market Selection Panel

ControlTypeOptions
ProviderDropdownBinance, Yahoo Finance, etc.
SymbolSearchable dropdownDepends on provider
TimeframeDropdown1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, 1M

📊 Provider Comparison:

ProviderBest ForData QualityHistorical Depth
BinanceCrypto⭐⭐⭐⭐⭐3+ years
Yahoo FinanceStocks, ETFs⭐⭐⭐⭐10+ years

Test Settings Panel

ControlTypeDefaultRange
Start DateDate picker6 months agoAny valid date
End DateDate pickerTodayAfter start date
Initial CapitalNumber input10,000100 - 10,000,000
CurrencyDropdownUSDUSD, EUR, INR, etc.
Session TemplateDropdownCrypto 24×7See below

Session Templates

TemplateDescriptionHours
🇮🇳 Indian EquitiesNSE/BSE trading9:15 AM - 3:30 PM IST
🇺🇸 US EquitiesNYSE/NASDAQ9:30 AM - 4:00 PM EST
🇪🇺 EU EquitiesLSE/Euronext8:00 AM - 4:30 PM CET
🌐 Global FXForex markets24h Mon-Fri
Crypto 24×7CryptocurrencyContinuous
🛢️ CommoditiesCME/NYMEXVarious

Execution Settings Panel

ControlTypeDefaultRange
Commission (%)Number input0.10 - 5
Slippage (%)Number input0.050 - 5
Allow ShortingToggleYesYes/No
Order TypeDropdownMarketMarket, Limit

💡 Realistic Fee Examples:

MarketCommissionSlippage
Crypto (CEX)0.1%0.05%
Crypto (DEX)0.3%0.2%
US Stocks0.01%0.02%
Forex0.01%0.01%

📊 Understanding Results

Performance Summary Panel

After a backtest completes, you'll see a summary grid:

Screenshot: [Diagram placeholder #2 - Add relevant screenshot here]

Color Coding

ColorMeaningExample
🟢 GreenGood/PositiveWin rate > 50%, Sharpe > 1
🟡 YellowCaution/ModerateDrawdown 10-20%
🔴 RedBad/NegativeLosing strategy, high drawdown

📈 Performance Metrics

Core Metrics Explained

MetricWhat It MeasuresGood ValueFormula
Total ReturnOverall profit/loss %> 0%(End - Start) / Start × 100
Net ProfitAbsolute dollar gain/loss> $0End Balance - Start Balance
Win Rate% of profitable trades> 50%Winning Trades / Total Trades
Profit FactorGross profit ÷ gross loss> 1.5Total Gains / Total Losses

Risk Metrics

MetricWhat It MeasuresGood ValueInterpretation
Max DrawdownLargest peak-to-trough decline< 20%Lower = less risk
Sharpe RatioRisk-adjusted return> 1.0Higher = better
Sortino RatioDownside risk-adjusted return> 1.5Like Sharpe, ignores upside volatility
Calmar RatioReturn / Max Drawdown> 1.0Higher = better risk/reward

Trade Statistics

MetricDescription
Total TradesNumber of completed round-trips
Avg WinAverage profit on winning trades
Avg LossAverage loss on losing trades
Largest WinBest single trade
Largest LossWorst single trade
Avg Trade DurationHow long positions are held
ExpectancyExpected $ per trade

Metric Benchmarks

Metric🔴 Poor🟡 Average🟢 Good⭐ Excellent
Win Rate< 40%40-50%50-60%> 60%
Profit Factor< 1.01.0-1.51.5-2.0> 2.0
Sharpe Ratio< 00-1.01.0-2.0> 2.0
Max Drawdown> 30%20-30%10-20%< 10%

📉 Charts & Visualizations

Equity Curve

The Equity Curve shows your portfolio value over time:

Portfolio Value ($)
     ^
12000│                              ___/
     │                         ___/
11000│                    ___/
     │               ___/
10000│___________/
     │
 9500│        ↓ Drawdown
     └──────────────────────────────────────> Time
         Jan    Feb    Mar    Apr    May

📸 [Screenshot: Interactive equity curve with hover tooltips]

What to look for:

  • 📈 Upward trend = Strategy is profitable overall
  • 📉 Sharp drops = Drawdown periods (risk!)
  • 📊 Smooth curve = Consistent performance (ideal)
  • 🎢 Choppy curve = High volatility (concerning)

Drawdown Chart

Shows underwater equity periods:

Drawdown (%)
     0%│─────────────────────────────────────
     │          \    /
   -5%│           \/\/
     │              \
  -10%│               \____/
     │
  -15%│                          Max DD: -12%
     └──────────────────────────────────────> Time

📸 [Screenshot: Drawdown chart showing peak-to-trough declines]

Win/Loss Distribution

Histogram of trade outcomes:

    Frequency
        ^
     12 │  ▓▓
     10 │  ▓▓
      8 │  ▓▓  ▓▓
      6 │  ▓▓  ▓▓  ▓▓
      4 │  ▓▓  ▓▓  ▓▓  ▓▓
      2 │  ▓▓  ▓▓  ▓▓  ▓▓  ▓▓
        └─────────────────────> P&L %
         -5% -2%  0%  +2% +5%

📸 [Screenshot: Win/loss distribution histogram]

Monthly Returns Heatmap

       Jan  Feb  Mar  Apr  May  Jun
2024   +2%  -1%  +4%  +3%  -2%  +5%
       🟢   🔴   🟢   🟢   🔴   🟢

📸 [Screenshot: Monthly returns grid with color coding]


💾 Saving & Exporting

Save Results to Library

  1. After backtest completes, click 💾 Save Results
  2. Enter a descriptive label (optional)
  3. Add notes about this backtest (optional)
  4. Click Save

📸 [Screenshot: Save dialog with label and notes fields]

Saved backtests appear in: Dashboard → Saved Results

Export Trades as CSV

  1. Click 📤 Export button
  2. Select Export Trades (CSV)
  3. File downloads with all trade details

CSV Columns:

ColumnDescription
Trade #Sequential number
Entry TimeWhen position opened
Exit TimeWhen position closed
DirectionLong/Short
Entry PriceEntry execution price
Exit PriceExit execution price
QuantityPosition size
P&L ($)Dollar profit/loss
P&L (%)Percentage return
DurationHow long held

Export Full Results (JSON)

  1. Click 📤 Export button
  2. Select Export Full Results (JSON)
  3. Complete backtest data downloads

📋 Templates

What Are Templates?

Templates save your configuration settings (not results) for quick reuse:

  • Market selection (provider, symbol, timeframe)
  • Test settings (capital, dates, fees)
  • Execution settings (commission, slippage)

Saving a Template

  1. Configure your backtest settings
  2. Click the 📋 Templates section
  3. Click Save as Template
  4. Enter a template name
  5. Click Save

📸 [Screenshot: Template save dialog]

Loading a Template

  1. Click the 📋 Templates section
  2. Browse your saved templates
  3. Click Load on the template you want
  4. All settings are restored!

📸 [Screenshot: Template list with load/delete buttons]

Template Ideas

Template NameUse Case
"BTC Daily - Low Fees"Binance BTC 1D with 0.05% fees
"AAPL Swing"Yahoo AAPL 4h, US Equities session
"High Frequency Test"1m data with tight slippage
"Conservative Backtest"High fees, conservative slippage

💡 Tips & Best Practices

🎯 Strategy Testing Tips

💡 Tip📝 Why
Test multiple timeframesStrategy may work on 4h but not 1h
Use sufficient data6+ months minimum, 2+ years ideal
Include bear AND bull marketsAvoid curve-fitting to one condition
Test different symbolsVerify strategy isn't symbol-specific
Be realistic with feesMany strategies fail after fees

📊 Result Interpretation Tips

💡 Tip📝 Why
Win rate isn't everything40% win rate with 2:1 R:R is profitable
Watch the drawdownCan you stomach -20% before profits?
Check trade count10 trades isn't statistically significant
Compare to buy-and-holdBeat passive investing!
Look at losing streaks5+ losses in a row is psychologically hard

⚡ Productivity Tips

💡 Tip📝 How
Use templatesSave time on repeated setups
Save good resultsBuild a comparison library
Export to ExcelDeeper analysis with spreadsheets
Test in phasesQuick test first, then detailed

⚠️ Common Mistakes to Avoid

❌ Mistake✅ Solution
Testing only on winning periodsInclude losing periods too
Ignoring feesAlways simulate realistic costs
Too few tradesNeed 50+ trades for validity
Over-optimizingDon't curve-fit to past data
Not comparing to benchmarkBeat buy-and-hold!

⚠️ Common Issues & Solutions

Issue: "No strategy selected"

Symptoms: Start button disabled, error message shown

Solution:

  1. Click the Strategy Selection panel
  2. Choose a saved strategy from the dropdown
  3. If no strategies appear, create one in Strategy Builder first

📸 [Screenshot: Strategy selection panel with dropdown empty]


Issue: "Invalid date range"

Symptoms: Error about dates, backtest won't start

Solution:

  1. Ensure Start Date is BEFORE End Date
  2. Check that dates aren't in the future
  3. Verify data exists for the selected period

Issue: "Backtest failed"

Symptoms: Red error status, no results

Possible Causes & Solutions:

CauseSolution
No data for symbol/periodTry different dates or symbol
Network errorCheck internet, retry
Strategy DSL invalidRe-save strategy in Builder
Server timeoutTry shorter date range

📸 [Screenshot: Error status with message details]


Issue: Results show 0 trades

Symptoms: Backtest completes but no trades

Possible Causes:

  1. Signal never triggered: Check strategy logic
  2. Wrong timeframe: Signal requires different interval
  3. Wrong market: Strategy designed for different symbol
  4. Date range too short: Not enough data for signals

Solution: Review strategy signals in Strategy Builder


Issue: Very different results than expected

Symptoms: Results don't match mental model

Checklist:

  • ✅ Correct strategy selected?
  • ✅ Correct symbol/timeframe?
  • ✅ Fees configured correctly?
  • ✅ Date range as expected?
  • ✅ Initial capital correct?

❓ FAQ

General Questions

Q: How far back can I backtest?

🅰️ Depends on the data provider:

  • Binance: Up to 3+ years for major pairs
  • Yahoo Finance: Up to 10+ years for popular stocks
  • Older data may have gaps

Q: How long does a backtest take?

🅰️ Depends on date range and timeframe:

  • 1 month, 1h: ~5-10 seconds
  • 1 year, 1h: ~30-60 seconds
  • 3 years, 1d: ~10-20 seconds

Q: Can I backtest multiple strategies at once?

🅰️ Currently one at a time. Batch backtesting is planned for a future release.

Technical Questions

Q: What does "Sharpe Ratio" mean?

🅰️ Risk-adjusted return. It measures how much return you get per unit of risk. A Sharpe > 1.0 is considered good.

Q: Why is my win rate high but I'm losing money?

🅰️ Your average loss is larger than your average win. A 60% win rate with $100 wins and $200 losses = net loss.

Q: Does slippage apply to both entry AND exit?

🅰️ Yes, slippage is applied to every order execution in the simulation.

Troubleshooting Questions

Q: The backtest is stuck at 0%?

🅰️ The system might be fetching data. Wait 30 seconds. If still stuck, click Stop and retry.

Q: Can I pause and resume a backtest?

🅰️ Not currently. Backtests run to completion or must be stopped/restarted.


🔗 Related Guides

Before Backtesting

📚 Guide📝 Purpose
Strategy Builder GuideCreate strategies to backtest

After Backtesting

📚 Guide📝 Purpose
Simulator GuideTest in real-time simulation
Paper Trader GuideTrade live without real money

Supporting Documentation

📚 Document📝 Purpose
Dashboard GuideView saved backtests
TroubleshootingCommon platform issues

📝 Glossary

TermDefinition
BacktestRunning a strategy against historical data
Equity CurveGraph of portfolio value over time
DrawdownPeak-to-trough decline in portfolio value
Sharpe RatioRisk-adjusted return measure
Sortino RatioSharpe variant focusing on downside risk
Profit FactorGross profits divided by gross losses
Win RatePercentage of trades that are profitable
Max DrawdownLargest percentage decline from a peak
SlippagePrice difference between expected and actual execution
CommissionFee charged per trade
OHLCOpen, High, Low, Close (candle data)

📞 Need Help?

  • 💬 In-App Help: Press Ctrl+? or click the Help icon
  • 📧 Email Support: support@flytradr.com
  • 📖 Knowledge Base: docs.flytradr.com
  • 💬 Community Discord: discord.gg/flytradr

Document End
Next Review: January 2026
Owner: Flytradr Team