Diese Strategie erzeugt Handelssignale, indem sie gleitende Durchschnitte verschiedener Zeiträume berechnet und deren Crossover als Kauf- und Verkaufssignale verwendet, um dem Trend zu folgen.
Die Logik hinter den Handelssignalen besteht darin, dass der kürzere Zeitraum MA schneller auf Preisänderungen reagieren und den neuesten Trend widerspiegeln kann, während der längere Zeitraum MA den Gesamttrend besser repräsentieren und Rauschen filtern kann.
Diese Strategie erfasst Trendänderungen durch einfache MA-Crossovers. Sie gehört zu typischen Trendfolgestrategien. Die Vorteile sind einfach, einfach zu bedienen und durch Parameter-Tuning anpassbar. Die Nachteile sind langsame Reaktion und falsche Signale. Insgesamt hat sie eine klare Logik und ist ein guter Ausgangspunkt für Algo-Handel.
/*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")