backtesting your own trading strategy using thinkorswim
People & Blogs
Introduction
In this article, we will discuss how to backtest your own trading strategy in Thinkorswim using the ThinkScript language. Backtesting is a valuable tool for traders as it allows them to evaluate the performance of their strategy using historical data before risking real money in the market.
Step 1: Creating a Custom Strategy
To begin, open Thinkorswim and navigate to Studies > Edit Studies > Strategies. Here you will find pre-loaded strategies that you can backtest. For this tutorial, we will create our own strategy from scratch. Click on "Create" and a window will pop up where you can enter your ThinkScript code.
ThinkScript is a programming language specific to Thinkorswim, and there is comprehensive documentation available on the Thinkorswim website. If you are already familiar with programming languages like C++ or JavaScript, ThinkScript should be relatively easy to understand. Otherwise, you can use the pre-built strategies as a reference to help you build your own.
For this example, let's create a strategy based on an EMA (Exponential Moving Average) crossover. We will call our strategy "My Price Cross Up EMA Buy Long". Here is the ThinkScript code for this strategy:
## Introduction
input price = close;
input desiredEntryEMA = 20;
input desiredExitEMA = 9;
## Introduction
def entryEMA = ExpAverage(price, desiredEntryEMA);
def exitEMA = ExpAverage(price, desiredExitEMA);
## Introduction
def buyLong = price > entryEMA;
def sellLong = price < exitEMA;
## Introduction
AddOrder(OrderType.BUY_TO_OPEN, buyLong, tickColor = Color.BLUE, arrowColor = Color.BLUE, name = "Buy Long");
AddOrder(OrderType.SELL_TO_CLOSE, sellLong, tickColor = Color.ORANGE, arrowColor = Color.ORANGE, name = "Sell Long");
This code defines the entry and exit EMAs, as well as the conditions for buying and selling. We then add the corresponding orders to execute the strategy. You can customize the colors and names of the orders to your preference.
Step 2: Visualizing the Strategy and Analyzing Results
After adding the custom strategy, click "OK" to apply it. Thinkorswim will display the strategy on your chart. To visualize the strategy, you can add indicators like the EMA to verify the crossover points. You can also add the Floating Profit/Loss study to see the gains and losses for each trade.
To change the parameters of the strategy or indicators, right-click on the chart, select "Studies," and then "Edit Studies." From there, you can modify the inputs and colors of the strategy and indicators.
To analyze the results of the strategy, you can right-click on the chart, hover over the strategy, and select "Show Report." This report will provide detailed information about each trade, including the entry and exit prices, time, and profit/loss.
Keyword: Backtesting, Thinkorswim, Trading Strategy, ThinkScript, EMA Crossover, Custom Strategy, Indicator, Floating Profit/Loss, Analyzing Results
Step 3: FAQs
Q1: Can I backtest strategies on different time frames? Yes, you can change the time frame of the chart to backtest strategies on different intervals such as daily, hourly, or even custom time frames.
Q2: Can I trade in extended hours using Thinkorswim? Yes, you can enable extended hours trading in Thinkorswim. However, be cautious as extended hours trading has lower liquidity and may not provide the same trading opportunities as regular market hours.
Q3: Can I export the results of my backtesting for further analysis? Yes, Thinkorswim allows you to export the results of your backtesting as a file. You can then import this file into other programs, such as Python, for further analysis and data science applications.
Q4: How reliable is backtesting in predicting future market performance? Backtesting provides historical performance results based on past data. While it can help you evaluate the effectiveness of your strategy, it does not guarantee future performance. Market conditions and dynamics can change over time, so it is always important to regularly review and adjust your trading strategies based on current market conditions.
Q5: Can I backtest strategies on futures contracts using Thinkorswim? Yes, Thinkorswim allows you to backtest strategies on futures contracts as well. You can apply the same principles and ThinkScript code to create and test strategies for futures trading.
Using Thinkorswim's backtesting feature, traders can iterate, refine, and optimize their strategies without risking real money in the market. By following the steps outlined in this article, you can create, visualize, and analyze your own custom trading strategies and make informed decisions based on historical data.