この記事では,単純な移動平均値に基づくトレンドフォロー戦略を詳細に分析します. 戦略は,典型的なトレンドフォロー戦略に属する,異なるタイムフレームの移動平均値の組み合わせを使用して取引信号を生成します.
この戦略は,21日,50日,100日および200日間の単純な移動平均を同時に使用する.価格がこれらの移動平均を突破したとき,購入および販売信号を生成する.さらに,この戦略は,価格が20日または55日間の最高/最低価格を突破したときの取引信号を補完するためにドンチアンチャネルを使用する.この戦略は,複数のタイムフレームを通じてトレンド利益をロックする,明らかなトレンドを有する市場に適している.
基本原理は,トレンド方向を決定するために複数の移動平均時間枠を使用することです.具体的には,戦略は21日,50日,100日,200日という異なる時間跨度を持つ4つの単純な移動平均を使用しています.これらの移動平均の時間跨度は,短期から長期に徐々に拡大し,異なるレベルのトレンドを特定するために使用されます.
短期移動平均値が長期平均値を超えると,買い信号が生成される.これは市場のトレンドが逆転して上向きに進んだことを示唆する.短期移動平均値が長期平均値を下回ると,売り信号が生成される.これは市場のトレンドが逆転して下向きに進んだことを示唆する.
さらに,この戦略は,ドンチアンチャネルを使用して取引信号を補完します.つまり,価格が20日または55日間の最高/最低価格を突破すると,購入/販売信号も起動してトレンド利益をロックします.
概要すると,戦略は,典型的なトレンドフォロー戦略に属するトレンド方向を決定するために,複数のタイムフレームを通じて移動平均理論とドンキアンチャネルを組み合わせます.
リスクに対する解決策
この記事では,マルチタイムフレーム移動平均値とドンチアンチャネルに基づく単純なトレンドフォロー戦略を詳細に分析しています. 戦略は,異なる長さの移動平均値を使用してトレンド方向を決定し,実装が簡単でシンプルで明確な原則を持っています. 同時に,利点,潜在的なリスク,将来の最適化アイデアも議論されています. 深い理解と適切な最適化により,この戦略は定量的な取引のための有用なツールになることができると信じています.
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Trend Following", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10) maxIdLossPcnt = input(1, "Max Intraday Loss(%)", type=float) entryLong = false entryShort = false // strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity) if (close > highest(high[1], 20)) strategy.entry("Long fast", strategy.long) entryLong = true if (close < lowest(low[1], 20)) strategy.entry("Short fast", strategy.short) entryShort = true if (close > highest(high[1], 55)) strategy.entry("Long slow", strategy.long) entryLong = true if (close < lowest(low[1], 55)) strategy.entry("Short slow", strategy.short) entryShort = true len1 = input(21, minval=1, title="21 SMA") src1 = input(close, title="21 SMA") out1 = sma(src1, len1) plot(out1, title="21 SMA", color= white) len2 = input(50, minval=1, title="50 SMA") src2 = input(close, title="50 SMA") out2 = sma(src2, len2) plot(out2, title="50 SMA", color= blue) len3 = input(100, minval=1, title="100 SMA") src3 = input(close, title="100 SMA") out3 = sma(src3, len3) plot(out3, title="100 SMA", color= orange) len4 = input(200, minval=1, title="200 SMA") src4 = input(close, title="200 SMA") out4 = sma(src4, len4) plot(out4, title="200 SMA", color= green)