
La estrategia es una estrategia de seguimiento de la tendencia de la criptomoneda basada en el indicador de la tormenta. Utiliza promedios móviles de índices de dos períodos diferentes y el indicador de la tormenta combinado con múltiples condiciones para generar señales de negociación. La estrategia tiene como objetivo identificar las tendencias de precios de la línea media y larga y entrar en juego a tiempo cuando se produce un cambio de tendencia.
La estrategia utiliza la línea media de EMA de 50 y 100 períodos. Al mismo tiempo, calcula la línea de tormenta, una línea especial que puede filtrar el ruido del mercado. La estrategia utiliza el precio de apertura, cierre, máximo y mínimo de la línea de tormenta y se aplica a la línea de EMA de 100 períodos para que ocurra una señal de negociación más precisa.
Concretamente, cuando el precio de apertura de una línea de 100 ciclos es más alto que el precio de cierre y el precio de apertura de la línea K superior es menor que el precio de cierre, es una señal de sobreventa. Por el contrario, cuando el precio de apertura de una línea de 100 ciclos es menor que el precio de cierre y el precio de apertura de la línea K superior es mayor que el precio de cierre, es una señal de vacío.
La estrategia combina el sistema de doble EMA y el indicador de tormentas para capturar oportunidades en tiempo oportuno cuando se forman tendencias de línea media y larga. Utiliza el indicador de tormentas para filtrar el ruido del mercado a corto plazo y hacer que las señales de negociación sean más confiables.
Para reducir el riesgo, se puede reducir el margen de pérdida apropiadamente, o considerar la inversión de la tendencia en combinación con otros indicadores. Cuando el mercado entra en una zona de agitación, también se puede suspender la estrategia y esperar a que se produzca una nueva tendencia.
La estrategia también puede ser optimizada en las siguientes direcciones:
La estrategia de seguimiento de la tendencia de la criptomoneda basada en el indicador de la tormenta, que considera integralmente varios aspectos del juicio de la tendencia, el momento de entrada y el control de la pérdida, es muy adecuada para esta variedad de criptomonedas altamente volátiles. La estrategia puede aprovechar eficazmente las oportunidades de negociación generadas por la tendencia de los precios de la línea media y larga mediante el uso de un indicador de la tormenta que filtra el ruido y adopta un método sólido de control de riesgo. El rendimiento de la estrategia también tiene un gran espacio para mejorar si se optimizan aún más los parámetros de configuración, la selección de indicadores y los métodos de control de riesgo.
/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@SoftKill21
strategy(title="CRYPTO HA Strategy", shorttitle="CRYPTO HA Strategy", overlay=true , default_qty_type =strategy.percent_of_equity, default_qty_value =100, commission_type= strategy.commission.percent,commission_value =0.1 )
ma1_len = input(50)
ma2_len = input(100)
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 = 2020, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//First Moving Average data
o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)
// === HA calculator ===
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, timeframe.period, o)
ha_c = security(ha_t, timeframe.period, c)
ha_h = security(ha_t, timeframe.period, h)
ha_l = security(ha_t, timeframe.period, l)
//Second Moving Average data
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
// === Color def ===
ha_col = o2 > c2 ? color.white : color.lime
sell = o2 > c2 and o2[1] < c2[1] and time_cond
buy = o2 < c2 and o2[1] > c2[1] and time_cond
plotshape(buy, color=color.green, text= "Buy", location= location.belowbar,style= shape.labelup, textcolor=color.white, size = size.tiny, title="Buy Alert",editable=false, transp=60)
plotshape(sell, color=color.red, text= "Sell", location= location.abovebar,style= shape.labeldown, textcolor=color.white, size = size.tiny, title="Sell Alert", editable=false, transp=60)
trendColor = buy ? color.red : sell ? color.green : na
plot( buy ? close: sell ? close : na , color=trendColor, style=plot.style_line, linewidth=4, editable=false)
onlylong=input(true)
original=input(false)
if(onlylong)
strategy.entry("long",1,when=buy)
strategy.close("long",when=sell)
if(original)
strategy.entry("long",1,when=buy)
strategy.entry("short",0,when=sell)
sl = input(0.075)
strategy.exit("closelong", "long" , loss = close * sl / syminfo.mintick, alert_message = "sl point")
strategy.exit("closeshort", "short" , loss = close * sl / syminfo.mintick, alert_message = "sl point")