Estratégia de negociação Ethereum baseada em supertendência


Data de criação: 2024-01-08 14:35:37 última modificação: 2024-01-08 14:35:37
cópia: 0 Cliques: 726
1
focar em
1617
Seguidores

Estratégia de negociação Ethereum baseada em supertendência

Visão geral

A estratégia é baseada em um indicador de supertrend, em combinação com o ATR, para definir dinamicamente uma linha de stop-loss e, assim, lucrar com a forte tendência da Ethereum. Pode ser executada no par de negociação ETH/USD da Coinbase.

Princípio da estratégia

A estratégia usa um indicador clássico de acompanhamento de tendências e um indicador de tendência super para determinar a direção da tendência. O indicador de tendência super é composto por duas curvas, respectivamente:

  1. A linha de parada de tendência ascendente, a linha de parada de tendência ascendente, a linha de parada de tendência ascendente, a linha de parada de tendência ascendente.
  2. Linha de parada de perda de tendência de queda, com a posse de bilhetes em queda.

Quando o preço passa de uma tendência ascendente para uma tendência descendente, abra uma posição em branco; Quando o preço passa de uma tendência descendente para uma tendência ascendente, abra uma posição em cima.

Além disso, a estratégia também usa o indicador ATR para ajustar dinamicamente a posição da linha de parada. Concretamente, a posição da linha de parada ascendente é o valor médio do preço máximo e mínimo menos o ATR multiplicado por um fator; a posição da linha de parada descendente é o valor médio do preço máximo e mínimo mais o ATR multiplicado por um fator. Isso permite ajustar a linha de parada de acordo com a volatilidade do mercado.

Depois de entrar no sinal de saída, se o preço voltar a quebrar a linha de stop loss, a saída de stop loss é realizada.

Vantagens estratégicas

É uma estratégia de acompanhamento de tendências mais avançada, com as seguintes vantagens:

  1. O uso de indicadores de tendência super é mais confiável para determinar a direção da tendência;
  2. Aplicação de ATR para ajustar automaticamente a linha de parada para controlar o risco de forma eficaz;
  3. A lógica da estratégia é simples, clara e fácil de entender e modificar.
  4. A moeda digital é uma moeda digital que pode ser lucrativa no mercado de moedas digitais altamente volátil.

Risco estratégico

A estratégia também apresenta alguns riscos:

  1. A probabilidade de erro de avaliação de indicadores de tendências super, que pode levar a prejuízos desnecessários;
  2. O ATR Stop pode ser demasiado radical e ser revertido pelo preço;
  3. O mercado de moedas digitais é muito volátil, com uma grande probabilidade de quebra de parâmetros;
  4. As taxas de transação mais altas podem afetar os lucros finais.

Para reduzir o risco acima, pode-se ajustar o coeficiente ATR de forma apropriada, ou em combinação com outros indicadores de filtragem de sinais de negociação. A posição de stop loss também pode ser considerada como uma reserva.

Direção de otimização da estratégia

A estratégia ainda tem espaço para ser melhorada:

  1. A introdução de mais combinações de indicadores pode melhorar a precisão do sinal.
  2. Os valores ótimos para o coeficiente ATR e para o parâmetro de comprimento;
  3. Pode-se definir um Stop Loss Ratio para ajustar dinamicamente o tamanho da posição;
  4. A eficácia da estratégia pode ser testada em mais pares de moeda digital.

Resumir

A estratégia é, em geral, uma estratégia de acompanhamento de tendências bem-sucedida e confiável. Ela usa indicadores de tendência super para determinar a direção da tendência e usa o ATR para ajustar as posições de parada para controlar o risco e, ao mesmo tempo, lucrar. A estratégia é adequada para negociações de moedas digitais altamente voláteis e funciona melhor em moedas principais como o Ethereum.

Código-fonte da estratégia
/*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")