Esta estratégia é um sistema de negociação baseado em uma média móvel exponencial dupla (EMA), implementando ordens de compra de limite no nível da EMA20. Emprega uma abordagem conservadora de gerenciamento de dinheiro, utilizando apenas 10% do patrimônio da conta por negociação e incorporando níveis de take-profit e stop-loss para gerenciamento de riscos.
A lógica central da estratégia baseia-se em vários elementos-chave: 1. Utiliza a EMA300 como um filtro de tendência, considerando apenas posições longas quando o preço está acima da EMA300, garantindo que a direcção do comércio esteja alinhada com a tendência principal. 2. As posições limitam as ordens de compra no nível da EMA20 quando as condições de tendência são atendidas, permitindo entradas a preços relativamente mais baixos durante os recuos para o suporte da média móvel. 3. Implementa níveis fixos de take-profit e stop-loss baseados em percentagem, com incumprimento de 10% para metas de lucro e 5% para stop-loss, mantendo uma relação risco-recompensa superior a 2:1. 4. Emprega o dimensionamento da posição em 10% do capital da conta, reduzindo efetivamente a exposição ao risco por negociação através de uma gestão de dinheiro conservadora.
Esta estratégia combina um sistema de média móvel com regras estritas de controle de risco para criar um sistema de negociação relativamente robusto. Seus principais pontos fortes estão em suas características de tendência e mecanismos abrangentes de gerenciamento de risco, otimizando os preços de entrada através de ordens limitadas, mantendo uma gestão de dinheiro conservadora. Embora a estratégia possa ter um desempenho inferior em mercados variados, as direções de otimização sugeridas podem melhorar ainda mais sua estabilidade e lucratividade.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Limit Buy at EMA20 (Last 30 Days)", overlay=true) // Inputs for EMAs ema20Length = input.int(30, title="EMA 20 Length") ema300Length = input.int(300, title="EMA 300 Length") tpPercentage = input.float(10.0, title="Take Profit (%)", step=0.1) / 100 slPercentage = input.float(5.0, title="Stop Loss (%)", step=0.1) / 100 // Stop loss at 15% // Calculate EMAs ema20 = ta.ema(close, ema20Length) ema300 = ta.ema(close, ema300Length) // Plot EMAs plot(ema20, color=color.blue, title="EMA 20") plot(ema300, color=color.red, title="EMA 300") // Limit backtesting to the last 30 days startTime = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - 30, 0, 0) if (time < startTime) strategy.close_all() strategy.cancel_all() // Entry Condition: Price above EMA300 longCondition = close > ema300 and time >= startTime // Calculate position size (10% of equity) positionSize = strategy.equity * 0.10 / ema20 // Use EMA20 as the limit price // Place a limit buy order at EMA20 if (longCondition) strategy.order("Limit Buy", strategy.long, qty=positionSize, limit=ema20) // Calculate TP and SL levels tpPrice = ema20 * (1 + tpPercentage) slPrice = ema20 * (1 - slPercentage) // Set take profit and stop loss if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Limit Buy", stop=slPrice, limit=tpPrice)