
금 VWAP MACD SMO 거래 전략은 12 시간 시간 주기에서 설계된 완전한 거래 전략이다. 그것은 금 시장의 거래 기회를 식별하기 위해 VWAP 달선, SMO 진동기와 MACD 지표를 결합한다.
이 전략은 VWAP 달선을 주요 트렌드 지표로 사용합니다. VWAP는 가격의 평균 거래 가격을 나타냅니다. 달선은 VWAP를 계산하는 시간 범위가 지난 한 달이라는 것을 의미합니다. 현재 종결 가격이 VWAP 달선보다 높다면 현재는 상승 추세 단계에 있음을 나타냅니다.
SMO 진동기는 현재 과매매 상황을 판단하는 데 사용됩니다. 그것은 긴 주기 구성 요소와 짧은 주기 구성 요소로 구성됩니다. 진동기가 0보다 높으면 과매매 상태에 있음을 나타냅니다. 0보다 낮으면 과매매를 나타냅니다.
MACD 직사각형은 동력 방향을 판단할 수 있다. 기둥이 위쪽으로 돌파될 때, 동력이 강하고, 더 많은 일을 할 수 있다. 기둥이 아래로 돌파될 때, 동력이 약해지고, 공백을 고려해야 한다.
이 세 가지 지표에 따라 거래 전략에 대한 구체적인 규칙을 만들 수 있습니다.
다단계 진입: 마감 가격이 VWAP 달선, MACD 직각 기둥 상단 돌파구, 그리고 SMO 진동기가 0 이상일 때 더 많은 것을 한다 공백 진입: 마감 가격이 VWAP 달선 아래로, MACD 수직 기둥이 아래로 돌파되고, SMO 진동기가 0 아래로 공백
정지 손실은 입력된 비율에 따라 설정된다.
이 전략은 여러 시간 범위와 지표를 결합하여 트렌드 방향과 강도를 효과적으로 판단할 수 있으며 다음과 같은 장점이 있습니다.
이 전략은 합리적으로 설계되었지만, 몇 가지 위험 요소가 있습니다.
위와 같은 위험을 제어하기 위해, VWAP와 MACD의 파라미터를 합리적으로 최적화해야 하며, 너무 커서는 안 된다. 또한, 스톱 스톱 손실 비율이 너무 커서는 안 되며, 단편 손실을 3% 정도 조절하는 것이 좋다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
금 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')