
Die Strategie ist ein Adaptive-Parameter-Trading-System, das auf doppelte Gleichgewicht-Kreuzsignale basiert. Die Strategie erzeugt Handelssignale durch die Kreuzung von schnellen und langsamen Moving Averages und kombiniert mit anpassbaren Risikomanagement-Parametern wie Stop Loss, Stop Stop und Tracking Stop Loss, um eine flexible Handelsstrategie zu verwalten.
Die Strategie verwendet zwei bewegende Durchschnitte, die schnell und langsam sind, als Kernindikatoren. Wenn ein schneller Bewegungsmittel den langsamen Bewegungsmittel aufwärts überquert, erzeugt das System mehrere Signale. Wenn ein schneller Bewegungsmittel den langsamen Bewegungsmittel nach unten überquert, erzeugt das System eine Ausgleichssignal.
Die Strategie kombiniert flexible Risikomanagement-Parameter mit einer doppelten Gleichgewichtskreuzung, um ein anpassungsfähiges Handelssystem zu schaffen. Die Strategie hat den Vorteil, dass ihre Parameter sehr anpassungsfähig sind und die Risikokontrolle perfekt ist, aber gleichzeitig muss man auf die Risiken von Marktschwankungen und Parameteroptimierung achten.
/*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)