Esta estratégia é projetada com base em indicadores de oscilador de aceleração dual EMA e AC. O indicador dual EMA é usado para determinar a direção da tendência do preço, enquanto o indicador AC é usado para confirmar o sinal de tendência para efeito de filtragem.
A estratégia consiste em dois módulos:
Módulo EMA duplo
Construir um indicador de EMA duplo usando EMA de 2 dias e EMA de 20 dias. Um sinal de compra é gerado quando o preço cruza acima da EMA de 2 dias. Um sinal de venda é gerado quando o preço cruza abaixo da EMA de 20 dias.
Este módulo determina as direcções da tendência a curto e médio prazo para a tendência básica.
Módulo AC
Os sinais de negociação só são gerados quando os indicadores EMA e AC duplos concordam em direções.
Este módulo filtra os falsos sinais e melhora a fiabilidade.
Em resumo, esta estratégia integra um EMA duplo para detectar tendências principais e um indicador AC para filtrar falsas rupturas, formando uma tendência sistemática seguindo a metodologia.
As vantagens desta estratégia são as seguintes:
A EMA dupla rastreia tendências de médio e longo prazo enquanto a AC filtra o ruído de curto prazo, um grande efeito combinado.
Excelente efeito de filtragem para evitar a venda após um longo lucro ou a compra após um curto lucro.
Ajuste flexível de parâmetros adaptável a diferentes produtos e ambientes de mercado.
Lógica estratégica clara, fácil de compreender, otimizar e melhorar.
Tendência decente após potencial de lucro para produtos em tendência.
Há alguns riscos nesta estratégia:
A definição inadequada dos parâmetros da EMA dupla pode deixar de lado tendências mais curtas ou gerar operações redundantes.
A definição incorreta dos parâmetros de CA pode filtrar sinais válidos, mas mais fracos, ou não filtrar ruído suficiente.
Incapaz de se adaptar a mercados em rápida mudança, como acidentes bruscos.
A rentabilidade insuficiente em mercados variados deve ser utilizada como estratégia de tendência.
A estratégia pode ser otimizada nos seguintes aspectos:
Teste mais combinações de parâmetros para encontrar parâmetros ideais que se adequem às diferentes características do produto.
Adicionar módulo stop loss para sair em perdas de grandes dimensões.
Filtra os sinais com mais indicadores.
Desenvolver estratégias de combinação de longo e curto prazos para rastrear tendências de médio e longo prazo, utilizando negociações de curto prazo para reduzir ou adicionar posições ao longo da tendência.
A ideia de combinar EMA dupla para tendência e AC para filtragem de ruído vale a pena aprender. Esta estratégia tem sinais de qualidade e confiabilidade, adequados para rastrear produtos de tendência. Com ajuste adequado dos parâmetros, grandes lucros podem ser alcançados montando tendências usando esta estratégia.
/*backtest start: 2023-01-08 00:00:00 end: 2024-01-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 19/01/2022 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // The Accelerator Oscillator has been developed by Bill Williams // as the development of the Awesome Oscillator. It represents the // difference between the Awesome Oscillator and the 5-period moving // average, and as such it shows the speed of change of the Awesome // Oscillator, which can be useful to find trend reversals before the // Awesome Oscillator does. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length) => pos = 0.0 xPrice = close xXA = ta.ema(xPrice, Length) nHH = math.max(high, high[1]) nLL = math.min(low, low[1]) nXS = nLL > xXA or nHH < xXA ? nLL : nHH iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0) pos := nXS > close[1] ? -1 : iff_1 pos AC(nLengthSlow,nLengthFast) => pos = 0.0 xSMA1_hl2 = ta.sma(hl2, nLengthFast) xSMA2_hl2 = ta.sma(hl2, nLengthSlow) xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2 xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast) nRes = xSMA1_SMA2 - xSMA_hl2 cClr = nRes > nRes[1] ? color.blue : color.red iff_1 = nRes > 0 ? 1 : nz(pos[1], 0) pos := nRes < 0 ? -1 : iff_1 pos strategy(title='Combo 2/20 EMA & Accelerator Oscillator (AC)', shorttitle='Combo', overlay=true) var I1 = '●═════ 2/20 EMA ═════●' Length = input.int(14, minval=1, group=I1) var I2 = '●═════ Accelerator Oscillator ═════●' nLengthSlow = input(33, title="Length Slow", group=I2) nLengthFast = input(6, title="Length Fast", group=I2) var misc = '●═════ MISC ═════●' reverse = input.bool(false, title='Trade reverse', group=misc) var timePeriodHeader = '●═════ Time Start ═════●' d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader) m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader) y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader) StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false posEMA20 = EMA20(Length) prePosAC = AC(nLengthSlow,nLengthFast) iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0 pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1 iff_2 = reverse and pos == -1 ? 1 : pos possig = reverse and pos == 1 ? -1 : iff_2 if possig == 1 strategy.entry('Long', strategy.long) if possig == -1 strategy.entry('Short', strategy.short) if possig == 0 strategy.close_all() barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)