ナダラヤ・ワトソンカーネル推定と移動平均クロスオーバーに基づくインテリジェントなトレンド追跡戦略システム

NW MA SMA EMA GAUSSIAN
作成日: 2025-02-20 11:58:41 最終変更日: 2025-02-20 14:54:41
コピー: 0 クリック数: 337
2
フォロー
319
フォロワー

ナダラヤ・ワトソンカーネル推定と移動平均クロスオーバーに基づくインテリジェントなトレンド追跡戦略システム ナダラヤ・ワトソンカーネル推定と移動平均クロスオーバーに基づくインテリジェントなトレンド追跡戦略システム

概要

この戦略は,Nadaraya-Watsonの核推定方法と移動平均の交差に基づいたトレンド追跡取引システムである.この戦略は,高士の核関数によって価格データをスムーズに処理し,移動平均の交差信号と組み合わせて,市場トレンドを捉え,取引をスマートにトレンド追跡する.この戦略は,パーセントポジション管理方式を採用し,デフォルトでは,取引ごとに10%の口座権益を使用する.

戦略原則

策略の核心は,Nadaraya-Watson核推定法であり,この方法は,高氏核関数を使用して,価格データの非パラメータ平滑を行う.具体的には,以下のステップが含まれています.

  1. 高氏核関数で計算した重量,帯域幅のパラメータhを8.0に設定
  2. 過去500の価格データポイントを重み付けで平行化
  3. 平滑後のデータの単純移動平均 ((SMA) を計算し,15周期遡る
  4. 移動平均線を平らな曲線で横切ると,多重信号が生成される.
  5. 滑り曲線の下を移動平均線を通るとき,空白信号を生成する
  6. ポジション状態変数を使用して,現在のポジションの状況を追跡し,繰り返しポジション開設を避ける

戦略的優位性

  1. 非参数的な推定方法を使用し,データ分布を仮定する必要なく,市場の変化に適応する
  2. 高ス核関数平滑は,ノイズ影響を効果的に軽減し,信号品質を向上させる
  3. 移動平均のクロス検証と偽信号の減少
  4. ポジション管理システムを使用して,リスクの開口を制御する
  5. 簡潔で効率的なコードを 維持し,最適化することが容易です
  6. 戦略の論理が明確で,様々な時間周期に適した取引

戦略リスク

  1. パラメータの感受性リスク: 帯域hと移動平均期数の選択は,戦略のパフォーマンスに大きく影響する
  2. 遅滞リスク: 核推定値と移動平均は遅滞し,急進を逃す可能性があります.
  3. 横盤の振動は偽信号を発生させる
  4. 計算コスト:大量の履歴データを処理する必要があり,リアルタイムの性能に影響を及ぼす可能性があります.
  5. オーバーフィットリスク:パラメータ最適化は,過去データへのオーバーフィットにつながる可能性がある

戦略最適化の方向性

  1. 適応帯域の導入:市場の変動率に合わせて帯域パラメータを動的に調整する
  2. 市場環境のフィルタリングを増やす:トレンドの強さの指標を追加し,強いトレンドの市場でのポジションを開く
  3. オプティマイズされた止損機構:変動率に基づく動的止損設計
  4. ポジション管理の改善:シグナル強さや市場の変動に応じてポジションのサイズを調整する
  5. 複数のタイムサイクル分析を導入:より長いサイクルを組み合わせたトレンド判断

要約する

この戦略は,ナダラヤ-ワトソン・コア評価と伝統的な技術分析を革新的に組み合わせて,堅牢なトレンド追跡システムを構築している. 高ス・コア・スムーズと移動平均の交差を介して,市場動向を効果的に捉え,リスクを制御している. この戦略は,さらなる開発と実用化のための優れた拡張性と最適化スペースを有している.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © UniCapInvest

//@version=5
strategy("Nadaraya-Watson Strategy with Moving Average Crossover", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, max_bars_back=500)

// Girdiler
h = input.float(8.,'Bandwidth', minval = 0)
src = input(close,'Source')
lookback = input.int(15, "Moving Average Lookback", minval=1)

// Gaussian fonksiyonu
gauss(x, h) => math.exp(-(math.pow(x, 2)/(h * h * 2)))

// Nadaraya-Watson smoothed değerini hesaplama
var float smoothed = na
sum_w = 0.0
sum_xw = 0.0

for i = 0 to 499
    w = gauss(i, h)
    sum_w += w
    sum_xw += src[i] * w

smoothed := sum_w != 0 ? sum_xw / sum_w : na

// Hareketli ortalama hesaplama
ma = ta.sma(smoothed, lookback)

// Alım ve satım koşulları (kesişimlere göre)
longCondition = ta.crossover(smoothed, ma)
shortCondition = ta.crossunder(smoothed, ma)

// Pozisyon durumu
var bool inPosition = false

// Strateji giriş ve çıkış koşulları
if (longCondition and not inPosition)
    strategy.entry("Long", strategy.long)
    inPosition := true

if (shortCondition and inPosition)
    strategy.entry("Short", strategy.short)
    inPosition := false

// Plotting
plot(smoothed, color=color.blue, title="Nadaraya-Watson Smoothed")
plot(ma, color=color.red, title="Moving Average")