ナダラヤ・ワトソン ストリップ チャート 複数確認ダイナミック ストップ ロス戦略

ADX DI RSI MAE
作成日: 2024-05-24 17:58:47 最終変更日: 2024-05-24 17:58:47
コピー: 0 クリック数: 1065
1
フォロー
1617
フォロワー

ナダラヤ・ワトソン ストリップ チャート 複数確認ダイナミック ストップ ロス戦略

概要

この戦略は,ナダラヤ-ワトソン帯状図を用いて価格を平滑処理し,平滑後の価格に基づいて上下を計算する.その後,ADXとDIの指標を使用してトレンドの強さと方向を判断し,RSIの指標はトレンドの動力を確認し,価格の上下を突破して潜在的な突破点を識別する.最後に,トレンド,突破点,動力などの複数の信号を組み合わせて取引を実行し,ダイナミックストップを使用してリスクを管理する.

戦略原則

  1. ナダラヤ-ワトソン帯状図を用いて価格を平滑に処理し,上下を計算する.
  2. ADXとDIの指標を使ってトレンドの強さと方向を判断する.ADXが値より大きく,+DIが-DIより大きいときは上昇傾向を表し,逆は下降傾向である.
  3. 価格が帯状図の上線または下線を突破したかどうかを判断し,潜在的上位突破と下位突破を表します.
  4. RSI指標を用いてトレンド動力を確認する. RSIが70以上になると上昇動力を表示し,30未満になると下降動力を表示する.
  5. トレンド,ブレイクポイント,動力などの複数のシグナルを組み合わせて取引を行う.
    • 強い上昇傾向があり,上昇突破や上昇動力が存在する時に多額のポジションを開く.
    • 強い下落傾向があり,下方突破と下落の動力があるときに空き倉庫を開く.
  6. リスク管理にはダイナミックストップが用いられ,ストップ価格は最高/最低価格とクローズアップ価格に基づいて計算される.
  7. トレンドライン,ブレークポイント,動力のシグナルをグラフに表示することで,戦略シグナルを直視的に表示します.

戦略的優位性

  1. ナダラヤ-ワトソン帯状図は,価格データを効率的に平滑化し,騒音の干渉を減らすことができます.
  2. 複数のシグナル確認メカニズムにより,信号の信頼性が向上し,トレンド,ブレークポイント,動能シグナルが互いを補完し,取引機会を共同で検証します.
  3. ダイナミック・ストップ・マネジメントは,市場の波動に適応し,リスクを低減する.ストップ・プライスは,最高価格/最低価格と閉店価格に基づいて計算され,市場の調整に従って調整することができる.
  4. グラフ上では,トレンドライン,ブレイクポイント,動能信号を直視的にマークし,ユーザが戦略信号を観察し読み解くことを便利にします.

戦略リスク

  1. 波動的な市場やトレンドの転換期において,頻繁に突破するシグナルは,過度な取引と損失を引き起こす可能性があります.
  2. 動的ストップは,トレンドが逆転したときに,タイムリーにストップできない可能性があり,引き下げが増加する.
  3. ナダラヤ・ワトソン帯状図の帯域,ADXの値などの戦略パラメータは,異なる市場と基準に応じて最適化され,パラメータの設定が不適切である場合,戦略の効果に影響を与える可能性があります.

戦略最適化の方向性

  1. 傾向判断の正確性と安定性を向上させるため,MACD,均線システムなど,より効果的な傾向判断指標を導入する.
  2. ATR,SARなどの変動率に関連する指標を考慮するダイナミック・ストップ計算方法を最適化することで,ストップをより柔軟に有効にすることができる.
  3. トレンド型,振動型などの異なる市場特性に合わせて,異なるパラメータの組み合わせを設定し,戦略の適応性を向上させる.
  4. ポジション管理モジュールに参加し,市場動向,波動率などの要因に応じてポジションを動的に調整し,リスクを制御します.

要約する

