二重スーパートレンドとMACDの組み合わせの取引戦略は,2つのトレンド追跡指標 ((SuperTrend 1とSuperTrend 2) と1つの動力振動指標 ((MACD)) を組み合わせて使用し,主観的な判断を必要としない一貫したシステムの取引方法を提供することを目的としています.
この戦略の重要な利点は:
二重スーパートレンド検証:二つのスーパートレンド指標を使用し,ATR周期と因子によって異なる傾向方向を確認できる.二重検証機構は誤信号を減らす.
動量確認:MACD柱状線が動量フィルターとして,入場と出場を確認し,検証階層を追加する.
客観的な入場と出場:戦略は,トレンドの方向と動力の組み合わせに基づいて買い売りシグナルを生成し,主観的な解釈の余地はありません.
自動取引管理: 戦略に組み込まれた手数料,滑点および初期資金の設定,自動取引の実行.
カスタマイズ性:すべてのパラメータは,異なるトレーダーのニーズと変化する市場環境に対応して簡単にカスタマイズできます.
この戦略は,明確なルールに基づいて動作し,双方のスーパートレンドが確認したトレンドの方向とMACD柱状線が示した動力に焦点を当てています.
多頭入場: 2つのスーパートレンド指標が多頭であり,MACD柱状線が0より大きい.
空頭入場: 2つのスーパートレンド指標空頭とMACD柱状線が0より小さい.
平多ポジション:任意のスーパートレンドの空振り頭またはMACD柱状線の転負.
平空ポジション:任意のスーパートレンドの多頭回転またはMACD柱状線の回転
戦略は,固定手数料比率と滑点パラメータを使用します.
自動リスク管理機能が内蔵され,過度の開口を防ぐ.
この戦略は,多くの空の双方向取引を許可する.ユーザーは,自分の市場の見解に基づいて取引方向を選択することができる.
トレンドが顕著な時間周期に最適です.
ユーザは,必要に応じてSuperTrendのATR周期,因子,MACDパラメータを調整することができます.
スーパートレンド1 ATR周期:10
スーパートレンド1因子:3.0
スーパートレンド2 ATR周期:20
スーパートレンド2因子:5.0
MACDの周期:12
MACD ローライン周期:26
MACDの平滑周期:9
0.1%のコミッション
スライドポイント:1点
取引方向:双方向
デフォルトのパラメータは,バランスの取れた取引方法を提供しますが,個人の好みに応じてカスタマイズすることができます.
この戦略の利点は以下の通りです.
2つのスーパートレンド指標を使用してトレンドを検証することで,単一の指標による誤信号を大幅に削減できます. 二重確認メカニズムは安定性を高めます.
MACD柱状線は,補助的な判断基準として,一部の望ましくない取引シグナルをフィルターして,エントリー精度を向上させる.
2つのトレンド指標の組み合わせは,トレンドが転換するときに迅速に停止し,逆転を制御するのに役立ちます.
明確な入場・出場ルール,内蔵の取引管理設定,主観的な判断の必要がない,人為誤りを減らす.
指標パラメータは調整可能で,異なる品種と取引の好みに合わせて最適化され,幅広い範囲で使用されます.
この戦略には以下のリスクもあります.
双方向指標の組み合わせ,多空変換は比較的困難で,頻繁に方向転換する市場には適さない.
強いトレンドの状況では,ストップ・プライスが後退し,拡大のリスクを撤回する可能性があります.
ブラック・スウェン事件の迅速な対応ができないため,撤退の危険性が高まっている.
改善する方向:
各種に適応した指標パラメータを最適化する.
移動停止などの止損メカニズムを追加し,撤回をさらに制御する.
他の指標と組み合わせて,突発的な事件を認識し,撤退を減らす.
総括すると,双スーパートレンドとMACDの組み合わせ戦略は,トレンド追跡と動力の分析の優位性を融合し,規則が明確で,高度な自動化があり,ノイズ取引シグナルを効果的にフィルターすることができ,非常に強力な実用性があります. しかし,撤回制御とパラメータ最適化の問題にも注意してください. 全体として,この戦略は,システムトレンド取引の優れた代表者の1つです.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 30m
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/
// © PresentTrading
//@version=5
// Define the strategy settings
// strategy("Dual-Supertrend with MACD - Strategy [presentTrading]", overlay=true, precision=3, default_qty_type=strategy.cash,
// commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1,
// currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)
// Trading Direction Dropdown
tradeDirection = input.string("both", "Trading Direction", options=["long", "short", "both"])
// MACD Inputs
fast_length = input(12, "Fast Length")
slow_length = input(26, "Slow Length")
signal_length = input(9, "Signal Smoothing")
sma_source = input.string("EMA", "Oscillator MA Type", options=["SMA", "EMA"])
sma_signal = input.string("EMA", "Signal Line MA Type", options=["SMA", "EMA"])
// MACD Calculation
fast_ma = sma_source == "SMA" ? ta.sma(close, fast_length) : ta.ema(close, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(close, slow_length) : ta.ema(close, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
// Input Parameters for Supertrend 1
atrPeriod1 = input(10, "ATR Length for Supertrend 1")
factor1 = input.float(3.0, "Factor for Supertrend 1", step=0.01)
// Supertrend Calculation for 1
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)
// Input Parameters for Supertrend 2
atrPeriod2 = input(20, "ATR Length for Supertrend 2")
factor2 = input.float(5.0, "Factor for Supertrend 2", step=0.01)
// Supertrend Calculation for 2
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)
// Combined Conditions
isBullish = direction1 < 0 and direction2 < 0 and hist > 0
isBearish = direction1 > 0 and direction2 > 0 and hist < 0
exitLong = direction1 > 0 or direction2 > 0 or hist < 0
exitShort = direction1 < 0 or direction2 < 0 or hist > 0
// Strategy Entry and Exit based on Trading Direction
if (tradeDirection == "both" or tradeDirection == "long")
strategy.entry("Buy", strategy.long, when=isBullish)
strategy.close("Buy", when=exitLong)
if (tradeDirection == "both" or tradeDirection == "short")
strategy.entry("Sell", strategy.short, when=isBearish)
strategy.close("Sell", when=exitShort)
bodyMiddle1 = plot((open + close) / 2, display=display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend1 = plot(direction1 < 0? na : supertrend1, "Down Trend", color = color.red, style=plot.style_linebr)
fill(bodyMiddle1, upTrend1, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle1, downTrend1, color.new(color.red, 90), fillgaps=false)
bodyMiddle2 = plot((open + close) / 2, display=display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend2 = plot(direction2 < 0? na : supertrend2, "Down Trend", color = color.red, style=plot.style_linebr)
fill(bodyMiddle2, upTrend2, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle2, downTrend2, color.new(color.red, 90), fillgaps=false)