Estrategia de continuación de una tendencia sólida

El autor:¿ Qué pasa?, fecha: 2024-01-29 16:57:01
Las etiquetas:

img

Resumen general

Esta estrategia se basa en promedios móviles. Se lleva a cabo mucho después de una corrección a corto plazo en una tendencia al alza. Pertenece a la estrategia de tendencia siguiente.

Principio de la estrategia

Esta estrategia utiliza 3 líneas EMA con diferentes períodos. La línea EMA1 con un período más corto se utiliza para juzgar la tendencia a corto plazo. Las líneas EMA2 y EMA3 con períodos más largos se utilizan para determinar la tendencia a medio largo plazo, donde EMA3 tiene el período más largo. Cuando la línea EMA1 a corto plazo sube, indica que está en una tendencia alcista a corto plazo. Si EMA2 está por encima de EMA3, significa que el medio largo plazo también está en tendencia alcista, por lo que este es un buen momento para la entrada larga. Específicamente, la señal de negociación se genera cuando el precio cruza por encima de la línea EMA1. Para verificar aún más la estabilidad de la tendencia, requiere que EMA2 y EMA3 apunten hacia arriba y la última barra también esté aumentando en la barra de generación de señales, lo que ayuda a filtrar las señales de correcciones incorrectas a corto plazo.

La línea de stop loss y la línea de take profit se establecen para bloquear las ganancias y pérdidas.

Análisis de ventajas

La mayor ventaja de esta estrategia es que puede capturar eficazmente la tendencia al alza a medio y largo plazo, teniendo también en cuenta la corrección a corto plazo, lo que hace que su tiempo de retención y margen de beneficio sean considerables.

Además, la configuración de stop loss y take profit también hace que su riesgo sea controlable.

Análisis de riesgos

El mayor riesgo de esta estrategia es que no puede determinar el punto de reversión de la tendencia. Si la tendencia a mediano y largo plazo se invierte mientras que el corto plazo sigue subiendo, generará una señal larga incorrecta para ingresar al mercado, lo que puede causar mayores pérdidas.

Además, también pueden producirse pérdidas comerciales innecesarias en mercados de rango.

Direcciones de optimización

Considerar el ajuste de los parámetros del ciclo de la EMA en función de las características de las variedades comerciales específicas para que coincidan mejor con el ciclo medio largo de la variedad.

La combinación con otros indicadores para determinar el final de los ajustes a corto plazo puede evitar una entrada errónea.

Considere ajustar el coeficiente de pérdida de parada en función del valor de ATR, relajando adecuadamente la distancia de pérdida de parada cuando ATR sea grande.

Conclusión

En general, esta estrategia es una tendencia a mediano y largo plazo que sigue una estrategia que funciona bien. Determina la dirección de la tendencia a través de promedios móviles, el momento de entrada a través de señales de retroceso y bloquea las ganancias y pérdidas a través de configuraciones de stop loss y take profit. Pero también existe un cierto riesgo de seguir una tendencia ciega. Los operadores deben hacer su propio juicio sobre el mercado para decidir si ingresar.


/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true)

// Input
price = input(close)
MA1_Length = input.int(50, step=1, title='EMA 1 Length')
MA2_Length = input.int(80, step=1, title='EMA 2 Length')
MA3_Length = input.int(200, step=1, title='EMA 3 Length')
numberOfCandles = input(1)
slATRFactor = input(3.5)
tpATRFactor = input(3.5)
ATRLength = input(14)
// switch1=input(true, title="Show Bar Color?")
// switch2=input(true, title="Show Moving Averages?")

// Calculation
MA1 = ta.ema(price, MA1_Length)
MA2 = ta.ema(price, MA2_Length)
MA3 = ta.ema(price, MA3_Length)
prev_price = close[numberOfCandles]


// Strategy
allPositive = true
for i = 0 to numberOfCandles - 1 by 1
    if close[i] < close[i + 1] or close[i] < MA1
        allPositive := false
        break


long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive
// short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1)  and change(MA2)<0 ) 


if long
    strategy.entry('Long', strategy.long, comment='Long')

bought = strategy.position_size[0] > strategy.position_size[1]
atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0)


// Stop loss and take profit
slPrice = strategy.position_avg_price - slATRFactor * atrAtLong
tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong

SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0))

if price >= tpPrice and price < MA1
    strategy.close('Long')

if price < strategy.position_avg_price
    strategy.exit('Stop Loss', 'Long', stop=slPrice)


// Strategy Alert
alertcondition(long, title='Long Alert', message='Go Long!')
// alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')

// MA trend bar color
// up =  change(MA2)>0 and change(MA3)>0
// dn =  change(MA2)<0 and change(MA3)<0
// bar_color = up?green:dn?red:blue
// barcolor(switch1?bar_color:na)

// MA trend output color
change_1 = ta.change(MA2)
MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue
change_2 = ta.change(MA3)
MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue

// MA output
// EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
// EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
// fill(EMA2, EMA3, color=silver, transp=50)

color_1 = MA2 > MA3 ? color.green : color.red

EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1)
// EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue)
// EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)



Más.