高度な定量取引戦略: 多次元指標を備えたスーパートレンド ATR 動的追跡システム

supertrend ATR MACD ADX RSI VOL DMI
作成日: 2025-02-21 13:34:24 最終変更日: 2025-02-21 13:34:24
コピー: 2 クリック数: 431
2
フォロー
319
フォロワー

高度な定量取引戦略: 多次元指標を備えたスーパートレンド ATR 動的追跡システム 高度な定量取引戦略: 多次元指標を備えたスーパートレンド ATR 動的追跡システム

概要

この戦略は,複数の技術指標に基づいた定量取引システムであり,その核心はスーパートレンド (SuperTrend) 指標によって駆動され,ATRダイナミックストップメカニズムと組み合わせて,MACD,ADX,RSIなどの指標を通じて多次元的なトレンド確認とリスク制御を行います.この戦略は,高確率の取引機会を識別するために6つのフィルタリングメカニズムを採用し,市場リスクを早期に警告するために3つの逆行検出を導入します.

戦略原則

戦略は,SuperTrend指標を中心に,ファクターとATRパラメータで動的にトレンドの方向を計算する.入場信号は,以下の条件を同時に満たす必要があります.

  1. 超トレンドの方向指示
  2. MACD柱状グラフの位置確認
  3. ADXトレンドの強さが確認された
  4. K線形確認
  5. 完成量拡大検証
  6. 検知から3回逸脱

システムはATR動的ストップでリスクを制御し,トレンド反転信号と組み合わせたポジション管理を行う.

戦略的優位性

  1. 多次元指標融合により信号の信頼性が向上
  2. ATRのダイナミックストップ・メカニズムは,市場の変動に適応する
  3. 三重脱離検知システムにより,危険の予警機能が提供されます.
  4. 取引量検証は取引活性を確保する
  5. ガソリン料金のフィルタリングにより取引コストが下がる
  6. 完全なビジュアライゼーションシステムにより,戦略的な監視が可能です.

戦略リスク

  1. 複数のフィルタリングにより,一部の取引機会が失われる可能性があります.
  2. パラメータ最適化には過剰適合のリスクがある
  3. 市場高波動期は頻繁にストップを誘発する可能性がある
  4. ガスの価格変動が戦略的利益に影響する
  5. 横盤市場における混乱の兆候となる指標の組み合わせ

戦略最適化の方向性

  1. 市場周期認識モジュールを導入し,パラメータ自律化を実現
  2. 機械学習ベースのシグナル重量システム開発
  3. ガス料金の予測モデルを最適化して取引のタイミングを把握する
  4. 取引コストの計算モジュール
  5. 波動率に基づくポジション管理システム開発

要約する

この戦略は,多次元指標融合と厳格なリスク制御により,堅牢な量化取引システムを構築している.システムのモジュール化された設計は,後続的に最適化および拡張を容易にするが,実用的なアプリケーションでは,パラメータ調整と市場適応性に注意する必要がある.三重のバックアワー警告とガス料金フィルターなどの革新的な設計は,戦略の実用性をさらに高めている.

ストラテジーソースコード
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("ETH 超级趋势增强策略-精简版", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// —————————— 参数配置区 ——————————
// 超级趋势参数
atrPeriod = input.int(8, "ATR周期(8-10)", minval=8, maxval=10)
factor = input.float(3.5, "乘数(3.5-4)", minval=3.5, maxval=4, step=0.1)

// MACD参数
fastLength = input.int(10, "MACD快线周期")
slowLength = input.int(21, "MACD慢线周期")
signalLength = input.int(7, "信号线周期")

// ADX参数
adxLength = input.int(18, "ADX周期")
adxThreshold = input.int(28, "ADX趋势阈值")

// 成交量验证
volFilterRatio = input.float(1.8, "成交量放大倍数", step=0.1)

// ATR止损
atrStopMulti = input.float(2.2, "ATR止损乘数", step=0.1)

// —————————— 核心指标计算 ——————————
// 1. 超级趋势(修复索引使用)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
plot(supertrend, color=direction < 0 ? color.new(color.green, 0) : color.new(color.red, 0), linewidth=2)

// 2. MACD指标
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
macdCol = histLine > histLine[1] ? color.green : color.red

// 3. ADX趋势强度
[DIMinus, DIPlus, ADX] = ta.dmi(adxLength, adxLength)

// 4. 成交量验证
volMA = ta.sma(volume, 20)
volValid = volume > volMA * volFilterRatio

// 5. ATR动态止损
atrVal = ta.atr(14)
var float stopPrice = na

// —————————— 三重背离检测 ——————————
// RSI背离检测
rsiVal = ta.rsi(close, 14)
priceHigh = ta.highest(high, 5)
rsiHigh = ta.highest(rsiVal, 5)
divergenceRSI = high >= priceHigh[1] and rsiVal < rsiHigh[1]

// MACD柱状图背离
macdHigh = ta.highest(histLine, 5)
divergenceMACD = high >= priceHigh[1] and histLine < macdHigh[1]

// 成交量背离
volHigh = ta.highest(volume, 5)
divergenceVol = high >= priceHigh[1] and volume < volHigh[1]

tripleDivergence = divergenceRSI and divergenceMACD and divergenceVol

// —————————— 信号生成逻辑 ——————————
// 多头条件(6层过滤)
longCondition = 
  direction < 0 and            // 超级趋势看涨
  histLine > 0 and             // MACD柱在零轴上方
  ADX > adxThreshold and       // 趋势强度达标
  close > open and             // 阳线确认
  volValid and                 // 成交量验证
  not tripleDivergence         // 无三重顶背离

// 空头条件(精简条件)
shortCondition = 
  direction > 0 and            // 超级趋势看跌
  histLine < 0 and             // MACD柱在零轴下方
  ADX > adxThreshold and       // 趋势强度达标
  close < open and             // 阴线确认
  volValid and                 // 成交量验证
  tripleDivergence             // 出现三重顶背离

// —————————— 交易执行模块 ——————————
if (longCondition)
    strategy.entry("Long", strategy.long)
    stopPrice := close - atrVal * atrStopMulti

if (shortCondition)
    strategy.entry("Short", strategy.short)
    stopPrice := close + atrVal * atrStopMulti

// 动态止损触发
strategy.exit("Exit Long", "Long", stop=stopPrice)
strategy.exit("Exit Short", "Short", stop=stopPrice)

// 趋势反转离场
if (direction > 0 and strategy.position_size > 0)
    strategy.close("Long")
    
if (direction < 0 and strategy.position_size < 0)
    strategy.close("Short")

// —————————— 可视化提示 ——————————
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="买入信号")
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="卖出信号")
plot(strategy.position_size != 0 ? stopPrice : na, color=color.orange, style=plot.style_linebr, linewidth=2, title="动态止损线")

// —————————— 预警系统 ——————————
alertcondition(tripleDivergence, title="三重顶背离预警", message="ETH出现三重顶背离!")

longCondition := longCondition