Estrategia de ruptura de tendencia mensual

El autor:¿ Qué pasa?, Fecha: 2023-10-24 16:08:33
Las etiquetas:

img

Resumen general

La estrategia de ruptura de tendencia mensual es un indicador de TradingView basado en Pine Script. Combina un promedio móvil adaptativo, rupturas de tendencia y el indicador RSI para determinar señales de entrada largas una vez al mes. Las salidas ocurren cuando el RSI muestra condiciones de sobrecompra.

Estrategia lógica

  1. Define la variable lastEntryMonth para rastrear el último mes de entrada. currentMonth obtiene el mes actual.

  2. Establezca los parámetros de MA adaptativos de TRAMA longitud=99 para que el precio fluya y determine la tendencia.

  3. Establezca longitud_trend=14 para trazar la línea de tendencia superior basada en los máximos de pivote.

  4. Calcular el indicador RSI con rsiLength=14 para determinar la sobrecompra/sobreventa.

  5. Lógico de entrada: pasar a largo si se cierra > TRAMA y cerrar las rupturas por encima de la línea de tendencia superior, si no se realizó ninguna entrada el mes pasado.

  6. Lógico de salida: cierre largo si el RSI es > 70 (sobrecomprado).

  7. Trata la línea TRAMA y el RSI sobrecomprado nivel 70.

La estrategia combina 3 indicadores técnicos principales para encontrar entradas largas de bajo riesgo una vez al mes.

Ventajas

  1. Combina múltiples indicadores para un análisis robusto del mercado y una mayor precisión.

  2. Limita las entradas a un plazo mensual, evitando el exceso de negociación.

  3. El MA adaptativo se adapta rápidamente a los cambios de tendencia.

  4. El RSI sobrevendido evita comprar en los picos del mercado y controla el riesgo.

  5. Las reglas de entrada/salida simples son fáciles de aplicar.

  6. Los parámetros personalizables permiten la optimización de la estrategia.

Los riesgos

  1. Si la ruptura falla, el riesgo de la sierra, si el precio cae por debajo de la línea de tendencia, el riesgo de la sierra.

  2. El mal momento conduce a entradas cerca de las cumbres.

  3. Los parámetros de los indicadores malos causan señales engañosas.

  4. Las rupturas pueden reflejar la volatilidad reciente del mercado.

  5. Controlar el riesgo/recompensa. Considere solo las retracciones comerciales o agregar otros filtros de confirmación.

  6. Valida los indicadores en varios marcos de tiempo.

  7. Optimiza los parámetros para que la estrategia coincida con el tipo de mercado.

Optimización

  1. Añadir un indicador de volumen para evitar fallas con un volumen bajo.

  2. Considere el beneficio parcial de tomar RSI salida sobrecomprada, manteniendo la posición parcial.

  3. Optimización de los parámetros de MA para adaptarse mejor a los cambios de tendencia.

  4. Añadir zonas antes/después del punto de ruptura para evitar comprar derecho a la inversión.

  5. Añadir más filtros como canales, volatilidad para una mayor precisión.

  6. Escale con nuevas rupturas en nuevos niveles de resistencia.

Conclusión

La estrategia de ruptura de tendencia mensual analiza la tendencia, el impulso y los extremos. Determina la tendencia en el marco de tiempo mensual, pero entra en rupturas de plazo más cortos. El RSI supervisa la gestión de riesgos. La lógica simple identifica entradas largas mensuales optimizadas. Equilibra el seguimiento de tendencias y los controles de riesgos. La optimización de parámetros lo adapta a diferentes condiciones del mercado. En general, esta es una estrategia simple pero robusta que combina usabilidad y gestión de riesgos efectiva.


/*backtest
start: 2022-10-17 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Bannos Strategy', shorttitle='Bannos', overlay=true)

//The provided script is an indicator for TradingView written in Pine Script version 5. The indicator is used to determine entry and exit points for a trading strategy. Here's a detailed breakdown of what the script does:

// Strategy Definition:

// Bannos Strategy is the full name, with a short title Bannos.
// The overlay=true option indicates that the strategy will be overlayed on the price chart.
// Tracking Entry Month:

// A variable lastEntryMonth is set up to track the month of the last entry.
// currentMonth identifies the current month.
// Trend Regularity Adaptive Moving Average (TRAMA):

// It takes an input of length 99 as default.
// It uses adaptive calculations to track trend changes.
// Trendlines with Breaks:

// Identifies local peaks over a given period (in this case, 14) and calculates a slope based on these peaks.
// Relative Strength Index (RSI):

// Uses a length of 14 (default) to calculate the RSI.
// RSI is an oscillation indicator that indicates overbought or oversold conditions.
// Strategy Logic for Long Entry:

// A long position is opened if:
// The close price is above the TRAMA.
// There's a crossover of the close price and the upper trendline.
// The position is taken only once per month.
// Strategy Logic for Long Exit:

// The long position is closed if the RSI exceeds 70, indicating an overbought condition.
// Plotting:

// The TRAMA is plotted in red on the chart.
// A horizontal line is also drawn at 70 to indicate the RSI's overbought zone.
// In summary, this strategy aims to enter a long position when certain trend and crossover conditions are met, and close the position when the market is considered overbought as per the RSI. Additionally, it ensures entries only occur once a month.
//



// Variable pour suivre le mois de la dernière entrée
var float lastEntryMonth = na
currentMonth = month(time)

// Parameters for Trend Regularity Adaptive Moving Average (TRAMA)
length_trama = input(99)
src_trama = close
ama = 0.
hh = math.max(math.sign(ta.change(ta.highest(length_trama))), 0)
ll = math.max(math.sign(ta.change(ta.lowest(length_trama)) * -1), 0)
tc = math.pow(ta.sma(hh or ll ? 1 : 0, length_trama), 2)
ama := nz(ama[1] + tc * (src_trama - ama[1]), src_trama)

// Parameters for Trendlines with Breaks
length_trend = 14
mult = 1.0
ph = ta.pivothigh(length_trend, length_trend)
upper = 0.
slope_ph = 0.
slope_ph := ph ? mult : slope_ph
upper := ph ? ph : upper - slope_ph

// Parameters for RSI
rsiLength = 14
up = ta.rma(math.max(ta.change(close), 0), rsiLength)
down = ta.rma(-math.min(ta.change(close), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// Strategy Logic for Long Entry
longCondition = close > ama and ta.crossover(close, upper) and (na(lastEntryMonth) or lastEntryMonth != currentMonth)
if (longCondition)
    lastEntryMonth := currentMonth
    strategy.entry('Long', strategy.long)

// Strategy Logic for Long Exit
exitCondition = rsi > 70
if (exitCondition)
    strategy.close('Long')

// Plotting
plot(ama, 'TRAMA', color=color.red)
hline(70, 'Overbought', color=color.red)


Más.