
Start Here
Platform

Tour
Bots 101How it worksLive demo
Tools
Automated tradingOptions backtestingWatchlist scannerPrivate community
Use cases
New investorsStock tradersActive tradersPassive investorsSwing tradersAlgorithmic traders

Templates
By trade type
Stock trading botsOptions trading bots
By strategy type
Bullish options strategiesNeutral options strategiesBearish options strategiesHedging strategies
By style
Active and high frequency botsEvent-based botsTrend trading botsMomentum trading botsStatistic and probability-based botsTechnical analysis botsEarnings strategy bots

Integrations

Pricing
Education

Courses
Overview
By experience
Beginner
What is an options contract?Stock trading vs. options tradingOptions contract specificsCall vs. put options basicsBuying options vs. selling optionsOptions profit and loss diagramsOptions pricing tablesOption moneyness (ITM, OTM, and ATM)Options pricing and the "Greeks"Options expiration and assignmentWhat's our "edge" trading options?Single vs. multi-leg options strategiesSmall account options strategies
Intermediate
Fearless, confident options tradingHistorical volatility vs. implied volatilityPredicting market movesTrade size and capital reservesPortfolio balance and beta weightingHow to choose the best options strategyHow far out to place trades?Strike price anchoring with probabilitiesTips on getting your trades filledAdvanced and contingent orders7 step options trade entry checklist
Advanced
Developing a daily trading routineHow to avoid "Black Swan" eventsAdjusting and hedging option tradesExiting options trades automaticallyOptions strategies we don't adjust (and why)Big picture adjustment strategyWhen to adjust or notAdjusting straddles and stranglesAdjusting credit spreads, iron condors, and calendarsSmarter stop-loss ordersBuilding a diversified options portfolioRolling options trades for duration and premiumOptions expiration week position checklistDealing with stock assignment and dividendsHow to free up trading margin and cash
By subject
Options basics
Why options vs. stocks?What is an options contract?Smart use of leverageOption strike priceOption premiumOption expirationOption contract multiplierProfit and loss diagramsLong call option explainedShort call option explainedLong put option explainedShort put option explainedATM, ITM, and OTM optionsCash vs. margin basicsHigh probability trading definedHow to buy a call optionHow to buy a put optionSingle-leg vs. multi-legWhat is the VIX?Is fundamental analysis dead?
Entering and exiting trades
Game of numbers7 step entry checklistStrong liquidity examplesPicking the next directionScanning for tradesOption pricing table basicsSetting up your trade tabPinning your probability of profitUsing delta for probabilitiesBuy to open vs sell to openBuy to close vs sell to closeMarket, limit, stop loss orders5 types of contingent ordersLimit ordersMarket ordersLimit on close ordersMarket on close ordersAdvanced contingent ordersTaking profits before expirationMechanics of rollingConsider future events
Options expiration
Options expiration explainedWhat is the Options Clearing Corporation (OCC)?Physical vs. cash settlement optionsAmerican vs. European style optionsWeekly options expirationWeekly expiration tags/codesOptions assignment processOptions exercise processTrading timeline (duration)
Bullish options strategies
Bull put spreadBull call spreadLong callShort putBull call backspreadPut broken wing butterflyCall calendar spreadPut diagonal spreadCustom naked putCovered callSynthetic long stock
Neutral options strategies
Short straddleLong straddleIron condorsShort strangleLong strangleIron butterflyUnbalanced iron condors
Bearish options strategies
Bear call spreadBear put spreadLong putShort callBear put backspreadCall broken wing butterflyPut calendar spreadCall diagonal spreadCustom naked callCovered putSynthetic short stock
Portfolio managmeent
No guaranteed tradesDon't do something, sit thereAccount size adjustmentsAvoiding stock market overloadStocks, indexes, & ETFsMonitoring positionsCreating automatic alertsIndividual stock betaPortfolio betaBeta weighting your portfolioUncorrelated industries/sectorsSystematic vs. unsystematic riskEfficient portfolio frontierLimiting undefined risk tradesEconomic calendarConcept of legging
Options pricing and volatility
How to find option price quotesUnderstanding the mathIV vs. IV percentileProbability of profit vs. probability of touchOption probability curveBid-ask spread definedIV expected vs. actual moveThe "Greeks"Fatal pricing errorsInverse ETFsOptions parity
Adjusting trades
#1 adjustment for any tradeWhen to adjust a tradeSingle options trade vs. overall portfolioLeveraging the analyze tabCall spread adjustmentsPut spread adjustmentsShort strangle adjustmentsIron condor adjustmentsShort straddle adjustmentsCalendar spread adjustmentsDebit spread adjustmentsButterfly adjustmentsUsing stop lossesDelta hedgingRolling positionsPairs hedging

