Strategi perdagangan VWAP MACD SMO Emas adalah strategi lengkap yang direka untuk pasaran emas menggunakan carta jangka masa 12 jam. Ia menggabungkan VWAP bulanan, osilator SMO dan histogram MACD untuk mengenal pasti peluang perdagangan di pasaran emas.
Strategi ini menggunakan VWAP bulanan sebagai penunjuk trend utama. VWAP mewakili harga urus niaga purata, dan bulanan bermaksud jangka masa untuk mengira VWAP adalah bulan lalu. Jika penutupan semasa di atas VWAP bulanan, ia menunjukkan trend menaik semasa; jika penutupan di bawah VWAP bulanan, ia bermakna trend menurun.
Osilator SMO digunakan untuk menentukan keadaan overbought dan oversold semasa. Ia terdiri daripada komponen kitaran panjang dan komponen kitaran pendek. Apabila osilator di atas 0, ia menunjukkan keadaan overbought, dan apabila di bawah 0, ia mewakili oversold.
Histogram MACD boleh menentukan arah momentum. Apabila lajur pecah, ia mewakili momentum menguat untuk pergi panjang; apabila lajur pecah, ia bermakna momentum melemah untuk mempertimbangkan pergi pendek.
Menurut tiga penunjuk ini, peraturan khusus strategi perdagangan boleh ditetapkan:
Masukan panjang: apabila penutupan di atas VWAP bulanan, histogram MACD pecah, dan osilator SMO di atas 0. Pendaftaran pendek: apabila penutupan di bawah VWAP bulanan, histogram MACD terpecah, dan osilator SMO di bawah 0.
Ambil keuntungan dan hentikan kerugian ditetapkan berdasarkan peratusan input.
Strategi ini menggabungkan pelbagai jangka masa dan penunjuk untuk menentukan arah trend dan kekuatan dengan berkesan, dengan kelebihan berikut:
Walaupun strategi ini direka dengan munasabah, masih ada beberapa risiko yang perlu diperhatikan:
Untuk mengawal risiko di atas, parameter VWAP dan MACD harus dioptimumkan dengan munasabah tanpa julat yang terlalu luas.
Strategi ini juga boleh dioptimumkan dalam aspek berikut:
Strategi VWAP MACD SMO emas menggabungkan pelbagai penunjuk untuk menentukan trend dan keadaan overbought / oversold, yang dapat menangkap peluang jangka menengah hingga panjang dalam emas dengan berkesan. Walaupun terdapat beberapa risiko, mereka boleh dikawal melalui pengoptimuman parameter dan pengurusan risiko. Strategi ini mempunyai skalabiliti yang sangat kuat dan boleh dioptimumkan secara modular berdasarkan keperluan sebenar. Ini adalah sistem perdagangan yang layak untuk penjejakan 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')