Phiên bản nâng cao của hệ thống giao dịch giá trung bình theo khối lượng và đường trung bình không bóng K

VWAP HA SL TP IST ATR
Ngày tạo: 2025-02-21 14:49:07 sửa đổi lần cuối: 2025-02-21 14:49:07
sao chép: 0 Số nhấp chuột: 423
2
tập trung vào
319
Người theo dõi

Phiên bản nâng cao của hệ thống giao dịch giá trung bình theo khối lượng và đường trung bình không bóng K Phiên bản nâng cao của hệ thống giao dịch giá trung bình theo khối lượng và đường trung bình không bóng K

Tổng quan

Đây là một hệ thống giao dịch tự động dựa trên đường K trung bình không có bóng ((Heikin-Ashi) và giá trung bình cân bằng khối lượng giao dịch ((VWAP)). Chiến lược này thực hiện các hoạt động mua bán trong thời gian giao dịch được đặt bằng cách xác định hình thức đường K cụ thể, kết hợp với VWAP làm điểm hỗ trợ / kháng cự động. Hệ thống sử dụng rủi ro quản lý điểm dừng lỗ cố định và áp dụng các vị trí bằng phẳng vào một thời gian nhất định mỗi ngày để tránh rủi ro qua đêm.

Nguyên tắc chiến lược

Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:

  1. Sử dụng đường Heikin-Ashi K thay vì đường K truyền thống, có thể xác định xu hướng thị trường tốt hơn bằng cách tính trung bình của giá mở, giá cao nhất, giá thấp nhất và giá đóng.
  2. Điều kiện mua: Đường Heikin-Ashi K màu xanh lá cây được hình thành và giá nằm trên VWAP.
  3. Điều kiện bán: Đường Heikin-Ashi K màu đỏ (không có bóng trên) được tạo ra và giá nằm dưới VWAP.
  4. Với mục tiêu dừng cố định 50 điểm, chạm vào giá chi phí là cân bằng.
  5. Tất cả các vị trí chưa thanh toán sẽ được thanh toán tại 15:01.

Lợi thế chiến lược

  1. Kết hợp hai chỉ số kỹ thuật mạnh mẽ Heikin-Ashi và VWAP giúp tăng độ tin cậy của tín hiệu giao dịch.
  2. Yêu cầu không bóng bảo đảm tín hiệu xác nhận xu hướng mạnh hơn.
  3. Các điểm dừng cố định giúp kiểm soát rủi ro nghiêm ngặt.
  4. Chiến lược giao dịch trong ngày giúp tránh rủi ro qua đêm.
  5. Hệ thống hoàn toàn tự động, giảm thiểu sự can thiệp của con người.

Rủi ro chiến lược

  1. Các điểm dừng cố định có thể không phù hợp với tất cả các điều kiện thị trường, đặc biệt là khi biến động.
  2. Việc bắt buộc thời gian thanh toán có thể dẫn đến việc bỏ lỡ sự tiếp tục.
  3. Các yêu cầu nghiêm ngặt của không dây có thể khiến bạn bỏ lỡ một số cơ hội giao dịch hiệu quả.
  4. Các tín hiệu giả có thể xuất hiện thường xuyên trong thị trường giao dịch ngang.
  5. VWAP có thể giảm giá trị tham chiếu trong thời gian giao dịch thấp.

Hướng tối ưu hóa chiến lược

  1. Tiếp theo, ATR được đưa vào để điều chỉnh động điểm dừng lỗ, giúp chiến lược thích ứng tốt hơn với sự biến động của thị trường.
  2. Thêm bộ lọc xu hướng, giảm tín hiệu giả trong thị trường ngang.
  3. Tối ưu hóa thời gian thanh toán, có thể được điều chỉnh theo động lực của đặc điểm thị trường.
  4. Thêm bộ lọc khối lượng giao dịch để tăng độ tin cậy của chỉ số VWAP.
  5. Có tính năng theo dõi lỗ và bảo vệ lợi nhuận tốt hơn.

Tóm tắt

Chiến lược này xây dựng một hệ thống giao dịch trong ngày vững chắc bằng cách kết hợp các chỉ số Heikin-Ashi và VWAP. Mặc dù có một số không gian để tối ưu hóa, nhưng khuôn khổ cơ bản có tính thực tế tốt. Với hướng tối ưu hóa được đề xuất, chiến lược có khả năng hoạt động tốt hơn trong các điều kiện thị trường khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2024-07-16 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Buy and Sell Signal with VWAP and Timed Exit", overlay=true)

// VWAP Calculation
vwap = ta.vwap(close)

// Heikin-Ashi Formula
var float heikin_open = na
var float heikin_close = na

heikin_open := na(heikin_open[1]) ? (open + close) / 2 : (heikin_open[1] + heikin_close[1]) / 2
heikin_close := (open + high + low + close) / 4
heikin_high = math.max(high, math.max(heikin_open, heikin_close))
heikin_low = math.min(low, math.min(heikin_open, heikin_close))

// Conditions for Sell (Red Heikin-Ashi with no upper shadow) and Buy (Green Heikin-Ashi with no lower shadow)
no_upper_shadow = heikin_high == math.max(heikin_open, heikin_close)
no_lower_shadow = heikin_low == math.min(heikin_open, heikin_close)

// Condition for red (sell) and green (buy) Heikin-Ashi candles
is_red_candle = heikin_close < heikin_open
is_green_candle = heikin_close > heikin_open

// Buy and Sell Signal Conditions
sell_signal = is_red_candle and no_upper_shadow and close < vwap
buy_signal = is_green_candle and no_lower_shadow and close > vwap

// Check current time (for 15:01 IST)
is_after_1501 = (hour == 15 and minute > 1) or (hour > 15)

// Check for open positions
open_sell_position = strategy.position_size < 0
open_buy_position = strategy.position_size > 0

// Trigger Sell order only if no open sell position exists and time is before 15:01, and price is below VWAP
if sell_signal and not open_sell_position and not is_after_1501
    strategy.entry("Sell", strategy.short)

// Trigger Buy order only if no open buy position exists and time is before 15:01, and price is above VWAP
if buy_signal and not open_buy_position and not is_after_1501
    strategy.entry("Buy", strategy.long)

// Define exit condition for Sell (opposite of Buy conditions)
exit_sell_condition = false

if open_sell_position
    entry_price = strategy.position_avg_price  // Get the average entry price for Sell
    current_price = close  // Current market price for Sell

    // Exit conditions for Sell
    exit_sell_condition := current_price > entry_price or entry_price - current_price >= 50

    // Exit if conditions are met
    if exit_sell_condition
        strategy.close("Sell")

// Define exit condition for Buy (opposite of Sell conditions)
exit_buy_condition = false

if open_buy_position
    entry_price = strategy.position_avg_price  // Get the average entry price for Buy
    current_price = close  // Current market price for Buy

    // Exit conditions for Buy
    exit_buy_condition := current_price < entry_price or current_price - entry_price >= 50

    // Exit if conditions are met
    if exit_buy_condition
        strategy.close("Buy")

// Exit at 15:01 IST for both Buy and Sell if not already exited
if (open_sell_position or open_buy_position) and (hour == 15 and minute == 1)
    strategy.close("Sell")
    strategy.close("Buy")

// Plot VWAP
plot(vwap, color=color.blue, linewidth=2, title="VWAP")

// Plot Heikin-Ashi Candles
plotcandle(heikin_open, heikin_high, heikin_low, heikin_close, color = is_red_candle ? color.red : (is_green_candle ? color.green : color.gray))

// Plot Sell signal on the chart
plotshape(sell_signal and not open_sell_position and not is_after_1501, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)

// Plot Buy signal on the chart
plotshape(buy_signal and not open_buy_position and not is_after_1501, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)

// Plot Exit signals on the chart
plotshape(exit_sell_condition and open_sell_position, style=shape.labelup, location=location.belowbar, color=color.blue, text="EXIT SELL", size=size.small)
plotshape(exit_buy_condition and open_buy_position, style=shape.labeldown, location=location.abovebar, color=color.blue, text="EXIT BUY", size=size.small)