Эта стратегия измеряет время пребывания цены в различных зонах для выявления зон с низким уровнем трения, и торгует прорывами в этих зонах.
Вычислить соотношение ценового пребывания вокруг текущего уровня за прошедшие N периодов как трение цен.
Определите, входит ли цена в зоны низкого трения с минимальным временем задержания в последнее время.
Используйте быстро взвешенный MA для определения направления недавнего тренда.
Приобрести прибыль, когда цена снова войдет в зоны высокого трения, ожидая переворота тренда.
Настраиваемые параметры, включая обратный отсчет трения, зону прорыва и т.д.
Ценовое трение избегает различных рынков и находит зоны начала тренда.
Быстрый MA сочетается с трением для определения направления.
Интуитивно понятные изображения, показывающие уровни трения цен.
Параметры по умолчанию оптимизированы для крипто высокочастотного трейдинга.
Простая и понятная логика, легкая для понимания и настройки.
Ценовое трение не может полностью предсказать будущие движения.
Быстрый MA может привести к неточному сроку.
Неэффективное сглаживание входных и выездных сделок.
Оптимизация рискует переустановить.
На волатильных рынках фиксированные параметры могут быть менее эффективными.
Проверьте различные периоды для расчета трения цен.
Оценить различные типы МД для определения недавней тенденции.
Оптимизируйте параметры зоны прорыва для повышения стабильности.
Добавьте стоп-лосс и прибыль для управления рисками.
Рассмотрим динамические параметры для адаптации к изменяющимся рынкам.
Проверка с использованием других символов и временных рамок.
Эта стратегия торгует ценовыми зонами трения с высокой вероятностью потенциала выхода, с плюсами и минусами.
/*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")