Esta estrategia mide el tiempo de permanencia de los precios en diferentes zonas para identificar áreas de baja fricción y las rupturas comerciales en estas zonas.
Calcular la relación de mantenimiento de precios alrededor de los niveles actuales durante los últimos N períodos como fricción de precios.
Identificar si el precio entra en zonas de baja fricción con un tiempo mínimo de espera recientemente.
Utilice MA ponderado rápido para determinar la dirección de la tendencia reciente.
Tome ganancias cuando el precio vuelva a entrar en zonas de alta fricción anticipándose a una inversión de tendencia.
Los parámetros personalizables incluyen el retroceso de fricción, la zona de ruptura, etc.
La fricción de precios evita mercados variados y encuentra zonas de brote de tendencia.
El MA rápido se combina con la fricción para determinar la dirección.
Visuales intuitivos que muestran los niveles de fricción de precios.
Parámetros predeterminados optimizados para el comercio de criptomonedas de alta frecuencia.
Lógica simple y clara fácil de comprender y personalizar.
La fricción de los precios no puede predecir completamente los movimientos futuros.
El MA rápido puede producir un tiempo inexacto.
Infecundidad en el allanamiento de entradas y salidas de operaciones.
La optimización corre el riesgo de sobreajuste.
Los parámetros fijos pueden tener un rendimiento inferior en mercados volátiles.
Prueba diferentes períodos para calcular la fricción de los precios.
Evaluar los diferentes tipos de AUM para determinar la tendencia reciente.
Optimice los parámetros de la zona de escape para una mayor estabilidad.
Agregue stop loss y take profit para la gestión de riesgos.
Considere los parámetros dinámicos para adaptarse a los mercados cambiantes.
Prueba de retroceso en más símbolos y marcos de tiempo.
Esta estrategia opera en zonas de fricción de precios con alto potencial de ruptura de probabilidad, con pros y 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")