
La estrategia de agotamiento de la oscilación dinámica es una estrategia de seguimiento de tendencias que utiliza promedios móviles y índices de oscilación porcentual de precios para minimizar el riesgo de caída. La estrategia pertenece al modelo de negociación de fondos índice y puede controlar el riesgo de manera efectiva.
Los indicadores centrales de esta estrategia son el valor de agotamiento y el promedio de agotamiento. El valor de agotamiento es una medida de la oscilación de los precios, que se calcula a partir del precio de cierre, el precio más alto y el precio más bajo. El método específico de cálculo es: ((precio de cierre + precio más alto + precio más bajo - promedio móvil del valor de agotamiento) / ((promedio móvil del valor de agotamiento). El promedio de agotamiento es el promedio móvil del valor de agotamiento.
Además, la estrategia utiliza promedios móviles de corto plazo para ayudar a determinar la tendencia, incluidas las líneas de 300 días, 150 días y 50 días. Cuando las medias móviles de corto plazo cruzan por debajo de las medias móviles de largo plazo, lo que indica una reversión de la tendencia, se debe considerar el stop loss.
El MACD también se usa para determinar puntos de venta y compra en el corto plazo. Cuando el MACD cruza la línea de señal en línea, se ve al alza, y cuando cruza la línea de señal en línea baja. El RSI bajo también se utiliza como una señal de compra.
La lógica de entrada y salida es la siguiente:
Condiciones de compra: el promedio de agotamiento en el valor de agotamiento, y la línea de 50 días es superior a la línea de 150 días; o el RSI es inferior a 30 ◦
Condiciones de parada a corto plazo: atravesar la línea media de agotamiento bajo el valor de agotamiento; o atravesar la línea de señal bajo MACD.
Condiciones de parada a medio y largo plazo: 50 días por debajo de la línea de 150 días; o 150 días por debajo de la línea de 300 días.
La estrategia combina varios indicadores para determinar la tendencia de agotamiento final para controlar el riesgo y tiene las siguientes ventajas:
Los indicadores de agotamiento son eficaces para determinar la corrección y la reversión. La detección oportuna de la reversión de la tendencia es clave para controlar eficazmente el riesgo.
Utilice las medias móviles de varios períodos de tiempo para determinar tendencias y evitar ser engañado por el ruido del mercado a corto plazo.
El MACD ayuda a confirmar los puntos de venta y venta y mejora la efectividad de la estrategia.
El indicador RSI utiliza la venta baja y la venta alta para comprar cuando está por encima de la baja.
Una estrategia de stop loss clara y eficaz para controlar el riesgo de cada operación.
La estrategia también tiene ciertos riesgos:
Basado en varios indicadores, la configuración incorrecta de los parámetros puede causar errores en las señales de negociación. Se requieren pruebas repetidas para optimizar los parámetros.
Los indicadores de agotamiento no son totalmente fiables y pueden fallar cuando los precios se desvían demasiado.
La configuración incorrecta de los puntos de parada puede causar temblores de línea demasiado cortos y ser detenidos. Los puntos de parada deben tener en cuenta el efecto a largo plazo de la estrategia.
Cuando la bolsa se tambalea, el indicador se desvanece y es necesario controlar el tamaño de la posición.
La estrategia puede ser optimizada en los siguientes aspectos:
Prueba diferentes combinaciones de parámetros para encontrar el mejor parámetro para reducir la señal de error. Los parámetros clave ajustables incluyen el ciclo de la media, el ciclo de agotamiento, etc.
Combinado con un indicador de volatilidad como ATR, ajusta dinámicamente el stop loss amplitud y relaja adecuadamente el stop loss amplitud en caso de grandes fluctuaciones.
Optimización de la gestión de posiciones, se pueden configurar diferentes reglas de proporción de posiciones para diferentes etapas de la bolsa.
La combinación de indicadores gráficos como líneas de acumulación y líneas de apoyo mejora la eficacia de la estrategia en el combate.
Aumentar los algoritmos de aprendizaje automático para ayudar a evaluar la eficacia de los indicadores clave y optimizar la dinámica.
La estrategia de agotamiento de la dinámica utiliza una combinación de varios indicadores para determinar la reversión de la tendencia para controlar el riesgo de negociación. La estrategia tiene la capacidad de seguir la tendencia y puede determinar de manera efectiva el momento de comprar o vender.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritualhealer117
//@version=4
strategy("Infiten Slope Strategy", overlay=false,calc_on_every_tick = true, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
// //TIME RESTRICT FOR BACKTESTING {
// inDateRange = (time >= timestamp(syminfo.timezone, 2003,
// 1, 1, 0, 0)) and
// (time < timestamp(syminfo.timezone, 2021, 5, 25, 0, 0))
// //}
//OPTIMAL PARAMETERS {
daysback = 30
volumesens = 1.618
//}
//Calculating Exhaustion and Exhaustion Moving Average {
clh = close+low+high
exhaustion = (clh-sma(clh,daysback))/sma(clh,daysback)
exhaustionSma = sma(exhaustion,daysback)
//}
//Long Term Moving Averages for sell signals {
red = sma(close,300)
white = sma(close,150)
blue = sma(close,50)
plot(red,color=color.red)
plot(white,color=color.white)
plot(blue,color=color.blue)
//}
//MACD Calculation {
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//}
//SIGMOID Bottom {
timeAdjust = 300/sma(close,500)
//}
//RSI bottom {
len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//}
//Entry and exit conditions {
//Sell conditions
bigVolume = sma(volume,30)*volumesens
sellcond1 = crossunder(exhaustion,exhaustionSma) and volume > bigVolume
sellcond2 = crossunder(macd,signal) and volume > bigVolume
midtermsellcond1 = crossunder(blue,white)
longtermsellcond1 = white < red
//Buy conditions
buycond = crossover(exhaustion,exhaustionSma) and not longtermsellcond1
buycond2 = rsi < 30
buycond3 = crossover(blue,white) and longtermsellcond1
//}
//Backtest Run Buy/Sell Commands {
strategy.entry("buycond",true, when=buycond and bigVolume)
strategy.entry("buycond2",true, when=buycond2 and bigVolume)
strategy.close_all(when=sellcond1,comment="short term sell signal 1")
strategy.close_all(when=midtermsellcond1, comment="mid term sell signal 1")
strategy.close_all(when=longtermsellcond1, comment="long term sell signal 1")
strategy.close_all(when=sellcond2, comment="short term sell signal 2")
plot(strategy.position_size)
//Sell on last tested day (only for data collection)
//strategy.close_all(when=not inDateRange)
//}