
Die Strategie ermöglicht die Trendverfolgung durch die Berechnung von Moving Averages aus verschiedenen Perioden, deren Kreuzung als Kauf- und Verkaufssignale eingestellt wird. Die Kernlogik besteht darin, eine Umkehrung des Trends mit kürzeren Perioden mit Moving Averages zu verwenden, um einen Trend mit längeren Perioden zu verfolgen.
Die Logik hinter den oben genannten Handelssignalen besteht darin, dass der kurzfristige Moving Average schneller auf Preisänderungen reagiert und die neuesten Trends widerspiegelt. Der langfristige Moving Average ist besser in der Lage, die Gesamttrends zu reflektieren und die Geräusche zu filtern. Wenn der kurzfristige Moving Average den langfristigen Moving Average überschreitet, bedeutet dies, dass eine Trendwende stattfindet, weshalb ein Handelssignal gesetzt wird.
Diese Strategie ist eine typische Trend-Tracking-Strategie, die durch eine einfache Moving Average-Kreuzung die Veränderung der Preisentwicklung erfasst. Die Vorteile sind einfach zu verstehen, einfach zu bedienen und können durch Anpassung der Parameter an verschiedene Marktumgebungen angepasst werden. Der Nachteil ist, dass die Reaktion auf unerwartete Ereignisse nicht empfindlich ist und leicht falsche Signale erzeugt.
/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Crossover Strategy", overlay=true)
// Функция для получения скользящего среднего на заданном таймфрейме
getMA(source, length, timeframe) =>
request.security(syminfo.tickerid, timeframe, ta.sma(source, length))
// Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма
ma200 = getMA(close, 200, "240")
ma100 = getMA(close, 100, "240")
// Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossover(ma100, ma200))
strategy.entry("Long", strategy.long)
// Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.close("Long")
// Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.entry("Short", strategy.short)
// Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх
if (ta.crossover(ma100, ma200))
strategy.close("Short")
// Рисуем линии скользящих средних на графике
plot(ma200, color=color.blue, linewidth=2, title="200 MA")
plot(ma100, color=color.red, linewidth=2, title="100 MA")