この戦略は"スーパートレンドと移動平均クロスオーバー戦略"と呼ばれる.スーパートレンド指標と移動平均を組み合わせ,スーパートレンドが上昇傾向を示し,10日間のEMAが20日間のSMAよりも高くなったとき,超トレンドが下落傾向を示し,10日間のEMAが20日間のSMA以下になったとき,ショートに行く.これは典型的なトレンドフォロー戦略である.
この戦略は,スーパートレンド指標を使用して市場のトレンド方向を決定する.スーパートレンドは,平均の真の範囲とファクタに基づいて計算される.価格がスーパートレンドラインの上にあるとき,それは上昇傾向である.価格がスーパートレンドライン下にあるとき,それは下落傾向である.この戦略では,ファクタは3.0と設定され,ATR長さは10である.
さらに,戦略は10日間のEMAと20日間のSMAを使用して移動平均を構成する. EMA (指数関数移動平均) は最近の価格により高い重みを割り当て,SMA (単純な移動平均) はすべてのデータを等重視する.短期間のEMAが長期間のSMAよりも高くなったとき,それは購入信号とみなされる.
簡単に言うと,取引信号生成の論理は,
ロングエントリー:スーパートレンド > 0 (アップトレンド) と10日間EMA >20日間SMA ショートエントリー:スーパートレンド < 0 (ダウントレンド) と10日間のEMA < 20日間のSMA
移動平均のクロスオーバーを使って 追加的な確認を行い このトレンドをフォローする戦略を構築します
この戦略の最大の利点は,スーパートレンドと移動平均を組み合わせることで,信頼性と感度の両方を向上させることです.主な利点は以下の通りです.
この戦略にはいくつかのリスクがあります:
Supertrend の異なる ATR と Factor の値をテストし,MA の異なる長さの値をテストできます.また,バックテスト期間は異なる市場環境をカバーする必要があります.ライブ取引では取引コストを追加する必要があります.
最適化する余地があります.
これは性能と安定性をさらに向上させることができる.また,ストップ損失設定はリスク管理に重要です.
この戦略は,トレンド指向とEMA+SMAクロスオーバーを組み合わせて,典型的なトレンドフォローシステムであるシグナルを生成する.これは高い信頼性と最適化のための柔軟性があり,ライブトレーディングで検証する価値があります.しかし,リスクを制御し,過剰な最適化を防ぐことも必要です.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend and Moving Averages Strategy", overlay=true) // Supertrend parameters atrLength = input.int(10, title="ATR Length", minval=1) factor = input.float(3.0, title="Factor", minval=0.01, step=0.01) [supertrend, direction] = ta.supertrend(factor, atrLength) // Moving Averages parameters length_ema = input(10, title="Length of EMA") length_sma = input(20, title="Length of SMA") // Calculate EMAs and SMAs ema_10 = ta.ema(close, length_ema) sma_20 = ta.sma(close, length_sma) // Strategy logic longCondition = ema_10 > sma_20 and direction > 0 shortCondition = ema_10 < sma_20 and direction < 0 strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Plot Supertrend plot(direction > 0 ? supertrend : na, color=color.green, style=plot.style_line, linewidth=2, title="Up Trend") plot(direction < 0 ? supertrend : na, color=color.red, style=plot.style_line, linewidth=2, title="Down Trend") // Plot Moving Averages plot(ema_10, color=color.blue, title="10 EMA") plot(sma_20, color=color.red, title="20 SMA") // Alerts for Supertrend alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend ') alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend') alertcondition(direction[1] != direction, title='Trend Change', message='The Supertrend value switched from Uptrend to Downtrend or vice versa')