0bps

Strategy vault / Breakout

Moving Average Breakout Trading Strategy

This strategy is a breakout trading strategy based on moving averages. The main idea of the strategy is to determine the market trend by comparing the current closing price with the moving average of a certain…

Author
ChaoZhang
Complexity
Starter · 41 lines
Parameters
3
Backtest bar
1h · intraday
Tested on
BTC/USDT · futures

IMG

Overview

This strategy is a breakout trading strategy based on moving averages. The main idea of the strategy is to determine the market trend by comparing the current closing price with the moving average of a certain period, and to enter a trade when the price breaks through the moving average. The risk-reward ratio of this strategy is 1:3, with a stop loss of 1% and a take profit of 3%.

Strategy Principle

The core of this strategy is the moving average. A moving average is a curve that connects the average closing prices over a certain time period, which can smooth out short-term price fluctuations and reflect the medium to long-term trend of the stock price. When the stock price breaks through the moving average, it indicates that the market trend may be changing.

The specific principles of the strategy are as follows:

  1. Calculate the moving average over a certain period (default is 20).
  2. Determine whether the current closing price crosses above or below the moving average.
    • If it crosses above the moving average, open a long position with a stop loss of 1% and a take profit of 3% of the entry price.
    • If it crosses below the moving average, open a short position with a stop loss of 1% and a take profit of 3% of the entry price.
  3. If a position is already open, determine whether the stop loss or take profit price level has been reached:
    • If a long position reaches the stop loss or take profit price, close the position.
    • If a short position reaches the stop loss or take profit price, close the position.
  4. Plot the moving average on the chart for observation of the relationship between the stock price and the moving average.

Advantages Analysis

The advantages of this strategy are:

  1. Simplicity and ease of use: This strategy only uses one moving average, with clear logic and easy to understand and implement.
  2. Trend tracking: The moving average can reflect the medium to long-term trend of the stock price. By opening positions when the price breaks through the moving average, it can track the main trend of the market.
  3. Fixed risk-reward ratio: The stop loss and take profit levels of this strategy are fixed, with a risk-reward ratio of 1:3, which can strictly control the risk of each trade.
  4. Wide applicability: This strategy can be applied to different markets and instruments, such as stocks, futures, forex, etc.

Risk Analysis

Although this strategy has certain advantages, it also has some risks:

  1. Parameter optimization: The key parameter of this strategy is the period of the moving average. Different periods may bring different results. If the parameter selection is inappropriate, it may lead to strategy failure.
  2. Market risk: This strategy performs well in trending markets, but in range-bound markets, it may generate many false signals, leading to frequent trading and capital losses.
  3. Slippage and transaction costs: This strategy may generate many trading signals, and frequent trading will increase slippage and transaction costs, affecting the overall performance of the strategy.

To reduce these risks, the following improvements can be considered:

  1. Perform parameter optimization to find the most suitable parameter combination for the current market.
  2. Add other filtering conditions, such as trading volume, volatility, etc., to reduce false signals.
  3. Control trading frequency, such as increasing signal filtering to avoid excessive trading.

Optimization Directions

  1. Combination of multiple time frames: Consider combining moving averages of different time frames, such as short-term, medium-term, and long-term moving averages, and generate trading signals based on their arrangement and crossovers. This can more comprehensively determine market trends and improve the reliability of signals.
  2. Dynamic stop loss and take profit: Currently, the stop loss and take profit levels of the strategy are fixed. Consider dynamically adjusting the stop loss and take profit levels according to market volatility, such as using indicators like ATR (Average True Range) to calculate dynamic stop loss and take profit prices. This can better adapt to market changes and improve the flexibility of the strategy.
  3. Add other technical indicators: In addition to moving averages, other technical indicators such as MACD, RSI, etc. can be added to confirm trading signals with multiple indicators, improving the reliability of signals.
  4. Market environment adaptation: Adjust strategy parameters or rules according to different market environments, such as trending markets, range-bound markets, etc., to adapt to different market characteristics and improve the adaptability and stability of the strategy.
  5. Add position management: Currently, the position size of each trade in the strategy is fixed. Consider dynamically adjusting the position size of each trade according to factors such as market volatility and account funds, to better control risk and improve capital utilization efficiency.

Through the above optimization measures, the reliability, adaptability, and stability of the strategy can be improved to better adapt to market changes and enhance the overall performance of the strategy.

Summary

This strategy is a simple and easy-to-use trend-following strategy that generates trading signals when the price breaks through the moving average by comparing the closing price with the moving average. The advantages of this strategy lie in its clear logic, wide applicability, and ability to track the main market trend. However, it also has some risks, such as parameter selection, market risk, and transaction costs. To improve the strategy, optimization measures such as multi-timeframe combination, dynamic stop loss and take profit, adding other technical indicators, market environment adaptation, and position management can be considered.

Overall, this strategy can serve as a basic trading strategy suitable for beginners to learn and use. However, in practical application, it is necessary to optimize and improve the strategy according to specific market conditions and personal risk preferences to enhance the stability and profitability of the strategy. At the same time, any strategy has its limitations and should not be blindly relied upon. It should be combined with other methods and tools, such as fundamental analysis and risk management, to more comprehensively grasp market opportunities and control trading risks.

Parameters

NameDefaultWhat it controls
v_input_120Breakout Period
v_input_2trueStop Loss (%)
v_input_33Take Profit (%)

Source Pine Script

/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Nifty Breakout Strategy", overlay=true)

// Define Inputs
breakoutPeriod = input(20, title="Breakout Period")
stopLossPercent = input(1, title="Stop Loss (%)") / 100
takeProfitPercent = input(3, title="Take Profit (%)") / 100

// Calculate Moving Average
smaValue = sma(close, breakoutPeriod)

// Define Breakout Conditions
longCondition = crossover(close, smaValue)
shortCondition = crossunder(close, smaValue)

// Set Stop Loss and Take Profit Levels
longStopLoss = close * (1 - stopLossPercent)
longTakeProfit = close * (3 + takeProfitPercent)
shortStopLoss = close * (1 + stopLossPercent)
shortTakeProfit = close * (3 - takeProfitPercent)

// Execute Long Trade
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("LongExit", "Long", stop=longStopLoss, limit=longTakeProfit)

// Execute Short Trade
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("ShortExit", "Short", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Average for Visualization
plot(smaValue, color=color.blue)

Published by ChaoZhang on the FMZ strategy square · last modified 2024-03-08. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.

Build this with AgenKit

A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Moving-Average-Breakout-Trading-Strategy.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. Get tests, backtest, risk controls and a paper-trading switch

Understand it first

Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.

Related specs

esc

Try , , or .

↑↓ move↵ open