
Die Doppel-Even-Line-Cross-Strategie ist eine klassische Trend-Tracking-Trading-Strategie. Die Strategie verwendet zwei Moving Averages, einen schnellen Moving Average und einen langsamen Moving Average. Wenn ein schneller Moving Average den langsamen Moving Average von oben nach unten durchquert, wird dies als “Golden Cross” bezeichnet, was darauf hindeutet, dass ein Aufwärtstrend entstehen kann, und dann werden mehr Positionen eröffnet.
Der Kern der Strategie besteht darin, die Trend-Eigenschaften und die Kreuzungssignale des Moving Averages zu nutzen, um die Richtung des Trends und den Zeitpunkt der Position zu bestimmen. Zuerst werden die Perioden der schnellen Moving Averages (Standard 50) und der langsamen Moving Averages (Standard 200) durch Parameter festgelegt, und die Wahl, ob SMA oder EMA verwendet wird.
Die Doppel-Linien-Cross-Strategie ist eine einfache, klassische Trend-Tracking-Strategie, die die Trendrichtung und den Zeitpunkt für die Positionseröffnung anhand der Kreuzung von zwei unterschiedlichen periodischen Moving Averages beurteilt, um einen mittleren und langfristigen Trend zu erfassen. Die festen Parameter können jedoch in einem wechselnden Marktumfeld instabil sein und erfordern weitere Optimierungen, wie Optimierungsparameter, Verbesserung von Stop-Loss-Signalen usw., um eine relativ robuste Handelsstrategie zu werden.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)
//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length")
maSlowLength = input(200, title="Quick MA Length")
useSma = input(true, title="Use SMA? If false, EMA is used.")
maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)
stop_loss_percentage = input(2.0, title="Stop Loss (%)")
var float longStopLevel = na
var float shortStopLevel = na
bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross = ta.crossunder(maQuick, maSlow)
//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------
if(strategy.position_size == 0)
// Golden cross, enter a long position
if(isGoldenCross)
strategy.entry("Buy", strategy.long)
longStopLevel := close - close * stop_loss_percentage/100.0
strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
// Death cross, enter short position
else if(isDeathCross)
strategy.entry("Sell", strategy.short)
shortStopLevel := close + close * stop_loss_percentage/100.0
strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)
//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
// Close long position on death cross
if(strategy.position_size > 0 and isDeathCross)
strategy.close("Buy")
// Close short position on golden cross
else if(strategy.position_size < 0 and isGoldenCross)
strategy.close("Sell")
//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)