Esta estratégia mede o tempo de permanência do preço em diferentes zonas para identificar áreas de baixo atrito e negocia breakouts nessas zonas.
Calcular o rácio de permanência dos preços em torno dos níveis atuais nos últimos N períodos como atrito dos preços.
Identificar se o preço entra em zonas de baixo atrito com tempo de permanência mínimo recentemente.
Usar MA ponderado rápido para determinar a direção da tendência recente.
Obter lucro quando o preço voltar a entrar em zonas de alta fricção antecipando a reversão da tendência.
Parâmetros personalizáveis, incluindo o retrocesso de atrito, a zona de ruptura, etc.
A fricção de preços evita mercados variados e encontra zonas de surto de tendência.
A MA rápida combina-se com o atrito para determinar a direção.
Visuais intuitivos que mostram os níveis de atrito dos preços.
Parâmetros padrão otimizados para negociação de criptomoedas de alta frequência.
Lógica simples e clara, fácil de compreender e personalizar.
A fricção dos preços é incapaz de prever completamente os movimentos futuros.
A MA rápida pode produzir um timing impreciso.
A suavização ineficaz de entradas e saídas de negócios.
A otimização corre o risco de ser excessivamente adequada.
Os parâmetros fixos podem apresentar um desempenho inferior em mercados voláteis.
Teste diferentes períodos para calcular o atrito dos preços.
Avaliar os diferentes tipos de AIM para determinar a tendência recente.
Otimizar os parâmetros da zona de ruptura para maior estabilidade.
Adicione stop loss e take profit para gestão de riscos.
Considerar parâmetros dinâmicos para se adaptar aos mercados em evolução.
Testes em mais símbolos e prazos.
Esta estratégia negocia zonas de atrito de preços com alto potencial de ruptura de probabilidade, com prós e contras.
/*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")