この戦略は,ナダラヤ・ワトソン帯状図を平らげ,ADX,DIなどのトレンド指標とRSIの動能指標,価格突破点などの複数の信号を組み合わせて,より完善した取引システムを構築している.ダイナミックストップ管理は,市場の変化に一定程度に適応し,リスクを制御することができます.しかし,実際のアプリケーションでは,トレンド判断,ダイナミックストップおよびパラメータ設定などの最適化に注意する必要があります.戦略の安定性と収益性を高めるために.

ストラテジーソースコード
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-18 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Nadaraya-Watson Envelope with Multi-Confirmation and Dynamic Stop-Loss", overlay=true)

// Input parameters
h = input.float(7.2, "Bandwidth", minval=0)
mult = input.float(2.1, minval=0)
src = input(close, "Source")

// ADX and DI Input Parameters
adxLength = input.int(14, "ADX Length")
adxThreshold = input.float(25, "ADX Threshold")
adxSmoothing = input.int(14, "ADX Smoothing")

// Calculate ADX and DI
[dmiPlus, dmiMinus, adx] = ta.dmi(adxLength, adxSmoothing)
strongTrendUp = dmiPlus > dmiMinus and adx > adxThreshold
strongTrendDown = dmiMinus > dmiPlus and adx > adxThreshold

// Nadaraya-Watson Envelope Calculation
gauss(x, h) =>
    math.exp(-(math.pow(x, 2) / (h * h * 2)))

coefs = array.new_float(0)
den = 0.0

for i = 0 to 100
    w = gauss(i, h)
    array.push(coefs, w)

den := array.sum(coefs)

out = 0.0
for i = 0 to 100
    out += src[i] * array.get(coefs, i)
out /= den
mae = ta.sma(math.abs(src - out), 100) * mult

upper = ta.sma(out + mae, 10)
lower = ta.sma(out - mae, 10)

// Confirmations
breakoutUp = ta.crossover(src, upper)
breakoutDown = ta.crossunder(src, lower)

// Original RSI period and thresholds
rsiPeriod = input.int(14, "RSI Period")
rsi = ta.rsi(src, rsiPeriod)
momentumUp = rsi > 70 and adx > adxThreshold
momentumDown = rsi < 30 and adx > adxThreshold

// // Plot ADX-based Trend Confirmation Lines
// if (strongTrendUp)
//     line.new(bar_index, low, bar_index + 1, low, color=color.new(color.blue, 50), width=2, style=line.style_dashed)

// if (strongTrendDown)
//     line.new(bar_index, high, bar_index + 1, high, color=color.new(color.red, 50), width=2, style=line.style_dashed)

// Plot Breakout Confirmation Dots
plotshape(series=breakoutUp, style=shape.circle, location=location.abovebar, color=color.blue, size=size.tiny, title="Breakout Up")
plotshape(series=breakoutDown, style=shape.circle, location=location.belowbar, color=color.orange, size=size.tiny, title="Breakout Down")

// Plot Momentum Confirmation Arrows
plotshape(series=momentumUp, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Momentum Up")
plotshape(series=momentumDown, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Momentum Down")

// Strategy Entry and Exit
var float stopLossLevel = na
var float highestPrice = na

potentialBuy = strongTrendUp and breakoutUp
potentialSell = strongTrendDown and breakoutDown
momentumConfirmUp = potentialBuy and momentumUp
momentumConfirmDown = potentialSell and momentumDown

if (momentumConfirmUp)
    strategy.entry("Buy", strategy.long)
    stopLossLevel := close * 0.90
    highestPrice := close

if (momentumConfirmDown)
    strategy.entry("Sell", strategy.short)
    stopLossLevel := close * 1.10
    highestPrice := close

if (strategy.position_size > 0)
    highestPrice := math.max(highestPrice, close)
    stopLossLevel := math.max(highestPrice * 0.85, close * 0.90)

if (strategy.position_size < 0)
    highestPrice := math.min(highestPrice, close)
    stopLossLevel := math.min(highestPrice * 1.15, close * 1.10)

// Close position if stop loss is hit
if (strategy.position_size > 0 and close < stopLossLevel)
    strategy.close("Buy")

if (strategy.position_size < 0 and close > stopLossLevel)
    strategy.close("Sell")