Strategi perdagangan VWAP MACD SMO emas adalah strategi lengkap yang dirancang untuk pasar emas menggunakan grafik jangka waktu 12 jam.
Strategi ini menggunakan VWAP bulanan sebagai indikator tren utama. VWAP mewakili harga transaksi rata-rata, dan bulanan berarti rentang waktu untuk menghitung VWAP adalah bulan lalu. Jika penutupan saat ini di atas VWAP bulanan, itu menunjukkan tren naik saat ini; jika penutupan di bawah VWAP bulanan, itu berarti tren menurun.
Osilator SMO digunakan untuk menentukan situasi overbought dan oversold saat ini. Osilator ini terdiri dari komponen siklus panjang dan komponen siklus pendek.
Histogram MACD dapat menentukan arah momentum. Ketika kolom pecah, itu mewakili momentum menguat untuk pergi panjang; ketika kolom pecah, itu berarti momentum melemah untuk mempertimbangkan pergi pendek.
Berdasarkan tiga indikator ini, aturan khusus dari strategi perdagangan dapat ditetapkan:
Long entry: ketika close berada di atas VWAP bulanan, histogram MACD pecah, dan osilator SMO berada di atas 0. Entry pendek: ketika close berada di bawah VWAP bulanan, histogram MACD rusak, dan osilator SMO berada di bawah 0.
Ambil keuntungan dan stop loss ditetapkan berdasarkan persentase input.
Strategi ini menggabungkan beberapa kerangka waktu dan indikator untuk secara efektif menentukan arah dan kekuatan tren, dengan keuntungan berikut:
Meskipun strategi ini dirancang secara wajar, masih ada beberapa risiko yang perlu dicatat:
Untuk mengendalikan risiko di atas, parameter VWAP dan MACD harus dioptimalkan secara wajar tanpa rentang yang terlalu luas. Juga, persentase profit dan stop loss tidak harus terlalu tinggi dan kerugian tunggal harus dikendalikan sekitar 3%.
Strategi ini juga dapat dioptimalkan dalam aspek berikut:
Strategi VWAP MACD SMO emas menggabungkan beberapa indikator untuk menentukan tren dan kondisi overbought / oversold, yang dapat secara efektif menangkap peluang jangka menengah hingga panjang di emas. Meskipun ada beberapa risiko, mereka dapat dikendalikan melalui optimasi parameter dan manajemen risiko. Strategi ini memiliki skalabilitas yang sangat kuat dan dapat dioptimalkan secara modular berdasarkan kebutuhan aktual. Ini adalah sistem perdagangan yang layak untuk pelacakan jangka panjang.
/*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')