Chiến lược giao dịch vàng VWAP MACD SMO là một chiến lược hoàn chỉnh được thiết kế cho thị trường vàng bằng cách sử dụng biểu đồ khung thời gian 12 giờ. Nó kết hợp VWAP hàng tháng, dao động SMO và biểu đồ MACD để xác định các cơ hội giao dịch trên thị trường vàng.
Chiến lược này sử dụng VWAP hàng tháng như là chỉ số xu hướng chính. VWAP đại diện cho giá giao dịch trung bình, và hàng tháng có nghĩa là khoảng thời gian để tính VWAP là tháng trước. Nếu mức đóng hiện tại trên VWAP hàng tháng, nó chỉ ra xu hướng tăng hiện tại; nếu mức đóng dưới VWAP hàng tháng, điều đó có nghĩa là xu hướng giảm.
Trình dao động SMO được sử dụng để xác định tình hình mua quá mức và bán quá mức 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 dao động trên 0, nó chỉ ra điều kiện mua quá mức, và khi dưới 0, nó đại diện cho việc bán quá mức.
Các mô hình biểu đồ MACD có thể xác định hướng động lực. Khi cột phá vỡ, nó đại diện cho động lực đang tăng cường để đi dài; khi cột phá vỡ, nó có nghĩa là động lực đang suy yếu để xem xét đi ngắn.
Theo ba chỉ số này, các quy tắc cụ thể của chiến lược giao dịch có thể được thiết lập:
Nhập dài: khi đóng là trên VWAP hàng tháng, biểu đồ MACD bị phá vỡ và dao động SMO trên 0. Nhập ngắn: khi đóng dưới VWAP hàng tháng, biểu đồ MACD bị phá vỡ và dao động SMO dưới 0.
Lợi nhuận và dừng lỗ được thiết lập dựa trên tỷ lệ phần trăm đầu vào.
Chiến lược kết hợp nhiều khung thời gian và chỉ số để xác định hiệu quả hướng và sức mạnh xu hướng, với những lợi thế sau:
Mặc dù chiến lược được thiết kế hợp lý, vẫn có một số rủi ro cần lưu ý:
Để kiểm soát các rủi ro trên, các thông số VWAP và MACD nên được tối ưu hóa một cách hợp lý mà không có phạm vi quá rộng. Ngoài ra, tỷ lệ lợi nhuận và dừng lỗ không nên quá cao và lỗ đơn nên được kiểm soát khoảng 3%.
Chiến lược cũng có thể được tối ưu hóa trong các khía cạnh sau:
Chiến lược SMO VWAP MACD vàng kết hợp nhiều chỉ số để xác định xu hướng và điều kiện mua quá mức / bán quá mức, có thể nắm bắt hiệu quả các cơ hội trung hạn đến dài hạn trong vàng. Mặc dù có một số rủi ro, chúng có thể được kiểm soát thông qua tối ưu hóa tham số và quản lý rủi ro. Chiến lược có khả năng mở rộng rất mạnh và có thể được tối ưu hóa theo mô-đun dựa trên nhu cầu thực tế. Đây là một hệ thống giao dịch xứng đáng theo dõi dài hạn.
/*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')