Pete Wave Trading System Estratégia de visão geral
Princípios de estratégia do sistema de negociação Pete Wave
A estratégia usa uma linha média móvel rápida (com comprimento 9) e uma linha média móvel lenta (com comprimento 22) para construir crossovers dourados (linha rápida quebrando a linha lenta de baixo) e crossovers de morte (linha rápida quebrando a linha lenta de cima).
Para evitar falhas causadas por flutuações de preços, mecanismos de filtro adicionais são adicionados ao código. Estes incluem filtros de corpo de vela que exigem flutuações de porcentagem do corpo da vela superiores a 0,5% antes de gerar um sinal; filtros de pullback que verificam se o preço recuou uma certa amplitude quando a linha rápida e a linha de preço cruzam para confirmar a tendência; filtros de valor ATR que exigem ATRs superiores a 0,5 para provar flutuação suficiente para gerar sinais.
Análise das vantagens da estratégia do sistema de negociação Pete Wave
A estratégia integra as vantagens da negociação da média móvel e do rastreamento de tendências, e pode identificar efetivamente a direção das tendências de preços a médio prazo.
A combinação de cruzamento de médias móveis e rastreamento de tendências evita ser pego em mercados voláteis.
Os filtros de retração e os mecanismos de confirmação de fuga evitam falsas fugas.
Os valores de ATR e os filtros do corpo da vela ajudam a identificar flutuações reais.
O mecanismo de stop loss de trailing pode controlar eficazmente as perdas de transações individuais.
Análise de risco do sistema de negociação Pete Wave
Os principais riscos que esta estratégia enfrenta são os seguintes:
Eventos repentinos no mercado podem desencadear saídas de stop loss. A distância de stop loss pode ser relaxada adequadamente.
Manter posições por muito tempo sem obter lucros em tempo hábil.
As condições tranquilas do mercado levam a uma redução dos sinais de negociação.
A otimização incorreta dos parâmetros resulta em trocas muito frequentes ou muito poucas. Os parâmetros precisam de testes repetidos.
Pete Wave Trading System Direções de Optimização de Estratégia
A estratégia pode ser otimizada nas seguintes direcções:
Teste os parâmetros separadamente para diferentes variedades de negociação, otimize os períodos de média móvel e outros parâmetros.
Tente adicionar mais indicadores como Bandas de Bollinger, RSI para determinar a direção da tendência.
Teste os parâmetros do mecanismo de perda de parada para encontrar a razão de perda de parada ideal.
Tente métodos de aprendizagem de máquina para gerar automaticamente sinais de compra e venda.
Otimizar a lógica de filtragem de sinal para reduzir as probabilidades de sinal falso.
Identificar mais oportunidades de negociação combinando diferentes julgamentos de prazos.
Resumo da estratégia do sistema de negociação Pete Wave
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("9:22 5 MIN 15 MIN BANKNIFTY", overlay=true) fastLength = input(9, title="Fast MA Length") slowLength = input(22, title="Slow MA Length") atrLength = input(14, title="ATR Length") atrFilter = input(0.5, title="ATR Filter") trailingStop = input(1.5, title="Trailing Stop Percentage") pullbackThreshold = input(0.5, title="Pullback Threshold") minCandleBody = input(0.5, title="Minimum Candle Body Percentage") breakoutConfirmation = input(true, title="Use Breakout Confirmation") price = close mafast = ta.sma(price, fastLength) maslow = ta.sma(price, slowLength) atrValue = ta.atr(atrLength) long_entry = ta.crossover(mafast, maslow) and atrValue > atrFilter short_entry = ta.crossunder(mafast, maslow) and atrValue > atrFilter // Pullback Filter pullbackLong = ta.crossover(price, mafast) and ta.change(price) <= -pullbackThreshold pullbackShort = ta.crossunder(price, mafast) and ta.change(price) >= pullbackThreshold // Include pullback condition only if a valid entry signal is present long_entry := long_entry and (pullbackLong or not ta.crossover(price, mafast)) short_entry := short_entry and (pullbackShort or not ta.crossunder(price, mafast)) // Filter based on candle body size validLongEntry = long_entry and ta.change(price) > 0 and ta.change(price) >= minCandleBody validShortEntry = short_entry and ta.change(price) < 0 and ta.change(price) <= -minCandleBody // Breakout confirmation filter breakoutLong = breakoutConfirmation ? (close > ta.highest(high, fastLength)[1]) : true breakoutShort = breakoutConfirmation ? (close < ta.lowest(low, fastLength)[1]) : true long_entry := validLongEntry and breakoutLong short_entry := validShortEntry and breakoutShort if (long_entry) strategy.entry("Long", strategy.long) strategy.close("Short") alert("Long trade iniated") if (short_entry) strategy.entry("Short", strategy.short) strategy.close("Long") alert("Short trade initated") // Trailing Stop-Loss long_stop = strategy.position_avg_price * (1 - trailingStop / 100) short_stop = strategy.position_avg_price * (1 + trailingStop / 100) strategy.exit("Exit Long", "Long", stop = long_stop) strategy.exit("Exit Short", "Short", stop = short_stop) plot(mafast, color=color.green, linewidth=2, title="Fast MA") plot(maslow, color=color.red, linewidth=2, title="Slow MA")