Chiến lược giao dịch vàng VWAP MACD SMO


Ngày tạo: 2023-10-20 16:23:33 sửa đổi lần cuối: 2023-10-20 16:23:33
sao chép: 0 Số nhấp chuột: 868
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch vàng VWAP MACD SMO

Tổng quan

Chiến lược giao dịch VWAP MACD SMO vàng là một chiến lược giao dịch hoàn chỉnh được thiết kế theo chu kỳ 12 giờ. Nó kết hợp đường trăng VWAP, dao động SMO và chỉ số MACD để xác định cơ hội giao dịch trên thị trường vàng.

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

Chiến lược này sử dụng đường tròn VWAP làm chỉ số xu hướng chính. VWAP đại diện cho giá giao dịch trung bình, đường tròn có nghĩa là phạm vi thời gian tính VWAP là một tháng qua. Nếu giá đóng cửa hiện tại cao hơn đường tròn VWAP, thì cho thấy hiện tại là giai đoạn tăng xu hướng; Nếu giá đóng cửa thấp hơn đường tròn VWAP, thì có nghĩa là xu hướng đang giảm.

SMO oscillator được sử dụng để xác định tình trạng quá mua và quá bán hiện tại. Nó bao gồm một thành phần chu kỳ dài và một thành phần chu kỳ ngắn. Khi oscillator cao hơn 0 thì biểu thị tình trạng quá mua, và khi thấp hơn 0 thì biểu thị quá bán.

Trong khi đó, đồ thị MACD thẳng đứng có thể xác định hướng động cơ. Khi cột phá lên, đại diện cho động cơ đang chuyển động mạnh mẽ, có thể làm nhiều hơn; khi cột phá xuống, có nghĩa là động cơ chuyển động yếu, nên xem xét làm trống.

Các quy tắc cụ thể cho chiến lược giao dịch có thể được xây dựng dựa trên ba chỉ số:

Tham gia nhiều đầu: Tham gia nhiều khi giá đóng cửa cao hơn đường trăng VWAP, MACD thẳng hàng trên cột phá vỡ, và dao động SMO cao hơn 0 Bước vào đầu trống: Khi giá đóng cửa dưới đường trăng VWAP, MACD thẳng hàng giảm phá vỡ, và dao động SMO trống khi dưới 0

Stop Loss được thiết lập dựa trên phần trăm đầu vào.

Phân tích lợi thế

Chiến lược này kết hợp nhiều phạm vi thời gian và các chỉ số để đánh giá hiệu quả về hướng và cường độ của xu hướng, với những lợi thế sau:

  1. Đường trăng VWAP có thể xác định hướng của xu hướng chính, tránh hoạt động ngược
  2. Biểu đồ đường thẳng MACD có thể nắm bắt sự thay đổi động lượng kịp thời
  3. SMO oscillator đánh giá tình trạng quá mua và quá bán, giúp mở cửa vào các khu vực dễ bị biến đổi
  4. Kết hợp nhiều chỉ số có thể xác thực lẫn nhau để tăng độ tin cậy của tín hiệu
  5. Tỷ lệ Stop Loss tùy chỉnh, kiểm soát rủi ro

Phân tích rủi ro

Mặc dù chiến lược này được thiết kế hợp lý, nhưng vẫn có một số rủi ro cần lưu ý:

  1. Chỉ số VWAP nhạy cảm với chuyển động chéo, có thể tạo ra tín hiệu sai
  2. Các tham số MACD được thiết lập không chính xác, làm tăng khả năng phá vỡ giả
  3. Các tham số SMO không chính xác cũng có thể dẫn đến việc đánh giá sai khu vực mua bán quá mức
  4. Cài đặt Stop Loss quá lỏng lẻo, không thể kiểm soát hiệu quả tổn thất đơn lẻ

Để kiểm soát các rủi ro trên, nên tối ưu hóa hợp lý các tham số của VWAP và MACD, không nên quá lớn. Đồng thời, tỷ lệ dừng lỗ không nên quá lớn, nên kiểm soát tổn thất đơn lẻ ở mức khoảng 3%.

Hướng tối ưu hóa

Chiến lược này cũng có thể được tối ưu hóa bằng cách:

  1. Thêm xác nhận giá, ví dụ như khối lượng giao dịch vượt qua đường trung bình
  2. Kết hợp các chỉ số biến động như ATR, điều chỉnh vị trí theo biến động của thị trường
  3. Thêm cơ chế làm sáng hàng loạt ở mức cao để tránh mất lợi nhuận
  4. Kiểm tra các chiến lược dừng lỗ khác nhau, chẳng hạn như dừng di chuyển, dừng vòng
  5. Thêm mô-đun kiểm tra mô hình, lọc tín hiệu bất thường

Tóm tắt

Chiến lược VWAP MACD SMO của vàng tổng hợp nhiều chỉ số để đánh giá xu hướng và tình trạng quá mua quá bán, có thể nắm bắt hiệu quả các cơ hội đường dài trung bình của vàng. Mặc dù có một số rủi ro, nhưng có thể được kiểm soát thông qua các phương tiện tối ưu hóa tham số và kiểm soát rủi ro. Chiến lược này có khả năng mở rộng rất mạnh, có thể được tối ưu hóa theo mô-đun theo nhu cầu thực tế, là một hệ thống giao dịch đáng để theo dõi lâu dài.

Mã nguồn chiến lược
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
// strategy("VWAP Gold strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10000, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.005)


source = input(low)


//vwap monthly
timeframeM = time("M")
beginningM = na(timeframeM[1]) or timeframeM > timeframeM[1]

sumsourceM = source * volume
sumVolM = volume
sumsourceM := beginningM ? sumsourceM : sumsourceM + sumsourceM[1]
sumVolM := beginningM ? sumVolM : sumVolM + sumVolM[1]
vwapMonthly= sumsourceM / sumVolM

//macd
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)


fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma
signal =  ema(macd, signal_length)
hist = macd - signal


//SMO
longlen = input(22, minval=1, title="Long Length SMO")
shortlen = input(6, minval=1, title="Short Length SMO")
siglen = input(5, minval=1, title="Signal Line Length SMO")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig


shortCondition =  close < vwapMonthly and hist < hist[1] and osc < 0
longCondition =  close > vwapMonthly and hist> hist[1] and osc > 0

tplong=input(0.085, step=0.005, title="Take profit % for long")
sllong=input(0.03, step=0.005, title="Stop loss % for long")
tpshort=input(0.05, step=0.005, title="Take profit % for short")
slshort=input(0.025, step=0.005, title="Stop loss % for short")

strategy.entry("long",1,when=longCondition)
strategy.entry("short",0,when=shortCondition)

strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')