A estratégia da última vela é uma estratégia de tendência que determina a direção da tendência do mercado com base na relação entre o preço de fechamento e o preço de abertura do último candelabro e gera sinais de negociação em conformidade.
A lógica central desta estratégia é a seguinte:
Especificamente, a estratégia solicita os dados de preço de abertura e fechamento do último candelabro e determina a direção da tendência com base na comparação de preços.
Para as posições longas, o preço de stop loss é o preço de abertura desse candelabro multiplicado por um coeficiente, e o preço de take profit é o preço de fechamento atual. Para as posições curtas é o oposto.
Os riscos podem ser reduzidos pela incorporação de indicadores de tendência para confirmação, otimização da lógica stop loss/take profit, expansão do período de backtest e ambientes de mercado.
A estratégia da última vela é uma estratégia simples de seguir tendência. Ele julga rapidamente a direção da tendência usando o último candelabro e negocia de acordo. A lógica é simples e fácil de implementar, alinhando-se com a ideia de seguir tendência. Stop loss e take profit também são definidos para controlar riscos. No entanto, apenas confiar no último candelabro pode facilmente ficar preso, por isso deve ser usado junto com indicadores de tendência. Além disso, ainda há muito espaço para melhorar essa estratégia, introduzindo mais indicadores técnicos ou modelos de aprendizado de máquina.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Last Candle Strategy with Date Range", overlay=true) // Define the start and end dates for the backtest startDate = timestamp(2015, 01, 01, 00, 00) endDate = timestamp(2023, 11, 24, 23, 59) // Check if the current bar is within the specified date range withinDateRange = time >= startDate and time <= endDate // If outside the date range, skip the strategy logic if (not withinDateRange) strategy.close_all() // Calculate the opening and closing values for the last candle lastCandleOpen = request.security(syminfo.tickerid, "D", open[1], lookahead=barmerge.lookahead_on) lastCandleClose = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on) // Determine the trade direction based on the last candle tradeDirection = lastCandleOpen < lastCandleClose ? 1 : -1 // 1 for buy, -1 for sell // Plot the last candle's opening and closing values on the chart plot(lastCandleOpen, color=color.blue, title="Last Candle Open") plot(lastCandleClose, color=color.red, title="Last Candle Close") // Execute strategy orders if (withinDateRange) if (tradeDirection == 1) strategy.entry("Buy", strategy.long) if (tradeDirection == -1) strategy.entry("Sell", strategy.short) // Set stop loss and take profit stopLoss = 0.01 * lastCandleOpen takeProfit = close // Exit strategy strategy.exit("StopLoss/Profit", from_entry="Buy", loss=stopLoss, profit=takeProfit) strategy.exit("StopLoss/Profit", from_entry="Sell", loss=stopLoss, profit=takeProfit)