Strategies
Long callLong putShort callShort putCovered callCovered putProtective putCollar strategyLEAPSBull call debit spreadBear call credit spreadBull put credit spreadBear put debit spreadLong straddleShort straddleLong strangleShort strangleCall calendar spreadPut calendar spreadIron condorReverse iron condorIron butterflyReverse iron butterflyCall butterflyPut butterflyStrapCall diagonal spreadPut diagonal spreadCall ratio spreadPut ratio spreadCall backspreadPut backspreadLong box spreadShort box spreadReversalStock repair

Topics
OverviewAsset allocationAutomated tradingBehavioral financeBrokersCandlestick patternsChart patternsDividendsEconomic indicatorsEquity investmentsExercise & assignmentFinancial analysisFinancial historyFinancial marketsFinancial modelingFinancial theoriesFundamental analysisFuturesInvestment accountsInvestment taxesInvestor biasesMarket holidaysMarket hoursMarket indexesMarket indicatorsMomentum tradingOptionsOptions pricingOptions settlementPortfolio managementRisk managementStocksStock marketTechnical analysisTechnical indicatorsTrading commissionsTrading platformsTrading psychologyTrend trading
Resources

Workshops

Podcast

Blog
Support

Help Center
Overview
Getting started
What is a bot?Creating a botAutomation typesAutomation editorBot dashboardBot positionsBot logTemplates and cloningKey conceptsSafeguards and limitsPower of botsBest practices
Bot automations
What is an automation?Scanner automationsMonitor automationsEvent automationsEditing automationsReusing automationsCopying automationsOrdering automationsUsing custom inputsBot level inputsAutomation statusesAutomations library
Bot actions
DecisionsOpen positionClose positionNotificationsLoop symbolsLoop positionsBot tagsPosition tags
Bot examples
Genesis 1.0 botGenesis 2.0 botGenesis 3.0 botTrend trading with stocks botPortfolio trend trading botTrend trading with options botMultiple moving averages botTechnical swing trading botTrend and momentum botWeekly credit spread botRecurring iron condors botThe "Honey Badger" botHybrid spreads botHigh IV rank iron condor bot
Decision recipes
Comparing underlying symbol priceEvaluating symbol typeComparing underlying symbol propertiesEvaluating underlying symbol performanceEvaluating underlying symbol standard deviationComparing underlying symbol price to an indicatorComparing multiple underlying symbol indicatorsEvaluating underlying symbol implied volatility rankEvaluating underlying symbol earnings reportingEvaluating underlying symbol price probabilityEvaluating underlying symbol probability within rangeEvaluating bot propertiesEvaluating bot available capital for opportunitiesComparing bot position count to position typeComparing bot position count to underlying symbolEvaluating bot position count to position type and underlying symbolEvaluating bot last position activityEvaluating bot last activity with underlying symbolComparing bot active orders statusComparing bot active orders status with underlying symbolEvaluating bot position availabilityEvaluating bot tagsEvaluating opportunity availabilityEvaluating opportunity return expectationsComparing opportunity attributesComparing opportunity leg attributesComparing opportunity bid-ask spreadEvaluating opportunity probabilitiesEvaluating position performanceComparing profit target to trailing valueComparing position time to expirationComparing position durationEvaluating position underlying symbolComparing position propertiesComparing position leg propertiesEvaluating position typeEvaluating position sideComparing underlying symbol price to position legEvaluating position tagsEvaluating underlying symbol indicator propertiesComparing multiple underlying symbol indicator propertiesEvaluating MACD technical indicatorComparing Bollinger Bands to symbol priceEvaluating stochastic technical indicatorComparing VIX propertiesEvaluating market time of the dayEvaluating days of the weekEvaluating bot switches
Position statement
Activity summaryPosition detailsTrade detailsOpened positionsClosed positionsCanceled positionsOverride positionsExpired positionsPosition historyManually open positionManually close positionImport position
Order pricing
SmartPricingFinal price settingsPosition summaryOrder detailsWorking ordersManual override
Bot templates
Creating new templatesUpdating existing templatesDeleting templatesSharing templatesUpdating shared templatesTemplate best practices
Cloning bots
Cloning existing botsCloning from templateCloning from shared template
Troubleshooting
Using bot logsTesting your botsNot enough capital warningDaily position limit warningTotal position limit warningPricing anomaly warningMissing or invalid input errorDaily symbol limit errorExcessive errors failsafeOverlapping strikes failsafePrice exceeds strike-difference errorOptions expiration protocolDuplicate orders errorOptions approval level errorBot event loopsStock splits and corporate actionsSupported browsersSupported countries
Community forum
Community guidelinesCrafting your introductionSending group messagesSending private messagesAttaching bot templatesReceiving bot templatesAttaching automationsReceiving automationsFollowing tradersPosting publiclyEditing posts and messagesSubscribed discussionsUsing bookmarks
Using backtester
Running a new backtestBacktesting results summaryModifying existing backtestsMy backtestsBacktesting research databaseTop backtestsBacktesting errors
Account settings
My profileTrading accountsConnecting to TDAmeritradeConnecting to TradeStationConnecting to TradierIncompatible accountsPassword managementSession timeoutTwo-step authentication
Technical docs
Infrastructure and securityAutomation structureAutomation behaviorData feedsOrder handlingTrade enforcementsBroker rejection errorsBot limitationsProfit and lossFair value pricingDecision propertiesDecision calculationsParameter selectionCalculating probabilityPlatform indicators

