This strategy is an adaptive parameter trading system based on dual moving average crossover signals. It generates trading signals through the crossover of fast and slow moving averages, combined with adjustable risk management parameters including stop-loss, take-profit, and trailing stop, achieving flexible trading strategy management. The core of the strategy lies in dynamically adjusting various parameters through the control panel, enabling the strategy to adapt to different market environments.
The strategy employs two moving averages - fast and slow - as core indicators. A long position signal is generated when the fast moving average crosses above the slow moving average, while a position closure signal is generated when the fast moving average crosses below the slow moving average. Additionally, the strategy incorporates a triple risk control mechanism: fixed stop-loss, fixed take-profit, and trailing stop. These parameters can be adjusted in real-time through the control panel, ranging from 0.1% to larger percentages, providing traders with precise risk control capabilities.
This strategy constructs an adaptive trading system through dual moving average crossovers combined with flexible risk management parameters. Its strengths lie in strong parameter adjustability and comprehensive risk control, while attention must be paid to risks from ranging markets and parameter optimization. The strategy has significant optimization potential through the addition of trend filters and stop-loss optimization methods. For traders, properly setting parameters and continuously monitoring strategy performance are key to ensuring strategy stability.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © traderhub //@version=5 strategy("Two Moving Averages Strategy with Adjustable Parameters", overlay=true) // Adjustable parameters for fast and slow moving averages fastLength = input.int(10, title="Fast Moving Average Length", minval=1, maxval=100) slowLength = input.int(30, title="Slow Moving Average Length", minval=1, maxval=100) // Risk management parameters stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Stop-loss percentage takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Take-profit percentage trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Trailing stop percentage // Calculate fast and slow moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Plot moving averages on the chart plot(fastMA, color=color.blue, title="Fast Moving Average") plot(slowMA, color=color.red, title="Slow Moving Average") // Conditions for opening and closing positions longCondition = ta.crossover(fastMA, slowMA) // Buy when fast moving average crosses above the slow moving average shortCondition = ta.crossunder(fastMA, slowMA) // Sell when fast moving average crosses below the slow moving average // Variables for stop-loss and take-profit levels var float longStopLevel = na var float longTakeProfitLevel = na // Enter a long position if (longCondition) longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100) longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100) strategy.entry("Long", strategy.long) // Manage stop-loss, take-profit, and trailing stop for long positions if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc) // Close the long position and enter short when the condition is met if (shortCondition) strategy.close("Long") strategy.entry("Short", strategy.short)