Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch VWAP

Tác giả:ChaoZhang, Ngày: 2024-04-29 14:20:39
Tags:EMAVWAP

img

Tổng quan

Chiến lược này là một chiến lược giao dịch dựa trên EMA, VWAP và khối lượng. Ý tưởng chính là tạo ra tín hiệu mở cửa khi giá đóng phá vỡ VWAP và EMA, và khối lượng giao dịch lớn hơn khối lượng của nến trước đó trong một thời gian giao dịch cụ thể. Nó cũng thiết lập dừng lỗ và lấy lợi nhuận, cũng như các điều kiện để đóng các vị trí trong một khoảng thời gian cụ thể.

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

  1. Tính toán các chỉ số EMA và VWAP.
  2. Xác định xem nó có nằm trong thời gian giao dịch được chỉ định hay không.
  3. Điều kiện đầu vào dài: giá đóng lớn hơn VWAP và EMA, khối lượng lớn hơn nến trước và giá đóng lớn hơn giá mở.
  4. Điều kiện đầu vào ngắn: giá đóng thấp hơn VWAP và EMA, khối lượng lớn hơn nến trước và giá mở lớn hơn giá đóng.
  5. Điều kiện thoát dài: giá đóng giảm xuống dưới VWAP hoặc EMA, đạt mức dừng lỗ hoặc lấy lợi nhuận hoặc đạt thời gian thoát chỉ định.
  6. Điều kiện thoát ngắn: giá đóng phá vỡ trên VWAP hoặc EMA, đạt mức dừng lỗ hoặc lấy lợi nhuận hoặc đạt thời gian thoát chỉ định.

Ưu điểm chiến lược

  1. Nó xem xét xu hướng giá (EMA), giá trị hợp lý thị trường (VWAP) và khối lượng giao dịch đồng thời, làm cho các điều kiện mở cửa nghiêm ngặt hơn, giúp cải thiện tỷ lệ chiến thắng của chiến lược.
  2. Nó đặt dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro và khóa lợi nhuận.
  3. Nó giới hạn thời gian giao dịch và thời gian thoát để tránh rủi ro trong giờ không giao dịch và giữ qua đêm.

Rủi ro chiến lược

  1. Chiến lược có thể không hoạt động tốt trong một thị trường biến động, vì những bước đột phá và giảm thường xuyên có thể dẫn đến nhiều lần mở và đóng cửa, làm tăng chi phí giao dịch và trượt.
  2. Mức dừng lỗ được cố định, có thể được kích hoạt sớm khi thị trường biến động mạnh mẽ, khiến chiến lược phải chịu tổn thất đáng kể.
  3. Chiến lược không xem xét độ sâu thị trường thực tế và tình trạng lệnh, có thể phải đối mặt với các vấn đề như trượt và thất bại mở trong giao dịch thực tế.

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

  1. Xem xét thêm các điều kiện lọc, chẳng hạn như các chỉ số ATR và RSI, để xác nhận thêm sức mạnh của xu hướng và đà tăng.
  2. Các mức dừng lỗ và lấy lợi nhuận có thể được thiết lập năng động, chẳng hạn như theo ATR hoặc tỷ lệ dừng lỗ phần trăm, để thích nghi với sự biến động của thị trường khác nhau.
  3. Tối ưu hóa các tham số, chẳng hạn như chiều dài EMA, nguồn VWAP, mức dừng lỗ và lấy lợi nhuận, v.v., để cải thiện sự ổn định và lợi nhuận của chiến lược.
  4. Xem xét thêm quản lý vị trí, chẳng hạn như điều chỉnh khối lượng mở theo biến động hoặc tỷ lệ vốn, để kiểm soát rủi ro tổng thể.

Tóm lại

Bằng cách xem xét toàn diện xu hướng giá, giá trị hợp lý của thị trường và khối lượng giao dịch, chiến lược này giao dịch trong một thời gian giao dịch cụ thể. Mặc dù dừng lỗ, lấy lợi nhuận và thời gian giao dịch hạn chế được thiết lập, nhưng nó vẫn cần chú ý đến các rủi ro như thị trường biến động và trượt trong ứng dụng thực tế. Trong tương lai, tính mạnh mẽ và lợi nhuận của chiến lược có thể được cải thiện bằng cách thêm nhiều điều kiện lọc, tối ưu hóa các tham số và quản lý các vị trí.


/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

// Strategy
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)


Có liên quan

Thêm nữa