Эта стратегия рассчитывает время пребывания цены в разных зонах, чтобы определить, вошла ли цена в новую безрезистентную зону, и генерирует торговые сигналы для отслеживания тенденции в безрезистентной зоне.
Рассчитывается пропорция пребывания цены вблизи текущего уровня за прошедшие N циклов как мера ценового трения.
Определяет, вошла ли цена в низкую зону трения, где она оставалась в течение некоторого времени, как безрезистентную зону, которая генерирует сигнал.
Используйте быстро взвешенную движущуюся среднюю линию для определения направления недавнего тренда, торгуйте трендом при прорыве безрезистентной зоны.
Когда цена вновь входит в зону высокого трения, предсказуемая тенденция переворачивается и прекращается.
Параметры сделки могут быть настроены, включая циклы определения зоны трения, прорыв в зону и т. д.
Используйте ценовое трение, чтобы определить зону без сопротивления, избегайте зоны колебаний.
Быстрая средняя линия отслеживает последние тенденции, используя комбинацию для определения направлений.
Интуитивно понятный визуальный интерфейс, показывающий зоны трения цен.
Параметры по умолчанию оптимизированы для высокочастотных сделок с криптовалютами.
Правила стратегии простые, понятные и легко поддающиеся изменению.
В то же время, в некоторых странах, например, в Китае и Китае, цены на продукты питания и на продукты питания могут быть значительно выше.
Быстрое среднее время может быть неточным.
Невозможность эффективного и плавного входа и выхода из рынка.
При оптимизации может возникнуть риск пересогласования.
При резких рыночных изменениях фиксированные параметры могут оказаться неэффективными.
Тестирование различных циклических параметров для расчета ценового трения.
Оценка различных типов средних линий и оценки последних тенденций.
Оптимизация параметров прорыва безрезистентной зоны, повышение стабильности стратегии.
Добавление стратегии “стоп-лосс” и управления рисками торгов.
Подумайте о том, чтобы использовать динамические параметры для адаптации к изменениям рынка.
Проверка на большем количестве сортов и циклов.
Эта стратегия имеет определенные преимущества для торговли путем нахождения высокой вероятности вспышки тренда в зоне ценового трения. Однако существуют определенные параметрические ограничения. С помощью механизмов динамической оптимизации параметров, управления рисками и т. Д.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//made for 30m chart with BTCUSD or other cryptocurrency
strategy("LUBE",overlay=false )
friction=0.0
barsback=input(500,"bars back to measure friction",step=100)
flevel=input(50,"0-100 friction level to stop trade",step=2)
tlevel=input(-10,"pic lower than 0 to number selected above to initiate trade",step=2)
fl=flevel/100
tl=tlevel/100
for i = 1 to barsback
friction := if high[i] >= close and low[i] <= close
friction+(1+barsback)/(i+barsback)
else
friction
range=input(100,"bars back to measure lowest friction",step=10)
lowf = lowest(friction,range)
highf = highest(friction,range)
midf = (lowf*(1-fl)+highf*fl)
lowf2 = (lowf*(1-tl)+highf*tl)
plot(friction)
m=plot(midf[5],color=color.red)
l=plot(lowf2[5],color=color.white)
h=plot(highf[5],color=color.white)
fill(l,h,color.white)
src = input(title="Source", type=input.source, defval=close)
//FIR Filter
_fir(src) =>
(4 * src + 3 * nz(src[1]) + 2 * nz(src[2]) + nz(src[3])) / 10
fir = _fir(src)
trend = fir > fir[1]? 1:-1
//bgcolor(trend==1?color.lime:color.red,transp=50)
long=friction<lowf2[5] and trend == 1
short=friction<lowf2[5] and trend == -1
end=friction > midf[5]
keeplong=0
keeplong:=long?1:nz(keeplong[1])
keeplong:=short or end?0:keeplong
keepshort=0
keepshort:=short?1:nz(keepshort[1])
keepshort:=long or end?0:keepshort
bgcolor(keeplong==1?color.lime:keepshort==1?color.red:na,transp=50)
leverage=input(2,"leverage",step=.5)
enableshort=input(true,"enable shorts?")
barcount=0
barcount:=nz(barcount[1])+1
contracts=min(max(.000001,(strategy.equity/close)*leverage),50000)
strategy.entry("Long",strategy.long,when=long and barcount>20, qty=contracts)
strategy.close("Long",when=short or end )
strategy.entry("Short",strategy.short,when=short and enableshort==true and barcount>20, qty=contracts)
strategy.close("Short",when=(long or end) and enableshort==true)
alertcondition(keeplong==1 and keeplong[1]==0,"LONG")
alertcondition(keepshort==1 and keepshort[1]==0,"SHORT")
alertcondition((keeplong[1]==1 or keepshort[1]==1) and (keeplong==0 and keepshort==0),"CLOSE TRADE")