ゴールドVWAP MACD SMO取引戦略は,12時間タイムフレームグラフを使用して,金市場のために設計された完全な戦略である.これは,VWAP月間,SMOオシレーターおよびMACDヒストグラムを組み合わせ,金市場での取引機会を特定する.
この戦略は,主要トレンド指標として月間VWAPを使用している.VWAPは平均取引価格を表し,月間とはVWAPを計算するための時間範囲が過去1ヶ月であることを意味します.現在の閉鎖が月間VWAPよりも高くなった場合,現在の上昇傾向を示します.閉じるが月間VWAP以下であれば,傾向が低下していることを意味します.
SMOオシレータは,現在の過剰購入および過剰販売状況を決定するために使用されます.それは長サイクル成分と短サイクル成分で構成されています.オシレータが0を超えると,過剰購入状態を示し,0を下回ると,過剰販売を表します.
MACDヒストグラムはモメントの方向性を決定することができます.列が割れるとき,それはモメントがロングに行くために強化されていることを表しています.列が割れるとき,それはショートに行くことを考慮するためにモメントが弱まっていることを意味します.
この3つの指標に基づいて,取引戦略の具体的な規則を確立することができます.
ロングエントリー: 閉じる値がVWAP月額以上になると,MACDヒストグラムが分解し,SMOオシレーターは0以上になります. ショートエントリー: 閉じる値がVWAP月額を下回ると,MACDヒストグラムが崩れ,SMOオシレーターは0を下回ります.
利益とストップロスはインプットパーセントに基づいて設定されます.
この戦略は,複数の時間枠と指標を組み合わせて,トレンドの方向性と強さを効果的に決定し,以下の利点があります.
戦略は合理的に設計されていますが,注意すべきリスクはまだあります.
上記のリスクを制御するために,VWAPとMACDパラメータは,幅が広い範囲をなくして合理的に最適化されるべきである.また,取利益とストップ損失の割合は,あまりにも高くなく,シングル損失は3%の範囲で制御されるべきである.
戦略は,次の側面でも最適化できます.
ゴールドVWAPMACDSMO戦略は,トレンドとオーバーバイト/オーバーセール条件を決定するための複数の指標を組み合わせ,中長期の機会を効果的に把握することができる.いくつかのリスクがあるにもかかわらず,パラメータ最適化とリスク管理を通じて制御することができます.この戦略は非常に強いスケーラビリティを持ち,実際のニーズに基づいてモジュール的に最適化することができます.これは長期追跡に値する取引システムです.
/*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')