
Bei dieser Strategie handelt es sich um ein dynamisches Trendverfolgungssystem, das auf einem dualen gleitenden Durchschnittskanal basiert und mit einem Risikomanagementmechanismus kombiniert ist. Bei dieser Strategie wird ein Handelskanal mithilfe von zwei einfachen gleitenden Durchschnitten (SMA) erstellt, wobei die obere Schiene den gleitenden Durchschnitt verwendet, der anhand des höchsten Preises berechnet wird, und die untere Schiene den gleitenden Durchschnitt, der anhand des niedrigsten Preises berechnet wird. Das System verwendet fünf aufeinanderfolgende K-Linien-Schlusskurse, die die obere Spur durchbrechen, als Einstiegssignal und fünf aufeinanderfolgende K-Linien-Schlusskurse, die unter die untere Spur fallen oder 25 % vom höchsten Punkt zurückweichen, als Ausstiegssignal, um einen dynamischen Trend zu erzielen. Tracking und Risikokontrolle. .
Das Kernprinzip der Strategie besteht darin, Preistrends über den doppelten gleitenden Durchschnittskanal zu erfassen und einen strikten Ein- und Ausstiegsmechanismus einzurichten:
Diese Strategie erstellt ein vollständiges Trendverfolgungs-Handelssystem durch einen doppelten gleitenden Durchschnittskanal, kombiniert mit strengen Einstiegsbestätigungs- und doppelten Ausstiegsmechanismen, um eine effektive Trendverfolgung und eine wirksame Risikokontrolle zu erreichen. Die Vorteile der Strategie liegen in einer klaren Ausführungslogik und einer perfekten Risikokontrolle, allerdings bedarf es noch einer Parameteroptimierung für unterschiedliche Marktumgebungen und kann durch das Hinzufügen einer Marktumgebungsfilterung, einer Bestätigung mehrerer Zeiträume usw. weiter verbessert werden. Insgesamt handelt es sich hierbei um eine quantitative Handelsstrategie mit vollständiger Struktur und strenger Logik, die sich für die Anwendung in einem Marktumfeld mit eindeutigen Trends eignet.
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100
// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)
// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")
// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na
// Update counters based on conditions
if (low <= upperMA)
upperCounter := 0
else
upperCounter += 1
if (high >= lowerMA)
lowerCounter := 0
else
lowerCounter += 1
// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
highestPrice := high // Initialize highest price
// Update the highest price after entry
if (strategy.position_size > 0)
highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)
// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
strategy.close("Long", comment="Exit: 5 bars below Lower MA")
// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
strategy.close("Long", comment="Exit: Stop Loss")