You are currently viewing
<span class="bsf-rt-reading-time"><span class="bsf-rt-display-label" prefix="Reading Time"></span> <span class="bsf-rt-display-time" reading_time="5"></span> <span class="bsf-rt-display-postfix" postfix="mins"></span></span><!-- .bsf-rt-reading-time -->How to Create and Backtest Your Own Moving Average Strategy in TradingView?

How to Create and Backtest Your Own Moving Average Strategy in TradingView?

TradingView is a powerful platform that provides traders with the tools and capabilities to develop, test, and implement their own trading strategies. Among the many strategies you can create and test, moving average strategies are some of the most popular and effective. In this blog, I’ll guide you through the process of creating and backtesting your own moving average strategy in TradingView, drawing from my own trading experience to provide practical insights and examples.

Table of Contents

Why Use Moving Averages in Your Trading Strategy

Moving averages are widely used in trading for several reasons:

  1. Trend Identification: Moving averages help traders identify the direction of the prevailing trend. This is crucial for determining whether to go long (buy) or short (sell) in the market.
  2. Support and Resistance: Moving averages act as dynamic support and resistance levels. Prices often bounce off these averages, providing potential entry or exit points.
  3. Signal Generation: Moving average crossovers generate buy and sell signals, making them effective for creating trading strategies.
  4. Risk Management: Moving averages can be used to set stop-loss levels, helping traders manage risk.

Now, let’s dive into the steps for creating and backtesting a moving average strategy in TradingView.

Step 1: Define Your Strategy

Before you even open TradingView, you should have a clear idea of the strategy you want to create. This includes the following elements:

  1. Entry Rules: When do you enter a trade? Are you looking for crossovers of two moving averages? What are the specific parameters for these moving averages (e.g., period lengths, types – simple, exponential, etc.)?
  2. Exit Rules: How do you exit a trade? Will you use moving average crossovers to signal exits, or do you have another method in mind, such as a trailing stop or a fixed take-profit level?
  3. Risk Management: What is your position size relative to your account balance? How much risk are you willing to take on each trade, and where will you set your stop-loss levels?
  4. Backtesting Period: Determine the historical timeframe over which you’ll test your strategy. It’s essential to use a meaningful sample of historical data to gauge the strategy’s effectiveness.

Step 2: Open TradingView and Load Your Chart

Once you’ve defined your strategy, open TradingView and select the trading pair or instrument you want to analyze. Make sure you have access to sufficient historical data for accurate backtesting.

Open Trading View load instrument

In TradingView, click on “Pine Script Editor” to create your custom indicator. Pine Script is the scripting language used to program custom indicators and strategies.

pine editor

Step 3: Write Your Pine Script Indicator

Writing your Pine Script indicator is where the real work begins. Pine Script is a user-friendly language that makes it accessible even for those without extensive coding experience. Let’s take a look at an example of a simple moving average crossover strategy using Pine Script.

