Стратегия последней свечи - это стратегия, которая определяет направление тренда рынка на основе отношения между ценой закрытия и ценой открытия последней свечи и генерирует соответствующие торговые сигналы.
Основная логика этой стратегии заключается в следующем:
В частности, стратегия запрашивает данные о цене открытия и цене закрытия последней свечи и определяет направление тренда на основе сравнения цен. Если это восходящий тренд, то при закрытии свечи будет размещен рыночный заказ на покупку. Если это нисходящий тренд, то будет размещен рыночный заказ на продажу.
После этого устанавливаются цены стоп-лосса и прибыли. Для длинных позиций цена стоп-лосса - это цена открытия этой свечи умноженная на коэффициент, а цена прибыли - текущая цена закрытия. Для коротких позиций это наоборот. Когда цена запускает либо стоп-лосс, либо прибыль, соответствующая позиция будет закрыта.
Риски могут быть уменьшены за счет включения индикаторов тренда для подтверждения, оптимизации логики стоп-лосс / take profit, расширения периода обратного тестирования и рыночной среды.
Стратегия последней свечи - это простая стратегия, основанная на тренде. Она быстро определяет направление тренда с помощью последней свечи и соответствующим образом торгует. Логика проста и проста в реализации, согласуется с идеей следующего тренда. Стоп-лосс и прибыль также настроены на контроль рисков. Однако, просто полагаясь на последнюю свечу, можно легко попасть в ловушку, поэтому ее следует использовать вместе с индикаторами тренда. Кроме того, еще есть большое пространство для улучшения этой стратегии, путем внедрения более технических индикаторов или моделей машинного обучения.
/*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)