Торговая стратегия Gold VWAP MACD SMO - это полная стратегия, разработанная для рынка золота с использованием 12-часового графика.
Стратегия использует VWAP ежемесячно в качестве основного индикатора тренда. VWAP представляет собой среднюю цену транзакции, а ежемесячно означает, что временной диапазон для расчета VWAP составляет последний месяц. Если текущее закрытие выше VWAP ежемесячно, это указывает на текущий восходящий тренд; если закрытие ниже VWAP ежемесячно, это означает, что тенденция снижается.
Осиллятор SMO используется для определения текущей ситуации с перекупленностью и перепроданностью. Он состоит из компонента длинного цикла и компонента короткого цикла. Когда осциллятор выше 0, он указывает на перекупленные условия, а когда ниже 0, он представляет собой перепроданность.
Гистограмма MACD может определить направление импульса. Когда колонка распадается, это означает, что импульс укрепляется для длинного хода; когда колонка распадается, это означает, что импульс ослабевает, чтобы рассматривать короткий.
В соответствии с этими тремя показателями можно установить конкретные правила торговой стратегии:
Длинный вход: когда закрытие превышает VWAP ежемесячно, гистограмма MACD распадается, а осциллятор SMO превышает 0. Короткий вход: когда закрытие ниже VWAP ежемесячно, гистограмма MACD распадается, а осциллятор SMO ниже 0.
Приобретение прибыли и остановка убытков устанавливаются на основе процентов ввода.
Стратегия сочетает в себе несколько временных рамок и индикаторов для эффективного определения направления и силы тренда, с следующими преимуществами:
Несмотря на то, что стратегия разработана разумно, все еще существуют некоторые риски, которые следует отметить:
Чтобы контролировать вышеуказанные риски, параметры VWAP и MACD должны быть оптимизированы разумно без слишком широких диапазонов.
Стратегия также может быть оптимизирована в следующих аспектах:
Стратегия Gold VWAP MACD SMO сочетает в себе несколько индикаторов для определения тренда и условий перекупки/перепродажи, которые могут эффективно поймать средне- и долгосрочные возможности в золоте.
/*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')