
A estratégia é uma estratégia de rastreamento de tendências de criptomoedas baseada em indicadores de tsunami. Ela usa médias móveis de índices de dois períodos diferentes e um indicador de tsunami combinado com várias condições para gerar sinais de negociação. A estratégia visa identificar tendências de preços de linha média e longa e entrar em ação em tempo hábil quando a tendência se reverte.
A estratégia usa a média das EMAs de 50 e 100 ciclos. Ao mesmo tempo, ela calcula a linha da torcida, uma linha especial que filtra o ruído do mercado. A estratégia usa o preço de abertura, fechamento, máximo e mínimo da linha da torcida e é aplicada à linha de EMAs de 100 ciclos, para que um sinal de negociação mais preciso ocorra.
Especificamente, quando o preço de abertura de uma linha de 100 ciclos é maior que o preço de fechamento e o preço de abertura da linha K superior é menor que o preço de fechamento, é um sinal de fazer mais. Por outro lado, quando o preço de abertura de uma linha de 100 ciclos é menor que o preço de fechamento e o preço de abertura da linha K superior é maior que o preço de fechamento, é um sinal de fazer vazio.
A estratégia combina o sistema de duplas EMAs e o indicador de pirâmide para capturar oportunidades em tempo hábil quando uma tendência de linha média se forma. Ele usa o indicador de pirâmide para filtrar o ruído do mercado de curto prazo, tornando os sinais de negociação mais confiáveis.
Para reduzir o risco, pode-se reduzir a amplitude de stop loss de forma apropriada, ou considerar a reversão de tendência em combinação com outros indicadores. Quando o mercado entra em uma zona de choque, a estratégia pode ser suspensa e esperar que uma nova tendência surja.
A estratégia também pode ser melhorada nas seguintes direções:
A estratégia de rastreamento de tendências de criptomoedas baseada no indicador da tormenta, que leva em consideração vários aspectos do julgamento de tendências, tempo de entrada e controle de perda, é bem adaptada à variedade de alta volatilidade da criptomoeda. A estratégia pode efetivamente aproveitar as oportunidades de negociação trazidas pela tendência de preços de linha média e longa, usando filtro de ruído do indicador da tormenta e uma sólida abordagem de controle de risco. O desempenho da estratégia tem muito espaço para ser melhorado se os parâmetros de configuração, a seleção de indicadores e o controle de risco forem otimizados.
/*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")