Tendência de volatilidade de faixa adaptável seguindo estratégia de negociação

WPR RSI SMA ATR Trend
Data de criação: 2024-11-28 17:24:30 última modificação: 2024-11-28 17:24:30
cópia: 4 Cliques: 452
1
focar em
1617
Seguidores

Tendência de volatilidade de faixa adaptável seguindo estratégia de negociação

Visão geral

Esta é uma estratégia de acompanhamento de tendências auto-adaptável baseada na volatilidade e na combinação do Williams Percent Range (William Index). A estratégia ajusta a sensibilidade dos juízos de tendência através da computação do intervalo de flutuação dos preços e de um contador personalizado, permitindo assim uma melhor adaptabilidade em diferentes cenários de mercado. O núcleo da estratégia é ajustar dinamicamente os parâmetros do Williams Index observando a amplitude das flutuações dos preços, de modo a capturar com maior precisão os pontos de mudança das tendências do mercado.

Princípio da estratégia

A estratégia primeiro calcula o intervalo de variação de preço (Range) e sua média móvel (AvgRange) em um período. A frequência de ocorrência de flutuações significativas é registrada através da criação de dois contadores (TrueCount e TrueCount2) comparando a relação entre a variação de preço em tempo real e o intervalo de variação médio. Estes contadores são usados para ajustar dinamicamente os parâmetros de cálculo do Williamson, permitindo que a estratégia ajuste automaticamente sua sensibilidade de acordo com o estado de flutuação do mercado.

Vantagens estratégicas

  1. Auto-adaptabilidade - a estratégia é capaz de manter um desempenho estável em diferentes condições de mercado através de um mecanismo de auto-adaptação à taxa de flutuação
  2. Controle de risco perfeito - parâmetros de risco embutidos no RISK permitem que o comerciante ajuste a agressividade da estratégia de acordo com suas próprias preferências de risco
  3. Clareza do sinal - Usar um mecanismo de sinal de ruptura claro para evitar falsos sinais
  4. Boa escalabilidade - o quadro de políticas permite a introdução de outros indicadores técnicos para otimização
  5. Alta eficiência de computação - Usar métodos de computação simples e eficientes para transações em tempo real

Risco estratégico

  1. Sensibilidade de parâmetros - a escolha dos parâmetros ASClength e RISK pode afetar significativamente o desempenho da política
  2. Dependência do cenário de mercado - pode produzir sinais de negociação excessivos em mercados turbulentos
  3. Atraso - O uso de médias móveis pode causar algum atraso nas entradas e saídas
  4. Falso breakout - Falso sinal pode ocorrer em períodos de alta volatilidade Recomenda-se a redução do risco por meio da retrospectiva dos parâmetros de otimização, em combinação com outros indicadores de confirmação.

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

  1. Introdução de indicadores de volume de negócios - a eficácia da mudança de tendência é confirmada pelo volume de negócios
  2. Otimização da lógica do contador - pode ser considerado o uso de métodos estatísticos mais complexos para avaliar a volatilidade do mercado
  3. Adição de um mecanismo de stop loss - recomenda-se a introdução de stop loss dinâmico para melhor controlar o risco
  4. Filtragem de cenários de mercado - adicionar módulos de julgamento de cenários de mercado para evitar transações em condições de mercado inadequadas
  5. Adaptabilidade de parâmetros - desenvolvimento de mecanismos de otimização automática de parâmetros para melhorar a adaptabilidade da estratégia

Resumir

Trata-se de uma estratégia inovadora que combina análise de volatilidade e acompanhamento de tendências, aumentando a estabilidade e a confiabilidade da estratégia por meio de mecanismos de adaptação. Embora haja alguns riscos inerentes, a estratégia tem a perspectiva de manter um desempenho estável em vários cenários de mercado através da implementação de uma direção razoável de configuração de parâmetros e otimização. O design da estrutura da estratégia permite expansão e otimização adicionais e tem um bom potencial de desenvolvimento.

Código-fonte da estratégia
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ASCTrend", shorttitle="ASCTrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

eternalfg = input(false, title="eternal 確定")
eternal = eternalfg ? 1 : 0
ASClength = input.int(title="ASC Length", minval=4, defval=10)
RISK = input.int(title="RISK", minval=0, defval=3)

// Custom sum function
customSum(source, length) =>
    sum = 0.0
    for i = 0 to length - 1
        sum := sum + source[i]
    sum

x1 = 67 + RISK
x2 = 33 - RISK
Range = ta.highest(ASClength) - ta.lowest(ASClength)
AvgRange = ta.sma(Range, ASClength)
CountFg = math.abs(open - close) >= AvgRange * 2.0 ? 1 : 0
TrueCount = customSum(CountFg, ASClength)
CountFg2 = math.abs(close[3] - close) >= AvgRange * 4.6 ? 1 : 0
TrueCount2 = customSum(CountFg2, ASClength - 3)
wpr3RR = ta.wpr(3 + RISK + RISK)
wpr3 = ta.wpr(3)
wpr4 = ta.wpr(4)
WprAbs = 100 + (TrueCount2 > 0 ? wpr4 : TrueCount > 0 ? wpr3 : wpr3RR)
ASC_Trend = 0
ASC_Trend := WprAbs[eternal] < x2[eternal] ? -1 : WprAbs[eternal] > x1[eternal] ? 1 : ASC_Trend[1]

if (ta.crossover(ASC_Trend, 0))
    strategy.entry("Long", strategy.long)

if (ta.crossunder(ASC_Trend, 0))
    strategy.entry("Short", strategy.short)

plotshape(ta.crossover(ASC_Trend, 0), location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="B", textcolor=color.white)
plotshape(ta.crossunder(ASC_Trend, 0), location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="S", textcolor=color.white)

alertcondition(ta.crossover(ASC_Trend, 0), title="ASC_Trend UP", message="ASC_Trend UP")
alertcondition(ta.crossunder(ASC_Trend, 0), title="ASC_Trend Down", message="ASC_Trend Down")