Contact
Send FeedbackReport IssueEmail Us
Option AlphaOption Alpha

LoginSignup
EducationAutomated TradingStrategy Backtesting

Strategy Backtesting

Strategy backtesting is the process of testing a strategy’s performance with historical, quantifiable data. Backtesting provides insights into a strategy’s effectiveness in multiple market conditions and the opportunity to compare historical results relative to a benchmark.

Backtesting is foundational in strategy development. Backtesting requires you to define specific parameters to observe the historical performance of a strategy.

Backtests utilize quantifiable criteria, including a strategy’s entry, exit, and position sizing to simulate trading performance for a specified period using historical price data. 

When creating a trading system, a number of decisions must be made to filter and optimize returns. It is important to define the key inputs of a trading system so that you can test multiple versions of the system by modifying the inputs. Backtesting enables you to observe the results of multiple variables.

Trading systems can be discretionary or non-discretionary and mechanical or non-mechanical. However, strategy backtesting requires defined entry and exit criteria and is most frequently used to test non-discretionary, mechanical systems.

Backtest Results

Backtests typically provide a performance summary of a system’s historical results. These summaries include key strategy performance metrics such as starting portfolio value, ending portfolio value, winning trades, losing trades, profit factor, annualized performance, maximum drawdown, Sharpe ratio, CAGR, average trade duration, maximum consecutive wins and losses, and more.

While past performance is not indicative of future returns, backtest results provide a framework for a system’s historical performance throughout different market conditions.

Sequencing of returns should be considered. While it may be helpful to know how well a strategy can perform, it is equally important to know what a typical losing period looks like and whether you are willing to withstand a significant drawdown during a strategy's lifetime.

