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:
III. Riscos
Os principais riscos desta estratégia são:
Os seguintes aspectos podem ser otimizados para reduzir os riscos acima referidos:
IV. Orientações de otimização
As principais direcções de otimização para esta estratégia são:
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)