Стратегия основана на генерировании торговых сигналов в брин-поясе и двойной равномерной линии в сочетании с фильтрацией тенденций с целью достижения высокой выигрышной скорости и хорошей прибыльно-неприбыльной пропорции.
Используйте ленту Брин для определения многополосных сигналов верхнего, среднего и нижнего треков. Когда цена касается верхнего трека, она смотрит вверх, а когда касается нижнего трека, она смотрит вверх.
Для определения тенденции используйте среднесрочную среднюю среднюю линию длиной 20 и долгосрочную среднюю среднюю линию длиной 60. Когда долгосрочная средняя линия проходит через короткую среднюю линию, она становится положительной, а когда она проходит, она становится отрицательной.
Динамически корректируйте положение остановки в зависимости от ширины полосы бурин. Когда ширина полосы бурин больше 0,5%, положение остановки находится на нижней полосе; когда ширина меньше 0,5%, положение остановки уменьшается на половину полосы нижней полосы.
Условия входа: в случае взлетов цена прорывается вниз, как сигнал, и в случае падения цена прорывается вверх, как сигнал.
Условия выезда: при многократном движении при попадании на трассу или кратковременную линию остановка при попадании на трассу или кратковременную линию остановка при попадании на трассу или кратковременную линию остановка при попадании на трассу.
Стоп-условия: стоп-условия, когда цена падает вниз по линии Бурин; стоп-условия, когда цена пробивается вверх по линии Бурин.
Используя двойную равномерную линию для определения тенденции, можно эффективно фильтровать неопределенные тенденции или рыночный шум.
Средняя полоса Брин-ленты служит в качестве поддерживающего сопротивления, а верхняя и нижняя полосы - в качестве динамического места остановки, чтобы контролировать риск.
Стойки регулируются в зависимости от полосы пропускания Бринна, чтобы снизить вероятность активирования стоп-поста и обеспечить разумное расположение стоп-поста.
Это означает, что у вас будет более высокая вероятность выиграть.
Двойная средняя линия имеет большую вероятность создания ложных прорывов, которые могут пропустить поворот тренда. Можно уместно сократить средний цикл.
Брин-пояса легко попадают в шокирующие тенденции. Их можно избежать, снизив частоту торгов.
Стоп-позиции легко пробиваются, когда они находятся близко к поддерживающим сопротивлениям. Стоп-диапазон может быть расширен соответствующим образом.
Возможность эффективного захвата обратной коррекции короткой линии. Можно уместно сократить время удержания позиции.
Оптимизация параметров среднелинейного цикла, поиск подходящей стратегии для рыночной среды.
Оптимизация множительных параметров по буринской полосе, сбалансированная вероятность пробития стоп-лома.
Добавление других показателей для многофакторной проверки повышает качество сигнала.
В результате, мы сможем оценить тенденции и избежать отклонений.
Оптимизация управления капиталом, например, фиксированная доля, фиксированный стоп-лосс и т. д., для контроля одиночных убытков.
Применение ценового шока, например, при значительном увеличении валового пространства.
Эта стратегия в целом более стабильна, она определяет направление тренда с помощью двойной равновесной линии, обеспечивает поддержку сопротивления и устанавливает динамическое остановку. Однако есть определенные ограничения, такие как ошибочное суждение о тенденции, слишком близкие остановки и т. Д. Впоследствии можно оптимизировать из нескольких аспектов, таких как система равновесия, стратегия остановки убытков и управление капиталом, чтобы параметры стратегии были более грубыми и в целом могли сохранять стабильную производительность в различных рыночных условиях.
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="yuthavithi BB Scalper 2 strategy", overlay=true)
len = input(20, minval=1, title="Length")
multiplier = input(4, minval=1, title="multiplier")
trendTimeFrame = input(60, minval=1, title="Trend Time Frame")
useTrendFilter = input(true, type=bool, title = "Use Trend Filter")
src = input(close, title="Source")
out = sma(src, len)
//plot(out, title="SMA", color=blue)
stdOut = stdev(close, len)
bbUpper = out + stdOut * multiplier
bbLower = out - stdOut * multiplier
bbUpper2 = out + stdOut * (multiplier / 2)
bbLower2 = out - stdOut * (multiplier / 2)
bbUpperX2 = out + stdOut * multiplier * 2
bbLowerX2 = out - stdOut * multiplier * 2
bbWidth = (bbUpper - bbLower) / out
closeLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), close)
smaLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), sma(close,20))
//plot(smaLongTerm, color=red)
trendUp = useTrendFilter ? (closeLongTerm > smaLongTerm) : true
trendDown = useTrendFilter? (closeLongTerm < smaLongTerm) : true
bearish = ((cross(close,bbUpper2) == 1) or (cross(close,out) == 1)) and (close[1] > close) and trendDown
bullish = ((cross(close,bbLower2) == 1) or (cross(close,out) == 1)) and (close[1] < close) and trendUp
closeBuy = (high[1] > bbUpper[1]) and (close < bbUpper) and (close < open) and trendUp
closeSell = (((low[1] < bbLower[1]) and (close > bbLower)) or ((low[2] < bbLower[2]) and (close[1] > bbLower[1]))) and (close > open) and trendDown
cutLossBuy = iff(bbWidth > 0.005, (low < bbLower) and (low[1] > bbLower[1]) and trendUp, (low < bbLowerX2) and (low[1] > bbLowerX2[1]) and trendUp)
cutLossSell = iff(bbWidth > 0.005, (high > bbUpper) and (high[1] < bbUpper[1]) and trendDown, (high > bbUpperX2) and (high[1] < bbUpperX2[1]) and trendDown)
if (bullish)
strategy.entry("Buy", strategy.long, comment="Buy")
if (bearish)
strategy.entry("Sell", strategy.short, comment="Sell")
strategy.close("Buy", closeBuy or cutLossBuy)
strategy.close("Sell", closeSell or cutLossSell)