Chiến lược nến cuối cùng

Tác giả:ChaoZhang, Ngày: 21-12-2023 12:15:23
Tags:

img

Tổng quan

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.

Chiến lược logic

Logic cốt lõi của chiến lược này là:

  1. Tính toán giá mở và giá đóng của ngọn nến cuối cùng
  2. Nếu giá mở thấp hơn giá đóng, đánh giá nó là xu hướng tăng và tạo ra tín hiệu mua
  3. Nếu giá mở cao hơn giá đóng, đánh giá nó là xu hướng giảm và tạo ra một tín hiệu bán
  4. Nhập vị trí dài hoặc ngắn dựa trên tín hiệu giao dịch
  5. Đặt giá dừng lỗ và lấy lợi nhuận để thoát khỏi các vị trí

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.

Phân tích lợi thế

  • Định nghĩa chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện
  • Bắt được xu hướng thay đổi giá mới nhất bằng cách sử dụng ngọn nến cuối cùng
  • Có cả stop loss và take profit để hạn chế rủi ro giảm

Phân tích rủi ro

  • Tháp nến cuối cùng có thể có pullback hoặc bên, tăng khả năng whipsaw
  • Đánh giá xu hướng chỉ dựa trên nến cuối cùng có thể gây ra bị mắc kẹt, nên kết hợp các chỉ số xu hướng
  • Dữ liệu backtesting không đủ có thể dẫn đến quá phù hợp

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.

Hướng dẫn tối ưu hóa

  • Tích hợp MA, MACD v.v. để lọc thời gian nhập cảnh
  • Sử dụng ATR để thiết lập tỷ lệ dừng lỗ
  • Giới thiệu các mô hình học máy để xác định hướng xu hướng
  • Tối ưu hóa các chiến lược dừng lỗ / lấy lợi nhuận, chẳng hạn như dừng lỗ, lấy lợi nhuận một phần v.v.

Kết luận

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)



Thêm nữa