
A estratégia de negociação de acompanhamento de tendências dinâmicas baseada no ângulo de Gansu é uma estratégia de negociação quantitativa que combina a teoria de Gansu e oscilantes altos e baixos. A estratégia usa o ângulo de Gansu para identificar tendências de mercado e gerar sinais de negociação quando os preços quebram essas linhas angulares. O núcleo da estratégia é ajustar dinamicamente a linha de Gansu angular, permitindo que ela se adapte aos preços em diferentes ambientes de mercado.
Identificação de pontos altos e baixos de oscilação: a estratégia usa um ciclo definido pelo usuário (default 14) para identificar os pontos altos e baixos de oscilação. Esses pontos são a base para traçar as linhas de ângulo de Gantz.
Calculação da linha de ângulo de Gantt: com base nos altos e baixos de oscilação identificados, a estratégia calcula a linha de ângulo de Gantt para cima e para baixo. O ângulo pode ser personalizado pelo usuário, sendo 45 graus por defeito.
Geração de sinais de transação:
Gerenciamento de Risco: A estratégia incorpora níveis de stop loss e stop loss personalizáveis para controlar a margem de risco de cada transação.
Adaptabilidade dinâmica: A estratégia é capaz de se adaptar a diferentes cenários de mercado e flutuações de preços, ajustando constantemente o ponto de partida da linha de canto ganse.
Seguimento de tendências: A estratégia é essencialmente um sistema de seguimento de tendências que ajuda a capturar os benefícios significativos das grandes tendências.
Gerenciamento de riscos: os mecanismos de stop-loss e de suspensão incorporados ajudam a controlar os riscos e a evitar perdas excessivas em uma única transação.
Visualização: A estratégia mostra intuitivamente as linhas de ângulo e os sinais de negociação no gráfico, facilitando a compreensão da estrutura do mercado e da lógica da estratégia.
Flexibilidade: vários parâmetros ajustáveis (como ângulo, duração do ciclo, nível de stop loss) permitem que a estratégia se adapte a diferentes variedades de negociação e prazos de tempo.
Risco de mercado em choque: Em mercados de travessia ou de choque, a ocorrência de falsas rupturas pode levar a excesso de sinais errados e custos de negociação.
Risco de deslizamento: em mercados rápidos, o preço de transação real pode ser significativamente diferente do preço no momento em que o sinal é gerado.
Risco de otimização excessiva: ajustes excessivos de parâmetros para se adaptar a dados históricos podem levar a uma estratégia com um desempenho ruim no futuro.
Risco de reversão de tendência: a estratégia pode gerar prejuízos quando a tendência se reverte no início.
Para reduzir esses riscos, pode-se considerar:
Análise de múltiplos prazos: a integração de informações de tendências de prazos mais elevados pode melhorar a qualidade dos sinais de negociação.
Adaptação do ângulo dinâmico: Adaptação do ângulo de Gandhy de acordo com a volatilidade do mercado, o que permite que a estratégia se adapte melhor a diferentes condições de mercado.
Considerando o volume de transações: o volume de transações pode ser usado como um indicador auxiliar para aumentar a confiabilidade do sinal.
Otimização de aprendizagem de máquina: Otimização dinâmica de parâmetros de estratégia usando algoritmos de aprendizagem de máquina para melhorar a adaptabilidade da estratégia.
Filtragem de correlação: Em transações de variedades múltiplas, considerar a correlação entre as variedades pode reduzir o risco sistemático.
Controle de retirada: A introdução de um mecanismo de controle de retirada baseado na curva de direitos e interesses pode proteger melhor o capital em caso de reversão da tendência.
Essas orientações de otimização visam aumentar a robustez e a rentabilidade das estratégias, ao mesmo tempo em que reduzem os riscos inerentes.
A estratégia de negociação de acompanhamento de tendências dinâmicas baseada no ângulo de Gantt é um sistema de negociação que combina a teoria da análise técnica clássica e os métodos modernos de quantificação. Identifica e acompanha as tendências do mercado por meio de linhas de ângulo de Gantt ajustadas dinamicamente e gera sinais de negociação em pontos críticos.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Gann Strategy", overlay=true)
// User inputs
gann_angle_up = input.float(45, "Gann Angle Up (degrees)")
gann_angle_down = input.float(45, "Gann Angle Down (degrees)")
length = input.int(14, "Length for Swing High/Low")
// Functions to find Swing High and Swing Low
var float swingHigh = na
var float swingLow = na
if (high[length] == ta.highest(high, length * 2 + 1))
swingHigh := high[length]
if (low[length] == ta.lowest(low, length * 2 + 1))
swingLow := low[length]
// Gann angles calculation
gann_up = swingLow + math.tan(gann_angle_up * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingLow), bar_index, 0))
gann_down = swingHigh - math.tan(gann_angle_down * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingHigh), bar_index, 0))
// Gann angles visualization
plot(na(gann_up) ? na : gann_up, color=color.green, linewidth=2, title="Gann Angle Up")
plot(na(gann_down) ? na : gann_down, color=color.red, linewidth=2, title="Gann Angle Down")
// Entry and exit conditions
longCondition = ta.crossover(close, gann_up)
shortCondition = ta.crossunder(close, gann_down)
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Visualization of entry and exit points
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Setting stop loss and take profit levels
stopLossLevel = input.float(1.0, "Stop Loss Level (percent)") / 100
takeProfitLevel = input.float(2.0, "Take Profit Level (percent)") / 100
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close * (1 + takeProfitLevel), stop=close * (1 - stopLossLevel))
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close * (1 - takeProfitLevel), stop=close * (1 + stopLossLevel))