Esta estrategia se basa en la teoría de stop loss dinámica de Mr. Case. Esta estrategia se basa en calcular el rango de fluctuación dinámica de los precios para encontrar los mejores puntos de stop loss y stop loss para lograr el equilibrio de ganancias y pérdidas.
Principio de la estrategia:
Se calcula el índice de rango de fluctuación dinámica de los precios RWH y RWL.
Se obtiene el índice de desviación de precios Pk, basado en RWH y RWL.
Cuando Pk>0 se calcula el precio de parada en función del grado de desviación. Cuando Pk se calcula el precio de parada.
Se puede elegir el coeficiente de desviación de la parada de deterioro, generalmente entre 1 y 3 veces la diferencia estándar.
Cuando el precio toque el precio de stop loss, se realiza una operación inversa.
Las ventajas de esta estrategia:
Calculación dinámica de los puntos de parada de pérdidas, que se pueden ajustar según las fluctuaciones del mercado.
El punto de parada no debe estar demasiado cerca o demasiado flojo.
El cálculo matemático evita que las emociones subjetivas influyan en el juicio.
El riesgo de esta estrategia:
El cálculo del precio de parada está atrasado y se puede perder el punto de parada óptimo.
Optimización de los parámetros de desviación de los múltiplos para equilibrar el stop-loss.
No se puede limitar el tamaño de una sola pérdida, existe el riesgo de una gran pérdida.
En resumen, la estrategia puede optimizar inteligentemente la configuración de la parada de pérdidas hasta cierto punto, pero su eficacia aún debe ser comprobada mediante pruebas de retroalimentación y no puede evitar completamente el riesgo subjetivo SUBJECTIVO, y los inversores aún deben ser cautelosos.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 09/10/2019
// The Kase Dev Stops system finds the optimal statistical balance between letting profits run,
// while cutting losses. Kase DevStop seeks an ideal stop level by accounting for volatility (risk),
// the variance in volatility (the change in volatility from bar to bar), and volatility skew
// (the propensity for volatility to occasionally spike incorrectly).
//
// Kase Dev Stops are set at points at which there is an increasing probability of reversal against
// the trend being statistically significant based on the log normal shape of the range curve.
// Setting stops will help you take as much risk as necessary to stay in a good position, but not more.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Kase Dev Stops Backtest", overlay = true)
Length = input(30, minval=2, maxval = 100)
Level = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4])
reverse = input(false, title="Trade reverse")
RWH = (high - low[Length]) / (atr(Length) * sqrt(Length))
RWL = (high[Length] - low) / (atr(Length) * sqrt(Length))
Pk = wma((RWH-RWL),3)
AVTR = sma(highest(high,2) - lowest(low,2), 20)
SD = stdev(highest(high,2) - lowest(low,2),20)
Val4 = iff(Pk>0, highest(high-AVTR-3*SD,20), lowest(low+AVTR+3*SD,20))
Val3 = iff(Pk>0, highest(high-AVTR-2*SD,20), lowest(low+AVTR+2*SD,20))
Val2 = iff(Pk>0, highest(high-AVTR-SD,20), lowest(low+AVTR+SD,20))
Val1 = iff(Pk>0, highest(high-AVTR,20), lowest(low+AVTR,20))
ResPrice = iff(Level == 4, Val4,
iff(Level == 3, Val3,
iff(Level == 2, Val2,
iff(Level == 1, Val1, Val4))))
pos = iff(close < ResPrice , -1, 1)
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )