Эта стратегия сочетает в себе простую скользящую среднюю (SMA) и линейную линейную регрессивную линию тренда. Она устанавливает условие длинного входа, когда цена закрытия выше как SMA, так и линии тренда, и условие выхода, когда цена закрытия ниже них. Стратегия в основном использует SMA в качестве торгового сигнала и линию текущего тренда для поддержки канала. Она входит в торговлю при прорыве верхнего канала и выходит при прорыве нижнего канала.
Ключевые компоненты этой стратегии включают:
SMA: Простая скользящая средняя, рассчитывающая среднюю цену закрытия за период (smaPeriod) как сигнальную линию.
Rolling Trendline: Установка лучшей линейной регрессионной линии над окном (окно) в качестве сигнала тренда.
Условие входа: перейти на длинный курс при закрытии цены > SMA и тренд-линии.
Условия выхода: закрытие позиции, когда цена закрытия < SMA и линия тренда.
Таким образом, стратегия в основном опирается на прорыв сигнала SMA для входа и прорыв канала для выхода.
Эта стратегия объединяет двойной фильтр MA и линии тренда, который может эффективно уменьшить ложные сделки с прорывом.
В этой стратегии также есть некоторые риски:
Некоторые направления оптимизации для этих рисков:
Эта стратегия может быть оптимизирована в следующих аспектах:
Добавление динамических функций корректировки для периода SMA, параметров скольжения на основе рыночных режимов.
Разработать эластичный механизм стоп-лосса.
Добавить фильтр из других показателей, например, объем, RSI для улучшения точности решения.
Разрабатывайте обратную версию. Идите длинные, когда цена приближается к дну и нарушает канал снижения.
Эта стратегия объединяет торговые сигналы от скользящей средней и поддержки канала от колеблющейся линии тренда для реализации следующих операций по тренду. Двойной фильтр снижает вероятность ложного прорыва и улучшает качество принятия решений. Он имеет простые настройки параметров и четкую логику, которая легко внедряется и оптимизируется. Вкратце, эта стратегия формирует надежную, простую и интуитивно понятную торговую систему прорыва тренда.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SMA Strategy with Rolling Trendline", overlay=true) // Input parameters smaPeriod = input(14, title="SMA Period") window = input(20, title="Trendline Window") startDate = input(timestamp("2023-01-01"), title="Start Date") endDate = input(timestamp("2023-12-31"), title="End Date") // Calculating SMA sma = sma(close, smaPeriod) // Function to calculate linear regression trendline for a window linreg_trendline(window) => sumX = 0.0 sumY = 0.0 sumXY = 0.0 sumX2 = 0.0 for i = 0 to window - 1 sumX := sumX + i sumY := sumY + close[i] sumXY := sumXY + i * close[i] sumX2 := sumX2 + i * i slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX) intercept = (sumY - slope * sumX) / window slope * (window - 1) + intercept // Calculating the trendline trendline = linreg_trendline(window) // Entry and Exit Conditions longCondition = close > sma and close < trendline exitLongCondition = close < sma and close > trendline // Strategy logic if (true) if (longCondition) strategy.entry("Long", strategy.long) if (exitLongCondition) strategy.close("Long") // Plotting plot(sma, title="Simple Moving Average", color=color.blue) plot(trendline, title="Rolling Trendline", color=color.red) plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup) plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)