Chiến lược nến cuối cùng là một chiến lược theo xu hướng xác định hướng xu hướng thị trường dựa trên mối quan hệ giữa giá đóng cửa và giá mở cửa của nến cuối cùng và tạo ra các tín hiệu giao dịch phù hợp.
Logic cốt lõi của chiến lược này là:
Cụ thể, chiến lược yêu cầu dữ liệu giá mở và giá đóng của nến cuối cùng và xác định hướng xu hướng dựa trên so sánh giá. Nếu đó là xu hướng tăng, lệnh mua sẽ được đặt khi nến đóng. Nếu đó là xu hướng giảm, lệnh bán sẽ được đặt.
Sau đó, giá dừng lỗ và lấy lợi nhuận được thiết lập. Đối với các vị trí dài, giá dừng lỗ là giá mở của ngọn nến đó nhân một hệ số, và giá lấy lợi nhuận là giá đóng cửa hiện tại. Đối với các vị trí ngắn, điều ngược lại. Khi giá kích hoạt hoặc dừng lỗ hoặc lấy lợi nhuận, vị trí tương ứng sẽ được đóng.
Rủi ro có thể được giảm bằng cách kết hợp các chỉ số xu hướng để xác nhận, tối ưu hóa logic dừng lỗ / lấy lợi nhuận, mở rộng thời gian kiểm tra lại và môi trường thị trường.
Chiến lược nến cuối cùng là một chiến lược theo xu hướng đơn giản. Nó nhanh chóng đánh giá hướng xu hướng bằng cách sử dụng nến cuối cùng và giao dịch phù hợp. Logic là đơn giản và dễ thực hiện, phù hợp với ý tưởng theo xu hướng. Dừng lỗ và lấy lợi nhuận cũng được thiết lập để kiểm soát rủi ro. Tuy nhiên, chỉ dựa vào nến cuối cùng có thể dễ dàng bị mắc kẹt, vì vậy nó nên được sử dụng cùng với các chỉ số xu hướng. Ngoài ra, vẫn còn nhiều chỗ để cải thiện chiến lược này, bằng cách giới thiệu các chỉ số kỹ thuật hơn hoặc các mô hình học máy.
/*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)