Estratégia de supertendência de sobreposição tripla


Data de criação: 2024-02-26 10:04:18 última modificação: 2024-02-26 10:04:18
cópia: 3 Cliques: 633
1
focar em
1617
Seguidores

Estratégia de supertendência de sobreposição tripla

Visão geral

Esta é uma estratégia de tomar decisões de negociação usando três indicadores superpostos de tendência. Pode capturar grandes oportunidades de direção em situações de tendência.

Princípio da estratégia

A estratégia usa a função ta.supertrend() para calcular indicadores de supertrend em três diferentes configurações de parâmetros. Calcula uma supertrend de 3x ATR no dia 10, uma supertrend de 2x ATR no dia 14, uma supertrend de 2x ATR no dia 20 e uma supertrend de 2.5x ATR no dia 3. Gera um sinal de compra quando o preço atravessa todos os três supertrends. Gera um sinal de venda quando o preço atravessa todos os três supertrends abaixo.

O indicador de supertrend, combinado com o indicador ATR, é capaz de acompanhar de forma eficaz a tendência de mudança de preço. A estratégia de supertrend tripla, torna o sinal mais confiável, resultando em maiores ganhos em situações de tendência.

Vantagens estratégicas

  1. Mecanismo de filtragem tripla, evita falsos sinais e melhora a qualidade do sinal
  2. O indicador de tendência ultra tem um bom desempenho em termos de redução de ruído
  3. Multiple combinações de hiperparâmetros configuráveis para um ambiente de mercado mais amplo
  4. Histórico de testes: bom desempenho, maior risco do que o lucro

Risco estratégico

  1. O sinal de filtragem múltipla pode ter perdido algumas oportunidades
  2. A situação não é boa durante o terremoto.
  3. Combinações de três grupos de hiperparâmetros a serem otimizadas
  4. O tempo de negociação centralizado é vulnerável a surpresas

Para reduzir o risco, considere:

  1. Ajustar as condições de filtragem para manter uma ou duas super tendências
  2. Aumentar a estratégia de stop loss
  3. Otimização de superparâmetros para aumentar a taxa de vitória

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

  1. Testar mais combinações de parâmetros para encontrar o melhor superparâmetro
  2. Adição de algoritmos de aprendizagem de máquina, parâmetros de otimização em tempo real
  3. Aumentar as estratégias de stop loss para controlar as perdas individuais
  4. Combinado com outros indicadores, identifica tendências e oscilações
  5. Extender o tempo de negociação, evitando o risco de um único ponto de tempo

Resumir

Esta estratégia é capaz de identificar a direção da tendência através da superposição de três tendências. Ela possui vantagens como a alta qualidade do sinal e a otimização dos parâmetros. Ao mesmo tempo, existe um certo risco, que requer ajustes nos parâmetros e no tempo de saída para se adaptar a diferentes condições de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Combined Supertrend Strategy - Ajit Prasad', overlay=true)

// Function to calculate Supertrend
supertrendFunc(atrLength, factor) =>
    [supertrend, direction] = ta.supertrend(factor, atrLength)
    [supertrend, direction]

// Input parameters for the first Supertrend
atrPeriod1 = input(10, 'ATR Length 1')
factor1 = input(3, 'Factor 1')

// Calculate the first Supertrend
[supertrend1, direction1] = supertrendFunc(atrPeriod1, factor1)

// Input parameters for the second Supertrend
atrPeriod2 = input(14, 'ATR Length 2') // Change values as needed
factor2 = input(2, 'Factor 2') // Change values as needed

// Calculate the second Supertrend
[supertrend2, direction2] = supertrendFunc(atrPeriod2, factor2)

// Input parameters for the third Supertrend
atrPeriod3 = input(20, 'ATR Length 3') // Change values as needed
factor3 = input(2.5, 'Factor 3') // Change values as needed

// Calculate the third Supertrend
[supertrend3, direction3] = supertrendFunc(atrPeriod3, factor3)

// Define market opening and closing times
marketOpenHour = 9
marketOpenMinute = 15
marketCloseHour = 15
marketCloseMinute = 30
exitTimeHour = 15
exitTimeMinute = 10

// Fetch historical close values using security function
histClose = request.security(syminfo.tickerid, "D", close)

// Buy condition
buyCondition = close > supertrend1 and close > supertrend2 and close > supertrend3 and close[1] <= supertrend1[1]

// Sell condition
sellCondition = close < supertrend1 and close < supertrend2 and close < supertrend3 and close[1] >= supertrend1[1]

// Exit conditions
buyExitCondition = close < supertrend1[1] or close < supertrend2[1] or close < supertrend3[1]
sellExitCondition = close > supertrend1[1] or close > supertrend2[1] or close > supertrend3[1]

// Execute orders with market timing
if true
    // Buy condition without 'and not'
    strategy.entry('Buy', strategy.long, when = buyCondition)

    // Sell condition without 'and not'
    strategy.entry('Sell', strategy.short, when = sellCondition)

    // Close conditions
    strategy.close('Buy', when = buyExitCondition )
    strategy.close('Sell', when = sellExitCondition)

// Close all trades at 3:10 pm IST
if true
    strategy.close_all()

// Plot Supertrends
plot(supertrend1, 'Supertrend 1', color=color.new(color.green, 0), style=plot.style_linebr)
plot(supertrend2, 'Supertrend 2', color=color.new(color.red, 0), style=plot.style_linebr)
plot(supertrend3, 'Supertrend 3', color=color.new(color.blue, 0), style=plot.style_linebr)

// Plot labels
plotshape(buyCondition, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.large, text='Buy Signal', textcolor=color.new(color.white, 0))
plotshape(sellCondition, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.large, text='Sell Signal', textcolor=color.new(color.white, 0))