Estratégia de acompanhamento do ímpeto

Autora:ChaoZhang, Data: 2023-11-23 13:47:02
Tags:

img

Resumo

Esta estratégia utiliza o tamanho do corpo dos candelabros e o indicador de momento da tendência EMA para determinar as tendências do mercado e implementar negociação automatizada para comprar baixo e vender alto.

Estratégia lógica

  1. Classifique os castiçais em migalhas, velas pequenas e velas grandes com base no tamanho do corpo.
  2. Quando a EMA está a subir, se uma grande vela vermelha aparecer, indica uma correcção do mercado.
  3. Quando a EMA está caindo, se uma grande vela verde aparecer, significa que o mercado está se estabilizando.
  4. Ajustar dinamicamente as posições com base na monitorização em tempo real das alterações do candlestick e das tendências da EMA.

Análise das vantagens

  1. A ideia de estratégia é direta e fácil de entender, julgando a estrutura do mercado através de indicadores simples.
  2. A estratégia tem poucos parâmetros e não é propensa a sobreajuste, resultando em alta estabilidade.
  3. Implementa a lógica de comprar baixo e vender alto e produz lucros perceptíveis durante flutuações significativas do mercado.
  4. O sistema tem em conta tanto as tendências como as reversões e pode responder rapidamente às alterações das condições de mercado.

Riscos e otimização

  1. O ATR pode ser incorporado para o stop-loss.
  2. Ele não considera a emissão básica de criptomoedas e pode ser testado em mais pares de negociação.
  3. Algoritmos de aprendizado de máquina podem ser introduzidos para ajudar a julgar padrões de velas.
  4. Os indicadores de volume de negociação podem ser utilizados para analisar as variedades.
  5. Podem ser testados diferentes ajustes de parâmetros de tempo.

Conclusão

A ideia geral desta estratégia é direta e fácil de entender, com momentum e tracking como suas principais características. Determina a principal direção do mercado através do simples indicador EMABOLL e usa corpos de velas para julgar ajustes locais, realizando negociação eficiente comprando baixo e vendendo alto. A estratégia tem alta estabilidade e apresenta um desempenho excepcionalmente bom em criptomoedas, tornando-a valiosa para testes e otimização adicionais.


/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Author @divonn1994

strategy(title='Trend Follower Strategy v2 [divonn1994]', shorttitle='TrendFollowStrategyV2', overlay=false, pyramiding=0, default_qty_value=100, default_qty_type=strategy.percent_of_equity, precision=7, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent, initial_capital=100)

//Important Constants for Classifying Candle Size----------------------------------------------------------------------------------------------------------------------------------------------

timesBigger = 2
crumbSize = 1400
crumbSize2 = 2100
bigCandleSize = 3800

//Key Alerts and Classifications of Candle Size and EMAs---------------------------------------------------------------------------------------------------------------------------------------

emaAlert = ta.ema(close, 8) > ta.ema(open, 8) ? 1 : 0 
CandleSize = close * 1 - open * 1
previousCandleSize = close[1] * 1 - open[1] * 1
greenCandle = close > open ? 1 : 0
previousGreenCandle = close[1] > open[1] ? 1 : 0

crumb = (greenCandle==1 and CandleSize<=crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize) ? 1 : 0
bigCrumb = (greenCandle==1 and CandleSize<=crumbSize2 and CandleSize>crumbSize) or (greenCandle==0 and -CandleSize<=crumbSize2 and -CandleSize>crumbSize) ? 1 : 0
previousCandleIsSmallCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize) ? 1 : 0
previousCandleIsBigCrumb = (previousGreenCandle==1 and previousCandleSize<=crumbSize2 and previousCandleSize>crumbSize) or (previousGreenCandle==0 and -previousCandleSize<=crumbSize2 and -previousCandleSize>crumbSize) ? 1 : 0

bigCandle = (greenCandle==1 and previousCandleIsBigCrumb==1 and CandleSize>=math.abs(timesBigger*previousCandleSize)) or (greenCandle==1 and previousCandleIsSmallCrumb==1 and CandleSize>=bigCandleSize) or (greenCandle==1 and previousCandleIsSmallCrumb==0 and previousCandleIsBigCrumb==0 and CandleSize>=math.abs(timesBigger*previousCandleSize)) ? 1 : 0

//Engine (Secret Sauce)------------------------------------------------------------------------------------------------------------------------------------------------------------------------

buy = (crumb==0 and bigCrumb==0 and greenCandle==0) or (greenCandle==1 and bigCandle==1) or (emaAlert==0) ? 0 : 1

//Strategy-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if ta.crossover(buy, 0.5)
    strategy.entry('long', strategy.long, comment='long')
if ta.crossunder(buy, 0.5)
    strategy.close('long')

//Plot Strategy Behavior-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

plot(buy, color=color.new(color.silver, 0))
plot(0.5, color=color.new(color.fuchsia, 0))

Mais.