study("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true)

// Define the short and long periods for the moving averages
short_length = input(9, title="Short MA Period")
long_length = input(21, title="Long MA Period")

// Calculate the moving averages
short_ma = sma(close, short_length)
long_ma = sma(close, long_length)

// Plot the moving averages
plot(short_ma,, title="Short MA")
plot(long_ma,, title="Long MA")

// Create buy and sell signals
buy_signal = crossover(short_ma, long_ma)
sell_signal = crossunder(short_ma, long_ma)

// Plot buy and sell signals on the chart
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar,, title="Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar,, title="Sell Signal")

In this script:

  • We define the periods for the short and long moving averages.
  • Calculate the moving averages using the sma function.
  • Create buy and sell signals when the short moving average crosses above the long moving average and vice versa.
  • Plot these signals on the chart for visualization.
writing pine script in editor

You can use this script as a starting point for your own moving average strategy. Customize the parameters, such as the period lengths, colors, or signal shapes, to match your preferences.

Rename Your strategy to “Simple Moving Average Crossover”

simple moving average crossover script

Step 4: Backtest Your Strategy

After you’ve written your Pine Script indicator, it’s time to backtest your strategy to see how it would have performed in historical market conditions. To do this:

Click on “Add to Chart” to apply your custom indicator to the chart.

On the chart, right-click and select “Insert Strategy” to create a new strategy.

insert strategy

In the “Properties” panel, configure the strategy settings:

Select the trading pair.

Set the initial capital you want to use for backtesting.

Choose the strategy resolution (e.g., daily, hourly, etc.).

Define your entry and exit conditions based on your Pine Script indicator.

Here’s an example of how to set up a backtest based on the provided Pine Script:

Entry Condition: “When Strategy Short MA Crossover of Long MA happens” (this corresponds to the buy signal in the script).
Exit Condition: “When Strategy Short MA Crossunder of Long MA happens” (this corresponds to the sell signal in the script).
Choose additional settings, such as slippage and commission, if applicable.

Start the backtest, and TradingView will simulate trading based on your strategy over the historical data.
As the backtest runs, you’ll be able to see performance metrics like total profit, maximum drawdown, and win-to-loss ratio, providing valuable insights into how effective your strategy may be. It’s essential to conduct multiple backtests with different settings to assess the robustness of your strategy.

Strategy performance analysis

Step 5: Analyze the Results and Optimize

Once the backtest is complete, it’s time to analyze the results. This step is critical for understanding the strengths and weaknesses of your strategy.

Here are some key metrics to consider:

Total Profit and Loss: Did your strategy make a profit or incur a loss? How does this compare to a simple buy-and-hold approach?
Maximum Drawdown: What was the largest percentage loss your strategy experienced during the backtest? This metric is crucial for risk assessment.

  • Win Rate: What percentage of trades were winners? A high win rate can be an indicator of a robust strategy.
  • Profit Factor: The ratio of gross profit to gross loss. A higher profit factor suggests a more effective strategy.
  • Sharpe Ratio: Measures risk-adjusted returns. A higher Sharpe ratio indicates better risk-adjusted performance.
  • Don’t be discouraged if your initial backtest doesn’t yield impressive results. Trading strategies often require fine-tuning and optimization.
optimizing results

Here are some tips to help you improve your strategy:

  • Adjust Parameters: Experiment with different period lengths for your moving averages to see if it improves performance.
  • Implement Filters: Consider adding additional indicators or filters to improve entry and exit signals.
  • Use Different Timeframes: Test your strategy on various timeframes to see if it performs better on a different scale.
  • Refine Risk Management: Review your risk management rules and consider adjusting position sizing or stop-loss levels.
  • Stay Realistic: Don’t expect every strategy to be a winning one. A well-designed strategy should have a clear edge over random trading but may still experience losses.

Final Thoughts

Creating and backtesting your own moving average strategy in TradingView is a valuable exercise for traders seeking a data-driven approach to trading. However, it’s essential to remember that past performance is not indicative of future results. Trading always carries risks, and there are no foolproof strategies.

Take the results of your backtest with a grain of caution, and consider forward testing your strategy in real-time or using a demo account. This will help you assess how your strategy performs in current market conditions.

Remember, trading is a continuous learning process, and success often comes through a combination of diligent research, practice, and risk management. TradingView provides a versatile platform for strategy development, and with the right approach, you can refine your strategies to achieve your trading goals.



    Rupin Joshi Senior Technical Analyst, Finance Writer, and Trading ExpertRupin Joshi is a seasoned Trading Expert with over a decade of experience. As a prolific Finance Writer, he has authored numerous research papers in Technical Analysis and Price Action. Rupin's insights and strategies have earned him global recognition, including awards in Trading Competitions. Currently serving as the Director at Bulls Arena Trading, he continues to empower traders and investors with his expertise and innovative approaches.