Это количественная торговая стратегия, основанная на двойных движущихся средних перекрестных сигналах. Стратегия использует два движущихся средних, один как основную линию сигнала и другой как линию сглаживания сигнала. Она генерирует торговые сигналы путем мониторинга ценовых перекрестных сглаживания линии сигнала, позволяя захватить рыночные тенденции и отслеживание импульса.
Стратегия использует два уровня расчетов скользящей средней. Сначала вычисляется основная скользящая средняя (период по умолчанию 9), а затем вторичный процесс сглаживания (период по умолчанию 5). Стратегия предлагает различные методы расчета скользящей средней, включая простую скользящую среднюю (SMA), экспоненциальную скользящую среднюю (EMA), сглаженную скользящую среднюю (SMMA), взвешенную скользящую среднюю (WMA) и объемную взвешенную скользящую среднюю (VWMA).
Это улучшенная версия классической стратегии следования трендам, которая повышает стабильность при сохранении простоты с помощью двойного слоя движущейся средней конструкции. Стратегия предлагает хорошую масштабируемость и гибкость, адаптируемую к различным рыночным средам с помощью оптимизации параметров и расширения функций. Однако пользователям необходимо обратить внимание на контроль затрат на транзакции и управление рисками, и рекомендуется провести тщательное обратное тестирование перед живой торговлей.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average 1.0 Strategy", overlay=true) // Input for Moving Average Length len = input.int(9, minval=1, title="Length") src = input(close, title="Source") offset = input.int(title="Offset", defval=0, minval=-500, maxval=500) // Calculate the Moving Average out = ta.sma(src, len) // Plot the Moving Average plot(out, color=color.blue, title="MA", offset=offset) // Function to choose the type of moving average ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Input for Smoothing Method and Length typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing") // Calculate the Smoothing Line smoothingLine = ma(out, smoothingLength, typeMA) // Plot the Smoothing Line plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset) // Strategy Logic if (ta.crossover(close, smoothingLine)) strategy.entry("Buy", strategy.long) if (ta.crossunder(close, smoothingLine)) strategy.entry("Sell", strategy.short)