
La estrategia determina si se encuentra en una tendencia alcista o bajista mediante el cálculo de las medias móviles y la tasa de variación de los precios, en combinación con la línea K en un período determinado, y se hace más o menos.
La estrategia comienza por calcular el promedio móvil simple a de longitud l y el cambio de precio r de longitud l. Luego calcula el diferencial k entre el precio de la línea K actual y el promedio móvil. Finalmente, calcula la suma total de la línea K de la raíz s en el pasado.
Cuando sum>0 significa que la estrategia está en una tendencia ascendente, la estrategia hará más. Cuando sum significa que la estrategia está en una tendencia descendente, la estrategia hará vacío.
Después de hacer más shorting, se mantiene la posición hasta que la tendencia se invierte (suma de positivo a negativo o de negativo a positivo), en cuyo caso se liquida la posición.
La mayor ventaja de esta estrategia es su capacidad para capturar tendencias y adaptarse a las operaciones de tendencias. En concreto, tiene las siguientes ventajas:
El uso de promedios móviles para determinar la dirección de la tendencia general puede filtrar eficazmente el ruido del mercado y bloquear las tendencias principales.
La aplicación del índice de variación de precios mide la intensidad de la dinámica, evitando pasar por alto las tendencias fuertes.
Considerando varias líneas K en un período determinado, se puede juzgar con mayor precisión la tendencia, evitando ser llevado por einzelne Ausreißer in die Irre.
Mientras la tendencia no cambie, continúe manteniendo la posición y disfrute al máximo de las ganancias generadas por la tendencia.
El principal riesgo de esta estrategia es:
No se puede determinar con exactitud el final de la tendencia, lo que puede provocar una parada prematura o perder parte de las ganancias.
No se puede controlar eficazmente el tamaño de las pérdidas individuales y, en casos extremos, las pérdidas pueden ser grandes.
Los parámetros estratégicos incorrectos pueden conducir a operaciones excesivamente frecuentes o a perder algunas oportunidades comerciales.
Las posiciones a largo plazo pueden correr el riesgo de intereses y garantías nocturnas.
Para controlar el riesgo, se puede establecer un punto de stop loss, negociar solo productos de alta liquidez, optimizar los parámetros y usar el apalancamiento de manera racional.
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Prueba las medias móviles y el cambio de precio de diferentes longitudes para encontrar la combinación óptima de parámetros.
Prueba con otros indicadores como el MACD para determinar tendencias y mejorar aún más la precisión.
Aumentar los mecanismos de gestión de posiciones, como el cierre parcial después de la ganancia, para controlar las pérdidas individuales.
La combinación de los indicadores de volatilidad para establecer un stop loss dinámico reduce el riesgo de situaciones extremas.
Optimización de la lógica de apertura y negociación de posiciones, filtrando brechas falsas y mejorando la eficiencia de las transacciones.
La idea general de la estrategia es clara y fácil de implementar, y los inversores que buscan obtener ganancias estables para mantener posiciones largas y controlar las retiradas son relativamente razonables y se adaptan a la búsqueda de tendencias. Si se optimizan aún más los mecanismos de detención de pérdidas y administración de posiciones, se espera obtener mejores retornos estables a largo plazo.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if sum<0
strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0
//shortCondition = sum<0
//exitshort = sum>0
//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)