Esta estratégia adota uma combinação de múltiplos indicadores técnicos para implementar uma estratégia de negociação de curto prazo versátil.
A estratégia usa primeiro o indicador do canal do corpo da vela, combinado com o canal de preço mais alto e mais baixo, para determinar a direção e a força da tendência atual.
Em seguida, utiliza o indicador comum EMA para determinar a direcção da tendência a médio e longo prazo.
Em seguida, a estratégia usa o indicador Hull MA para determinar se o preço atual está sobrecomprado ou sobrevendido.
Por último, a estratégia utiliza a função de segurança para abrir um ciclo superior para determinar a direção da tendência do ciclo grande e gerar sinais de negociação.
A combinação de múltiplas sub-estratégias permite que a estratégia capture tendências de ciclo intermediário, ao mesmo tempo que julga a direção geral da tendência com base em ciclos longos, realizando assim uma estratégia de negociação universal versátil.
A maior vantagem desta estratégia é que combina múltiplos indicadores técnicos para a negociação de carteiras, que podem realizar simultaneamente rastreamento de tendências, negociação de reversão média, negociação de ruptura e outros métodos de negociação, que é muito versátil e se adapta à maioria dos ambientes de mercado.
Especificamente, as principais vantagens desta estratégia são:
Usando o indicador do canal do corpo da vela para determinar a fuga da entidade pode identificar efetivamente os sinais de fuga.
Usar combinações de EMA duplas para filtrar sinais falsos melhora a precisão do sinal.
A utilização do indicador Hull MA para determinar as áreas de sobrecompra e sobrevenda permite determinar com mais precisão os pontos de virada.
A adoção do cruzamento dos preços de abertura e fechamento das linhas K de ciclo superior para gerar sinais pode evitar ser enganado pelo ruído.
A combinação de vários métodos de negociação torna a estratégia mais versátil e universal.
Embora a estratégia combine múltiplos indicadores para alcançar uma estratégia de negociação versátil, ainda existem certos riscos na negociação, principalmente:
A negociação de breakouts é propensa a ser enganada por falsas breakouts e gera sinais errados.
As negociações de reversão média tendem a causar perdas em mercados de intervalo.
A capacidade de filtragem da combinação EMA dupla ainda é limitada, o que pode filtrar sinais normais.
O indicador MA do casco ainda não tem precisão nas curvas de ajuste.
Em resposta aos riscos acima referidos, podem ser realizadas otimizações nos seguintes aspectos:
Usar indicadores mais estáveis para ajudar a julgar e evitar falhas.
Aumentar as estratégias de stop loss para controlar perdas individuais.
Ajustar os parâmetros EMA duplos para encontrar a combinação ideal.
Tente integrar mais indicadores para determinar condições de sobrecompra e sobrevenda.
De acordo com a análise anterior, a estratégia pode ser essencialmente otimizada nas seguintes direcções:
Usar combinações de indicadores mais tradicionais e estáveis como julgamento auxiliar, tais como Linhas de Kalman, Bandas de Bollinger, etc.
Aumentar as estratégias de stop loss para controlar estritamente a perda única.
Optimização de parâmetros para encontrar a combinação ideal de parâmetros.
Aumentar o julgamento do modelo de aprendizagem de máquina para utilizar a IA para determinar áreas de sobrecompra e sobrevenda.
Aumentar o julgamento lógico adaptativo para ajustar dinamicamente os métodos de estratégia com base em diferentes ambientes de mercado.
A estratégia combina múltiplos indicadores para negociação de carteira, alcançando a integração orgânica de vários métodos de negociação, como rastreamento de tendências, negociação de ruptura e negociação de reversão média. É uma estratégia de negociação de curto prazo muito versátil e universal. A maior vantagem desta estratégia é sua ampla aplicabilidade à maioria dos ambientes de mercado. Pertence a uma idéia de estratégia mais universal. Claro, ainda há certos riscos na negociação. Podemos otimizar a estratégia a partir da introdução de indicadores mais estáveis, aumentando o stop loss, otimização de parâmetros, aplicando aprendizado de máquina e muitos outros aspectos para melhorar ainda mais o desempenho da estratégia. Em geral, esta é uma estratégia de negociação de curto prazo universal muito valiosa para se referir e aprender.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //╭╮╱╱╭╮╭╮╱╱╭╮ //┃╰╮╭╯┃┃┃╱╱┃┃ //╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮ //╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫ //╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃ //╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯ //╭━━━┳╮╱╱╱╱╱╱╱╭╮ //┃╭━╮┃┃╱╱╱╱╱╱╱┃┃ //┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃ //┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃ //┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮ //╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯ //━╯ // http://www.vdubus.co.uk/ strategy(title='Vdub FX SniperVX3 / Strategy v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD) //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance Channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=input(false, title="Bar Channel On/Off") ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0) ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0) //fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel") //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=10) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0) RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 plot_color = direction > 0 ? lime: direction < 0 ? red : na plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color) //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2) //=============Hull MA// show_hma = input(false, title="Display Hull MA Set:") hma_src = input(close, title="Hull MA's Source:") hma_base_length = input(8, minval=1, title="Hull MA's Base Length:") hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA") //============ signal Generator ==================================// Piriod=input('720') ch1 = request.security(syminfo.tickerid, Piriod, open) ch2 = request.security(syminfo.tickerid, Piriod, close) longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open)) if (longCondition) strategy.entry("BUY", strategy.long) shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open)) if (shortCondition) strategy.entry("SELL", strategy.short) ///////////////////////////////////////////////////////////////////////////////////////////