
La estrategia de negociación de diferencia de precios de la tasa de fluctuación de doble eje de tiempo determina el estado de sobrecompra y sobreventa del mercado mediante el cálculo de la diferencia de precios entre los indicadores RSI de dos períodos de tiempo diferentes para lograr una negociación de tendencias de bajo riesgo.
El indicador central de la estrategia es el shortTermXtrender y el longTermXtrender. shortTermXtrender calcula el diferencial de precios RSI en la línea de tiempo corta, y el longTermXtrender calcula el diferencial de precios RSI en la línea de tiempo larga.
La línea de tiempo corta utiliza el RSI para calcular la diferencia de precios entre el EMA de 7 días y el LMA de 4 días, y luego la diferencia de precios entre el RSI de 4 días y el LMA de 4 días y el LMA de 4 días, y luego la diferencia de precios entre el RSI de 4 días y el LMA de 4 días y el LMA de 4 días.
Cuando el shortTermXtrender lleva el 0, hace más; cuando el longTermXtrender lleva el 0, también hace más. El principio de stop loss después de hacer más es que el shortTermXtrender lleva el 0 y el longTermXtrender lleva el 0, también se detiene.
De esta manera, se pueden filtrar más brechas falsas a través de un juicio de doble eje de tiempo.
La mayor ventaja de esta estrategia es la precisión en la determinación de las tendencias. El uso de la combinación de dos ejes de tiempo puede filtrar el ruido de manera efectiva y bloquear la dirección de la tendencia objetivo. Esto garantiza operaciones de seguimiento de tendencias de bajo riesgo.
Además, la estrategia ofrece espacio para la optimización de los parámetros. El usuario puede optimizar el efecto de la estrategia de acuerdo con diferentes variedades y períodos de tiempo, ajustar el ciclo SMA, los parámetros RSI, etc.
El principal riesgo de esta estrategia es el error de juicio sobre el exceso de espacio. En situaciones de crisis, es fácil generar señales erróneas. Si se mantiene la posición abierta, se corre el riesgo de perder.
Además, la configuración incorrecta de los parámetros también puede causar un mal resultado. Si los parámetros del período de tiempo se establecen demasiado cortos, aumenta la probabilidad de error; Si los parámetros del período de tiempo se establecen demasiado largos, se pierden oportunidades de tendencia.
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Mecanismo de suspensión adicional. La estrategia actual no tiene suspensión establecida, pero se puede detener en el momento en que se alcanza el objetivo de ganancia.
Aumento de la gestión de posiciones. Se puede ajustar dinámicamente las posiciones en función de indicadores como el tamaño de los fondos y la volatilidad.
Prueba de la configuración de parámetros de diferentes variedades. El usuario puede probar la combinación óptima de parámetros mediante la retroalimentación de diferentes períodos de tiempo, como el día y los 60 minutos.
Aumentar el aprendizaje automático para ayudar a juzgar. Se puede entrenar a los modelos para juzgar el tipo de situación, lo que permite ajustar dinámicamente los parámetros de la estrategia y aumentar la tasa de éxito.
La estrategia de comercio de diferencia de precios de la tasa de fluctuación de dos ejes temporales captura una tendencia eficiente mediante la construcción de indicadores de dos ejes temporales. El espacio de optimización de la estrategia es grande, y los usuarios pueden optimizar mediante ajustes de parámetros, administración de paradas y administración de posiciones, para obtener mejores efectos de la estrategia.
/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study("MavXtrender")
strategy("MavXtrender")
ShortTermSMA = input(7)
ShortTermLMA = input(4)
ShortTermRSI = input(2)
LongTermMA = input(4)
LongTermRSI = input(2)
UseFactors = input(true)
TradeShortTerm = input(true)
TradeLongTerm = input(true)
count = TradeShortTerm == true ? 1 : 0
count := TradeLongTerm == true ? count + 1 : count
// set position size
Amount = strategy.equity / (close * count)
ShortTermLMA := UseFactors == true ? round(ShortTermSMA * ShortTermLMA) : ShortTermLMA
ShortTermRSI := UseFactors == true ? round(ShortTermSMA * ShortTermRSI) : ShortTermRSI
LongTermMA := UseFactors == true ? round(ShortTermSMA * LongTermMA) : LongTermMA
LongTermRSI := UseFactors == true ? round(ShortTermSMA * LongTermRSI) : LongTermRSI
shortTermXtrender = rsi(ema(close, ShortTermSMA) - ema(close, ShortTermLMA), ShortTermRSI ) - 50
longTermXtrender = rsi( ema(close, LongTermMA), LongTermRSI ) - 50
// === INPUT BACKTEST RANGE ===
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 2020, title = "To Year", minval = 2012)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
strategy.entry("ShortTerm", strategy.long, qty = Amount, when = window() and crossover(shortTermXtrender,0) and TradeShortTerm)
strategy.entry("LongTerm", strategy.long, qty = Amount, when = window() and crossover(longTermXtrender,0) and TradeLongTerm)
strategy.close("ShortTerm", when = crossunder(shortTermXtrender,0) or time > finish)
strategy.close("LongTerm", when = crossunder(longTermXtrender,0) or time > finish)
shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000
plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50)
longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000
plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80)
plot(longTermXtrender , color=color.white, style=plot.style_line, linewidth=1, title="B-Xtrender Trend - Line", transp = 80)