Backtesting allows you to assess a strategy's volatility and range of outcomes to determine if it is suitable for you. Knowing the worst-case scenario of a strategy’s past performance can provide confidence when an inevitable losing streak occurs.

Multiple software applications and services are available to backtest trading strategies, including simple spreadsheets and graphs. It is important to have reliable historical data to accurately test a system’s performance. 

While reliable, clean historical data may seem easy to find, ensuring the data used in the backtest is similar to the data used when live trading the system is important. 

Backtests should cover a long enough time period to assess the system’s performance across different market conditions.

Robustness

Robustness refers to a system’s returns when input variables are changed slightly.

For example, if a trend following system is tested using a 20-day simple moving average for trading signals, a robust system would have similar returns if the signal used a 19-day or 21-day simple moving average.

Robust trading systems should work well across multiple markets, demonstrate consistency in different conditions, and show limited sensitivity to changes in the system’s parameters.

Optimization

Optimization is the adjustment of system parameters to achieve improved performance. Optimization often uses machine learning to find the optimal input parameters within a given range.

For example, when optimizing a trend following strategy, the number of days used in a moving average calculation may be varied within a user-defined range to find the optimal entry or exit signal.

Optimization is important as market conditions change. Strategies rarely perform the same way in perpetuity; continually testing and optimizing a system is often necessary.

Tailoring Your Backtest

Strategies should be customized to fit your lifestyle and mental models. Even if a strategy has strong historical performance, it may not suit your investment style, availability, time frame, or biases. 

Investors should tailor their strategy to their desired performance metrics. One investor may prefer a high win rate, while another investor prioritizes the smallest drawdown. The same entry and exit criteria can have significantly different long-term results by varying allocation or position sizing.

Learn more about Option Alpha's proprietary in-app backtester.

Join 200k+ options traders
Thank you! Please check your email!
Oops! Something went wrong...
Be the first to get notified when we publish new updates.

FAQs

How do you backtest a trading strategy?

Strategy backtesting requires defined entry and exit criteria. When designing a trading system, a number of decisions must be made to optimize results, including what markets to trade, position size, when to buy or sell, when to exit a losing trade, and when to exit a winning trade. After defining the relevant criteria for the backtest, the strategy is tested on historical data to assess performance.

Backtests typically provide key metrics such as starting portfolio value, ending portfolio value, winning trades, losing trades, annual performance, maximum drawdown, Sharpe ratio, average days in winning trades, average days in losing trades, maximum consecutive losses, and others. 

How do you backtest a trading strategy using excel?

Historical data can be downloaded and analyzed with a spreadsheet to determine strategy performance. Users can establish specific criteria to define sets of rules to backtest the information. Conditional formulas and data filters may be used to facilitate the process. Excel will then display the results of the indicator with the inputted data to identify historical outcomes.

How do you manually backtest a trading strategy?

The computerization of financial markets allows investors to analyze historical data more efficiently. If an investor wants to manually test how a certain strategy has worked in specific market conditions in various securities, a visual inspection of historical price charts can be used to test theories or trading strategies. Historical data can be downloaded and analyzed with a spreadsheet to determine strategy performance. 

How accurate is backtesting?

Strategy backtesting is the process of testing a strategy’s performance with historical data. While past performance is not indicative of future returns, backtesting provides insights into a strategy’s effectiveness in multiple market conditions and the opportunity to compare historical results relative to a benchmark.

Backtests utilize quantifiable criteria, including a strategy’s entry, exit, and position sizing, to simulate trading performance for a specified period using historical price data. Backtests typically provide key metrics such as starting portfolio value, ending portfolio value, winning trades, losing trades, annual performance, maximum drawdown, Sharpe ratio, average days in winning trades, average days in losing trades, maximum consecutive losses, and others.

On this page
Backtest Results
Robustness
Optimization
Tailoring Your Backtest
FAQs
Share this





No-code, fully automated trading for stocks and options.

HomeAboutLegalStatusContact
©2022 Option Alpha. All Rights Reserved. Patent Pending USSN 63/118,547