Эта стратегия в полной мере использует суждение о тренде скользящих средних и суждение о перекуплении / перепродаже полос Боллинджера. С сглаживанием скользящей средней T3, она может вовремя определить обратный тренд и выйти на рынок. В зоне колебаний она использует полосы Боллинджера для выявления перекупленных / перепроданных областей для торговли контра-тенденсом. Таким образом, она реализует ультра-короткосрочную торговлю.
Стратегия в основном использует три группы скользящих средних для выявления тренда и генерации торговых сигналов. Первая - скользящая средняя T3, которая может фильтровать колебания цен посредством экспоненциального сглаживания и судить о направлении тренда. Вторая - среднесрочная скользящая средняя, здесь используется 20-периодная SMA для определения среднесрочной тенденции. Последняя - быстрые и медленные скользящие средние, 50-периодные и 200-периодные скользящие средние T3 соответственно. Когда быстрая линия больше медленной линии, это указывает на восходящую тенденцию, в противном случае - нисходящую тенденцию.
Торговые сигналы генерируются, когда среднесрочная SMA пересекает среднесрочный T3 вверх в сочетании с восходящей тенденцией, идите длинным. Когда среднесрочная SMA пересекает ниже среднесрочного T3 вниз в сочетании с нисходящей тенденцией, идите коротким. Кроме того, полосы Боллинджера могут использоваться для получения прибыли и остановки потери. Если цена проходит через верхнюю полосу, рассмотрите возможность получения прибыли. Если цена проходит через нижнюю полосу, рассмотрите возможность остановки потери.
В частности, длинное условие - средняя SMA пересекает средний T3 вверх, а быстрая MA больше медленной MA. Если цена проходит через верхнюю полосу Боллинджера или средняя SMA пересекает ниже T3, рассмотрите возможность получения прибыли. короткое условие - средняя SMA пересекает ниже средней T3 вниз, а быстрая MA меньше медленной MA. Если цена проходит через нижнюю полосу Боллинджера или средняя SMA пересекает выше T3, рассмотрите стоп-лосс.
Улучшения:
В целом, эта стратегия использует скользящие средние систематически для определения тренда и определяет уровни перекупленности / перепродажи с помощью полос Боллинджера. Она может вовремя выйти на рынок при переломе тренда, а также эффективно контролирует риски. Но настройка параметров и оптимизация важны для того, чтобы стратегия действительно хорошо работала. Дальнейшее сочетание с силой тренда, волатильностью и отставанием стоп-лосса может сделать стратегию более надежной и интеллектуальной.
/*backtest start: 2023-10-25 00:00:00 end: 2023-11-01 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true) //T3 b = 0.7 c1 = -b*b*b c2 = 3*b*b+3*b*b*b c3 = -6*b*b-3*b-3*b*b*b c4 = 1+3*b+b*b*b+3*b*b t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len) //T3 end length = input(20, minval=1) mult = input(2.5, minval=0.001, maxval=50, title="StdDev") basis = t3(length) basisDev = t3(length/10) dev = mult * stdev(basisDev,length) upper = basis + dev lower = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) stoploss = input(true, "Stop Loss") basisSma = sma(close, length) p3 = plot(basisSma, color=color.blue, title="MA", offset=offset) fastT3 = t3(50) slowT3 = t3(200) crossUp = crossover(basisSma, basis) crossDown = crossunder(basisSma, basis) bollBounce = crossover(close, upper) bollReject = crossunder(close, lower) underBasis = crossunder(close, basis) overBasis = crossover(close, basis) trendUp = fastT3 > slowT3 trendDown = fastT3 < slowT3 strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na)) strategy.close("long", when=(bollBounce or crossDown or underBasis)) strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na)) strategy.close("short", when=(bollReject or crossUp or overBasis))