
O sistema de negociação de indicadores de oscilação múltipla é uma estratégia de negociação quantitativa baseada em análise técnica, cujo núcleo depende da identificação de altos e baixos de oscilação para determinar a mudança de tendência do mercado. A estratégia, ao rastrear os preços mais altos e mais baixos nos últimos N ciclos, constrói um nível de stop loss dinâmico (TSL) como fronteira de decisão de negociação de múltiplos espaços. O sistema executa automaticamente um sinal de compra quando o preço supera o nível TSL e executa automaticamente um sinal de venda quando o preço cai abaixo do nível TSL, ao mesmo tempo em que administra automaticamente as posições, garantindo que cada posição seja mantida em uma direção.
A lógica central da estratégia gira em torno do rastreamento dos níveis de stop loss (TSL) e é implementada da seguinte forma:
Níveis-chave de preços no ciclo de cálculo:
ta.highest(high, no)Calcular o valor máximo de no último ciclo (res)ta.lowest(low, no)Calcule o preço mínimo dos últimos no ciclos ((sup)Determine a posição do preço em relação aos altos e baixos anteriores:
Construir um nível de tracking stop loss (TSL):
Geração de sinais de negociação:
Execução de transações:
O sistema também inclui componentes visuais, como marcas de pontos de compra e venda, linhas K e fundos de mudanças de cor, e linhas horizontais que exibem os preços de abertura de posição em tempo real, melhorando a experiência visual do processo de negociação.
Capacidade de captura de tendências: através do cálculo dinâmico dos preços mais altos e mais baixos, é possível capturar efetivamente as mudanças de tendências do mercado, adaptando-se às flutuações de diferentes ciclos de mercado.
Alto grau de automação: o sistema executa automaticamente a identificação de sinais de compra e venda e a execução de transações, reduzindo a interferência humana e o impacto emocional.
Mecanismo de negociação bidirecional: permite a negociação de ativos e passivos simultaneamente, permitindo obter oportunidades de lucro em mercados de alta e baixa.
Gerenciamento de risco embutido: o design do TSL para rastrear os níveis de stop-loss é essencialmente construído com um stop-loss para limitar o máximo de perdas em uma única transação.
Visualização de transações de feedback: através de uma interface gráfica que mostra claramente os sinais de negociação e os preços de abertura de posições, facilitando o monitoramento e avaliação do desempenho da estratégia em tempo real.
Flexibilidade de parâmetros: Adapta-se às características do mercado em diferentes períodos de tempo, ajustando os parâmetros do ciclo de oscilação (no), sendo aplicável desde a linha curta até a linha média longa.
Indicações claras: O sistema fornece indicações de sinais duplos, tanto visuais como escritas, reduzindo a possibilidade de erros.
Desempenho fraco no mercado de choque: em mercados de choque horizontal, a estratégia pode produzir falsos sinais frequentes, resultando em perdas contínuas.
Ponto de deslizamento e risco de atraso na execução: Em negociações em disco, pode haver um diferencial de tempo entre a geração de sinais e a execução de ordens, resultando em preços de transação reais que se desviam do preço ideal.
Limites de gerenciamento de posições fixas: a estratégia atual usa unidades fixas ((qty = 1) para negociar, e não há mecanismos para ajustar o tamanho das posições de acordo com a volatilidade do mercado ou o tamanho da conta.
Sensibilidade de parâmetros: o desempenho da estratégia é altamente dependente da configuração do parâmetro de ciclo de oscilação (no), e diferentes ambientes de mercado podem exigir diferentes valores de parâmetros.
A capacidade de resposta às emergências é fraca: os níveis de stop loss podem não se ajustar o suficiente para causar grandes perdas durante mudanças rápidas de preços causadas por notícias importantes ou eventos de black swan.
Os métodos para reduzir esses riscos incluem: confirmação de sinais em combinação com outros indicadores, implementação de gerenciamento de posições dinâmicas, configuração de limites de parada máxima, ajuste de parâmetros de acordo com a volatilidade e parâmetros de estratégia de avaliação e otimização periódica.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Parâmetros de adaptação: Parâmetros de ciclo de oscilação ajustados com base na dinâmica de volatilidade do mercado (no), com valores menores em ambientes de baixa volatilidade e maiores em ambientes de alta volatilidade.
Adicionar alvos de lucro: definir alvos de lucro baseados no ATR ou nos níveis de suporte/resistência e bloquear parte dos lucros quando o mercado se move de forma favorável.
Filtro de tempo: adicione restrições à janela de tempo de negociação, evitando períodos de mercado de baixa liquidez ou de variação anormal.
Mecanismo de controle de retirada: implementação de um mecanismo de suspensão de negociação com base na porcentagem de retorno de juros da conta, que suspende a negociação quando os perdas contínuas atingem o limiar predeterminado.
Confirmação de múltiplos períodos: Combine a direção da tendência de períodos de tempo mais elevados e abra posições apenas na direção que coincide com a tendência de períodos mais elevados, aumentando a taxa de vitória.
Essas orientações de otimização podem aumentar significativamente a robustez e a adaptabilidade das estratégias, especialmente para oferecer melhores retornos de ajuste de risco em diferentes contextos de mercado.
O sistema de negociação de indicadores de oscilação múltipla é uma estratégia de negociação automatizada baseada em análise técnica que capta as mudanças de tendências de mercado e executa negociações bidirecionais de múltiplos espaços através do acompanhamento dinâmico dos níveis de parada de perda (TSL). A estratégia se destaca em mercados onde a tendência é clara, sendo capaz de rastrear efetivamente a movimentação dos preços e gerenciar automaticamente as posições.
A principal vantagem da estratégia reside no seu mecanismo de geração de sinais simples e eficazes e nas funções de gestão de risco embutidas, especialmente adequadas para a negociação de tendências de curto e médio prazo. No entanto, a estratégia pode ser desafiada por sinais falsos frequentes em mercados turbulentos e precisa de ser ainda mais otimizada para melhorar a sua adaptabilidade em vários ambientes de mercado.
A estratégia pode melhorar ainda mais o seu retorno e estabilidade de ajuste de risco, através da implementação de medidas de otimização, como gerenciamento de posição dinâmico, confirmação de sinais de múltiplos indicadores e ajuste de parâmetros de adaptação. Para os comerciantes de quantidade, este sistema automatizado baseado em regras claras fornece uma estrutura confiável que reduz a interferência emocional e mantém a disciplina de negociação.
Em última análise, o sucesso da aplicação da estratégia depende do ajuste minucioso dos parâmetros de configuração do comerciante e da sua compreensão das características do mercado. Recomenda-se a realização de um histórico completo de retrospecção e validação de transações em simulação antes da aplicação em campo.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)