라스트 촛불 전략은 마지막 촛불의 종료 가격과 개시 가격 사이의 관계를 기반으로 시장 트렌드 방향을 결정하고 그에 따라 거래 신호를 생성하는 트렌드 다음 전략입니다.
이 전략의 핵심 논리는 다음과 같습니다.
구체적으로, 전략은 마지막 촛불의 개막 가격과 폐쇄 가격 데이터를 요청하고 가격 비교를 기반으로 트렌드 방향을 결정합니다. 상승 추세라면 촛불이 닫을 때 구매 시장을 주문합니다. 하락 추세라면 판매 시장을 주문합니다.
그 후, 스톱 손실 및 수익을 취하는 가격이 설정됩니다. 긴 포지션의 경우, 스톱 손실 가격은 해당 촛불의 개막 가격으로 계수로 곱하고, 수익을 취하는 가격은 현재 폐쇄 가격입니다. 짧은 포지션의 경우 그 반대입니다. 가격이 스톱 손실 또는 수익을 취하면 해당 포지션이 종료됩니다.
확인을 위한 트렌드 지표를 통합하고, 스톱 로스/프로피트 로직을 최적화하고, 백테스트 기간과 시장 환경을 확장함으로써 위험을 줄일 수 있습니다.
라스트 촛불 전략은 트렌드를 따르는 간단한 전략이다. 마지막 촛불을 사용하여 트렌드 방향을 빠르게 판단하고 그에 따라 거래한다. 논리는 트렌드를 따르는 아이디어와 일치하여 간단하고 구현하기 쉽습니다. 스톱 손실과 수익을 취하는 것도 위험을 제어하도록 설정되어 있습니다. 그러나 마지막 촛불에만 의존하면 쉽게 함정에 빠질 수 있으므로 트렌드 지표와 함께 사용해야합니다. 또한 더 많은 기술적 지표 또는 기계 학습 모델을 도입함으로써이 전략을 개선하는 데 큰 여지가 있습니다.
/*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)