Estrategia de trading de Ethereum basada en supertendencia


Fecha de creación: 2024-01-08 14:35:37 Última modificación: 2024-01-08 14:35:37
Copiar: 0 Número de Visitas: 726
1
Seguir
1617
Seguidores

Estrategia de trading de Ethereum basada en supertendencia

Descripción general

La estrategia se basa en un indicador de tendencia súper, en combinación con el ATR para establecer dinámicamente una línea de stop loss y así beneficiarse de la fuerte tendencia de Ethereum. Se puede ejecutar en el par de operaciones ETH/USD en el intercambio Coinbase.

Principio de estrategia

La estrategia utiliza un clásico indicador de seguimiento de tendencias y un indicador de tendencias súper para determinar la dirección de la tendencia. El indicador de tendencias súper se compone de dos curvas, respectivamente:

  1. La línea de parada de la tendencia alcista, que contiene más de una opción en una tendencia alcista;
  2. Líneas de parada de pérdidas en la tendencia a la baja, con boletos en la tendencia a la baja.

Cuando los precios cambian de una tendencia ascendente a una tendencia descendente, se abre una posición en blanco; cuando los precios cambian de una tendencia descendente a una tendencia ascendente, se abre una posición en blanco.

Además, la estrategia también utiliza el indicador ATR para ajustar dinámicamente la posición de la línea de parada. En concreto, la posición de la línea de parada ascendente es el promedio de los precios más altos y más bajos menos ATR multiplicado por un factor; la posición de la línea de parada descendente es el promedio de los precios más altos y más bajos más ATR multiplicado por un factor.

Después de entrar en la señal de salida, si el precio vuelve a romper la línea de parada, se realiza una salida de parada.

Ventajas estratégicas

Se trata de una estrategia de seguimiento de tendencias más madura, con las siguientes ventajas:

  1. El uso de indicadores de tendencia súper para determinar la dirección de la tendencia es más confiable.
  2. Aplicación de ATR para ajustar automáticamente la línea de parada para controlar el riesgo de manera efectiva;
  3. La lógica de la estrategia es simple y clara, fácil de entender y modificar.
  4. En el mercado de monedas digitales, donde la volatilidad es alta, se puede ganar dinero.

Riesgo estratégico

La estrategia también tiene sus riesgos:

  1. La probabilidad de error en el cálculo de los indicadores de tendencia súper, que puede provocar pérdidas innecesarias;
  2. El ATR puede ser demasiado radical para ser detenido por la inversión del precio.
  3. El mercado de monedas digitales es muy volátil y hay una gran probabilidad de que se supere el límite de pérdidas.
  4. Las altas comisiones de transacción afectan a las ganancias finales.

Para reducir los riesgos mencionados anteriormente, se puede ajustar adecuadamente el coeficiente ATR, o en combinación con otros indicadores para filtrar las señales de negociación. También se puede considerar que la posición de stop loss tenga un cierto amortiguador.

Dirección de optimización de la estrategia

La estrategia tiene espacio para ser optimizada aún más:

  1. Se pueden introducir más combinaciones de indicadores para mejorar la precisión de la señal.
  2. Los valores óptimos para el coeficiente ATR y el parámetro de longitud pueden ser estudiados.
  3. Se puede configurar el ratio de stop loss para ajustar dinámicamente el tamaño de la posición.
  4. La eficacia de la estrategia se puede probar en más pares de divisas digitales.

Resumir

Esta estrategia en su conjunto es una estrategia de seguimiento de tendencias bien probada y confiable. Utiliza indicadores de tendencias súper para determinar la dirección de la tendencia y utiliza el ATR para ajustar la posición de parada para controlar el riesgo y obtener ganancias. La estrategia se aplica a las operaciones de monedas digitales de alta volatilidad y funciona mejor en monedas principales como Ethereum.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4 
strategy("SuperTrend Strategy", 
     overlay=true, 
     initial_capital=2e3, 
     process_orders_on_close=true, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1 
     ) 
  
length = input(title="ATR Period", type=input.integer, defval=21) 
mult = input(title="ATR Multiplier", type=input.float, step=.25, defval=6.2) 
wicks = input(title="Take Wicks into Account ?", type=input.bool, defval=false) 
  
useDate = input(title="Start from Specific Date ?", defval=false) 
yearStart = input(title="Start Year", defval=2019) 
monthStart = input(title="Start Month", minval=1, maxval=12, defval=1) 
dayStart = input(title="Start Day", minval=1, maxval=31, defval=1) 
  
startTime = timestamp(yearStart, monthStart, dayStart, 0, 0) 
startFrom = useDate ? time(timeframe.period) >= startTime : true 
  
atr = mult * ta.atr(length) 
  
longStop = hl2 - atr 
longStopPrev = nz(longStop[1], longStop) 
longStop := (wicks ? low[1] : close[1]) > longStopPrev ? math.max(longStop, longStopPrev) : longStop 
  
shortStop = hl2 + atr 
shortStopPrev = nz(shortStop[1], shortStop) 
shortStop := (wicks ? high[1] : close[1]) < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop 
  
dir = 1 
dir := nz(dir[1], dir) 
dir := dir == -1 and (wicks ? high : close) > shortStopPrev ? 1 : dir == 1 and (wicks ? low : close) < longStopPrev ? -1 : dir 
  
longColor = color.green 
shortColor = color.red 
  
plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor) 
plotshape(dir == 1 and dir[1] == -1 ? longStop : na, title="Long Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) 
  
plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor) 
plotshape(dir == -1 and dir[1] == 1 ? shortStop : na, title="Short Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) 
  
longCondition = dir[1] == -1 and dir == 1 
if longCondition and startFrom 
    strategy.entry("Long", strategy.long, stop=longStop) 
else 
    strategy.cancel("Long") 
  
shortCondition = dir[1] == 1 and dir == -1 
if shortCondition and startFrom 
    strategy.entry("Short", strategy.short, stop=shortStop) 
else 
    strategy.cancel("Short")