Chiến lược giao thoa MA/VWAP linh hoạt với Stop Loss/Take Profit

Tác giả:ChaoZhang, Ngày: 2023-12-20 14:06:18
Tags:

img

Tổng quan

Chiến lược này xác định các giao thoa giữa trung bình di chuyển nhanh, trung bình di chuyển chậm và giá trung bình trọng số (VWAP) để nắm bắt các biến động giá tiềm năng. Nó kích hoạt tín hiệu mua khi MA nhanh vượt trên VWAP và MA chậm, và bán tín hiệu khi MA nhanh vượt dưới VWAP và MA chậm.

Chiến lược logic

Chiến lược này kết hợp các điểm mạnh của đường trung bình động và VWAP. Đường trung bình động có thể lọc hiệu quả tiếng ồn thị trường và xác định hướng xu hướng. VWAP phản ánh ý định của tiền lớn chính xác hơn. MA nhanh nắm bắt xu hướng ngắn hạn trong khi MA chậm lọc các tín hiệu sai. Khi MA nhanh vượt qua trên MA chậm và VWAP, nó chỉ ra xu hướng ngắn hạn tăng và kích hoạt tín hiệu mua. Dưới đó là các tín hiệu bán.

Phân tích lợi thế

  • Bộ lọc MA kép làm giảm tín hiệu sai
  • VWAP đánh giá chính xác ý định của tiền lớn
  • Các tham số MA linh hoạt thích nghi với các giai đoạn khác nhau
  • Kiểm soát rủi ro hiệu quả bằng cách dừng lỗ/lấy lợi nhuận

Phân tích rủi ro

  • Thị trường Whipsaw có thể tạo ra nhiều tín hiệu sai
  • Các thông số VWAP không chính xác không đánh giá ý định quỹ
  • Dừng lỗ quá chặt chẽ không thể theo dõi xu hướng, quá lỏng lẻo rủi ro dư thừa

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

  • Tối ưu hóa các tham số MA và VWAP cho các điều kiện thị trường khác nhau
  • Các tín hiệu bộ lọc bổ sung với RSI
  • Tỷ lệ dừng lỗ/lấy lợi nhuận động

Kết luận

Chiến lược này tích hợp các điểm mạnh của các đường trung bình động và VWAP, xác định các tín hiệu chéo qua lọc kép và kiểm soát hiệu quả rủi ro với các cơ chế dừng lỗ / lấy lợi nhuận linh hoạt.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Flexible MA VWAP Crossover Strategy with SL/TP", shorttitle="MA VWAP Crossover", overlay=true)

// Input parameters
fast_length = input(9, title="Fast MA Length", minval=1)
slow_length = input(21, title="Slow MA Length", minval=1)
vwap_length = input(14, title="VWAP Length", minval=1)

// Stop Loss and Take Profit inputs
stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=5.0, step=0.1)
take_profit_percent = input(2.0, title="Take Profit (%)", minval=1.0, maxval=10.0, step=0.1)

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
vwap = sma(close * volume, vwap_length) / sma(volume, vwap_length)

// Buy and sell conditions
buy_condition = crossover(fast_ma, vwap) and crossover(fast_ma, slow_ma)
sell_condition = crossunder(fast_ma, vwap) and crossunder(fast_ma, slow_ma)

// Plot the moving averages
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)
plot(vwap, title="VWAP", color=color.purple)

// Plot buy and sell signals
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal")
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal")

// Define stop loss and take profit levels
var float stop_loss_price = na
var float take_profit_price = na

if (buy_condition)
    stop_loss_price := close * (1 - stop_loss_percent / 100)
    take_profit_price := close * (1 + take_profit_percent / 100)

// Strategy entry and exit with flexible SL/TP
strategy.entry("Buy", strategy.long, when = buy_condition)

if (sell_condition)
    strategy.exit("SL/TP", from_entry = "Buy", stop = stop_loss_price, limit = take_profit_price)


Thêm nữa