
Эта стратегия реализует операцию короткого отслеживания путем сочетания линейного регрессивного индикатора с двузначным скользящим средним. Стратегия основана на открытии позиции при повышении цены и снижении цены. В то же время, стратегия также использует двузначное скользящее среднее для определения ценовой тенденции в качестве вспомогательного условия для создания позиции.
В этой стратегии прорыв цены определяется в основном с помощью индикатора линейной регрессии. Индикатор линейной регрессии - это восходящий и нисходящий трейлер, рассчитанный с помощью метода линейной регрессии на основе максимальных и минимальных цен в течение определенного периода.
Кроме того, в этой стратегии также вводится бинарная скользящая средняя, которая определяет промежуточную тенденцию. Бинарная скользящая средняя может быстрее реагировать на изменения цены. Когда цена переходит из верхней части, если бинарная скользящая средняя уже находится выше цены, показывая, что она в настоящее время находится в нисходящей тенденции, мы создаем открытую позицию.
В частности, стратегия включает в себя следующее:
По сравнению с традиционными показателями, такими как скользящая средняя, эта стратегия имеет следующие преимущества:
В этой стратегии также есть некоторые риски, о которых следует помнить:
Для вышеуказанных рисков мы можем решить такие методы, как оптимизация параметров, строгое остановка убытков и надлежащая разгрузка прорыва.
Эта стратегия также может быть оптимизирована в следующих аспектах:
Эта стратегия имеет определенные преимущества как в теории, так и в практике. Благодаря постоянной оптимизации корректировки, можно еще больше повысить стабильность и эффективность стратегии. Эта стратегия подходит для коротких линий и может принести хорошую альфу для количественных трейдеров.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp(9999,1,1,0,0)
_testPeriod() => true
len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
length = input(200, title="DEMA")
d1 = ema(close, length)
d2 = 2 * d1 - ema(d1, length)
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA
dema=sma(d2,length)
turnGreen = d2 > d1 and d2[1] <= d1[1]
turnRed = d2 <= d1 and d2[1] > d1[1]
up =turnGreen
down=turnRed
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small)
plotshape(up, title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small)
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)
strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))