Tendência de Walnut Seguindo uma estratégia baseada na distância da 200 EMA

Autora:ChaoZhang, Data: 2024-03-01 10:50:03
Tags:

Atinge a meta de lucro no final do dia

Saída curta:Fechar <= 200 EMA e atingir a meta de lucro no final do dia

O stop loss é de 20% do prémio da opção.

II. Vantagens

As principais vantagens desta estratégia são:

  1. Utilização da média móvel de 200 dias para determinar a tendência a médio e longo prazo, evitando o ruído do mercado a curto prazo
  2. Estabelecimento da tendência após o mecanismo de acompanhamento da tendência dos preços a médio e longo prazo
  3. Otimização do tempo de entrada quando a última direção da vela se alinha com a tendência principal
  4. Previsão de prejuízo e lucro para evitar perdas maiores

III. Riscos

Os principais riscos desta estratégia são:

  1. Podem ocorrer perdas múltiplas durante a consolidação do mercado em torno da média móvel
  2. Reversão súbita da tendência desencadeia o stop loss
  3. A selecção inadequada de parâmetros como a média móvel do período leva a um julgamento da tendência inexacto

Os seguintes aspectos podem ser otimizados para reduzir os riscos acima referidos:

  1. Ajustar os parâmetros da média móvel ou adicionar outros indicadores para determinar a tendência principal
  2. Otimizar o mecanismo de stop loss como ajustar a distância de parada com base na mudança de preço
  3. Otimizar as condições de entrada com mais indicadores de julgamento

IV. Orientações de otimização

As principais direcções de otimização para esta estratégia são:

  1. Otimizar os parâmetros da média móvel, os impactos dos testes de diferentes parâmetros de período
  2. Adicione outros indicadores como Bandas de Bollinger, KDJ para determinar a tendência principal
  3. Ajustar a estratégia de stop loss para seguir o preço dinamicamente
  4. Otimizar as condições de entrada para evitar entradas erradas devido a correções de curto prazo

V. Conclusão

Este artigo analisou em detalhes a lógica, pontos fortes, pontos fracos e direções de otimização da estratégia de tendência baseada na distância entre o preço e a média móvel de 200 dias. Esta estratégia julga a tendência de médio e longo prazo rastreando o desvio do preço da média móvel de longo prazo. As posições são estabelecidas quando o desvio excede um limiar e fechadas ao atingir metas de stop loss ou take profit. Esta estratégia pode rastrear bem a tendência de médio e longo prazo, mas ainda tem algum espaço de otimização de parâmetros. Melhorias futuras podem ser feitas a partir de várias perspectivas para tornar a estratégia mais robusta em diferentes condições de mercado.


/*backtest
start: 2024-02-22 00:00:00
end: 2024-02-24 06:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Intraday Price Away from 200 EMA Strategy", overlay=true)

// Define inputs
emaPeriod = input(200, title="EMA Period")
thresholdPercent = input(0.75, title="Threshold Percent", minval=0)  // Define the threshold percentage

// Calculate 200 EMA
ema = ema(close, emaPeriod)

// Calculate distance from 200 EMA as a percentage
distance_percent = ((close - ema) / ema) * 100

// Track average entry price
var float avgEntryPrice = na

// Buy conditions
buy_condition = close < ema and abs(distance_percent) >= thresholdPercent and close[1] < close[2]

// Exit conditions for buy
exit_buy_condition = close >= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) <= close

// Sell conditions
sell_condition = close > ema and abs(distance_percent) >= thresholdPercent and close[1] > close[2]

// Exit conditions for sell
exit_sell_condition = close <= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) >= close

// Execute buy and sell orders only if there are no open trades
if strategy.opentrades == 0
    strategy.entry("Buy", strategy.long, when=buy_condition)
    strategy.entry("Sell", strategy.short, when=sell_condition)

// Update average entry price for buy condition
if buy_condition
    avgEntryPrice := close

// Update average entry price for sell condition
if sell_condition
    avgEntryPrice := close

// Close buy position if exit condition is met
strategy.close("Buy", when=exit_buy_condition)

// Close sell position if exit condition is met
strategy.close("Sell", when=exit_sell_condition)

// Plot 200 EMA
plot(ema, color=color.blue, linewidth=2)

// Plot buy and sell signals
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)


Mais.