Strategi perdagangan bersepadu pelbagai dimensi berdasarkan Nadaraya-Watson

SMA RSI ATR
Tarikh penciptaan: 2025-02-20 17:38:44 Akhirnya diubah suai: 2025-02-27 17:21:26
Salin: 0 Bilangan klik: 446
2
fokus pada
319
Pengikut

Strategi perdagangan bersepadu pelbagai dimensi berdasarkan Nadaraya-Watson Strategi perdagangan bersepadu pelbagai dimensi berdasarkan Nadaraya-Watson

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan multidimensi yang berasaskan Nadaraya-Watson Core Regression, yang membentuk isyarat komprehensif untuk membimbing keputusan perdagangan dengan mengintegrasikan maklumat pasaran dari empat dimensi: teknikal, emosi, supersensitif dan niat. Strategi ini menggunakan kaedah pengoptimuman berat, memproses isyarat berat pada dimensi yang berbeza, dan menggabungkan trend dan penapis momentum untuk meningkatkan kualiti isyarat.

Prinsip Strategi

Strategi ini berpusat pada pengendalian data pasaran yang multidimensi dengan kaedah regresi teras Nadaraya-Watson. Secara khusus:

  1. Dimensi teknikal menggunakan harga penutupan
  2. Dimensi emosi menggunakan RSI
  3. Dimensi hipersensitif menggunakan kadar turun naik ATR
  4. Harga menggunakan dimensi yang disengajakan berbanding rata-rata Dimensi-dimensi ini telah diluruskan oleh pengembalian balik teras, dan kemudian diperpadu dengan penambahan berat ((teknik 0.4, emosi 0.2, supersensitivity 0.2, niat 0.2) untuk membentuk isyarat dagangan akhir. Apabila isyarat penggabungan bersilang dengan purata bergerak, arahan perdagangan dikeluarkan setelah pengesahan penapis trend dan momentum.

Kelebihan Strategik

  1. Analisis pelbagai dimensi memberikan pandangan pasaran yang lebih menyeluruh, mengelakkan keterbatasan satu petunjuk
  2. Nadaraya-Watson Nuclear Regression berkesan mengurangkan kebisingan pasaran dan memberikan isyarat yang lebih lancar
  3. Mekanisme pengoptimuman berat membolehkan kepentingan dimensi disesuaikan dengan ciri-ciri pasaran
  4. Penambahan penapis trend dan momentum meningkatkan kualiti isyarat dengan ketara
  5. Sistem pengurusan risiko yang baik memastikan keselamatan dana

Risiko Strategik

  1. Pengoptimuman parameter yang berlebihan boleh menyebabkan pemasangan berlebihan
  2. Keadaan penapisan berganda mungkin terlepas beberapa isyarat yang sah
  3. Kompleksiti pengiraan regresi nuklear yang tinggi, yang mungkin menjejaskan prestasi masa nyata
  4. Pembahagian berat yang tidak betul boleh melemahkan beberapa isyarat pasaran penting Langkah-langkah pengurangan termasuk: menggunakan parameter pengesahan ujian luar sampel, menyesuaikan keadaan penapisan secara dinamik, mengoptimumkan kecekapan pengiraan, menilai secara berkala dan menyesuaikan peruntukan berat badan.

Arah pengoptimuman strategi

  1. Memperkenalkan sistem berat badan yang beradaptasi, menyesuaikan berat dimensi mengikut keadaan pasaran yang dinamik
  2. Membangunkan mekanisme penapisan yang lebih pintar untuk mengimbangi kualiti dan kuantiti isyarat
  3. Menoptimumkan pelaksanaan algoritma Nadaraya-Watson untuk meningkatkan kecekapan pengiraan
  4. Menambah modul pengiktirafan kitaran pasaran, menggunakan parameter yang berbeza pada peringkat pasaran yang berbeza
  5. Memperluas sistem pengurusan risiko, menambah fungsi hentian dinamik dan pengurusan kedudukan

ringkaskan

Ini adalah strategi inovatif yang menggabungkan kaedah matematik dengan kecerdasan perdagangan. Dengan analisis pelbagai dimensi dan alat matematik canggih, strategi dapat menangkap pelbagai lapisan pasaran dan memberikan isyarat perdagangan yang agak dipercayai. Walaupun terdapat beberapa ruang untuk pengoptimuman, kerangka keseluruhan strategi adalah kukuh dan mempunyai nilai aplikasi praktikal.

Kod sumber strategi
/*backtest
start: 2025-02-17 00:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Enhanced Multidimensional Integration Strategy with Nadaraya", overlay=true, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

//────────────────────────────────────────────────────────────────────────────
// 1. Configuration and Weight Optimization Parameters
//────────────────────────────────────────────────────────────────────────────
// Weights can be optimized to favor dimensions with higher historical correlation.
// Base values are maintained but can be fine-tuned.
w_technical   = input.float(0.4,   "Technical Weight",        step=0.05)
w_emotional   = input.float(0.2,   "Emotional Weight",      step=0.05)
w_extrasensor = input.float(0.2,   "Extrasensory Weight", step=0.05)
w_intentional = input.float(0.2,   "Intentional Weight",    step=0.05)

// Parameters for Nadaraya-Watson Smoothing Function:
// Smoothing period and bandwidth affect the "memory" and sensitivity of the signal.
smooth_length = input.int(20, "Smoothing Period", minval=5)
bw_param      = input.float(20, "Bandwidth", minval=1, step=1)

//────────────────────────────────────────────────────────────────────────────
// 2. Risk Management Parameters
//────────────────────────────────────────────────────────────────────────────
// Incorporate stop-loss and take-profit in percentage to protect capital.
// These parameters can be optimized through historical testing.
stopLossPerc   = input.float(1.5, "Stop Loss (%)", step=0.1) / 100   // 1.5% stop-loss
takeProfitPerc = input.float(3.0, "Take Profit (%)", step=0.1) / 100   // 3.0% take-profit

//────────────────────────────────────────────────────────────────────────────
// 3. Additional Filters (Trend and Momentum)
//────────────────────────────────────────────────────────────────────────────
// A long-term moving average is used to confirm the overall trend direction.
trend_length = input.int(200, "Trend MA Period", minval=50)
// RSI is used to confirm momentum. A level of 50 is common to distinguish bullish and bearish phases.
rsi_filter_level = input.int(50, "RSI Confirmation Level", minval=30, maxval=70)

//────────────────────────────────────────────────────────────────────────────
// 4. Definition of Dimensions
//────────────────────────────────────────────────────────────────────────────
tech_series         = close
emotional_series    = ta.rsi(close, 14) / 100
extrasensorial_series = ta.atr(14) / close
intentional_series  = (close - ta.sma(close, 50)) / close

//────────────────────────────────────────────────────────────────────────────
// 5. Nadaraya-Watson Smoothing Function
//────────────────────────────────────────────────────────────────────────────
// This function smooths each dimension using a Gaussian kernel.
// Proper smoothing reduces noise and helps obtain a more robust signal.
nadaraya_smooth(_src, _len, _bw) =>
    if bar_index < _len
        na
    else
        float sumW  = 0.0
        float sumWY = 0.0
        for i = 0 to _len - 1
            weight = math.exp(-0.5 * math.pow(((_len - 1 - i) / _bw), 2))
            sumW  := sumW + weight
            sumWY := sumWY + weight * _src[i]
        sumWY / sumW

//────────────────────────────────────────────────────────────────────────────
// 6. Apply Smoothing to Each Dimension
//────────────────────────────────────────────────────────────────────────────
sm_tech        = nadaraya_smooth(tech_series, smooth_length, bw_param)
sm_emotional   = nadaraya_smooth(emotional_series, smooth_length, bw_param)
sm_extrasens   = nadaraya_smooth(extrasensorial_series, smooth_length, bw_param)
sm_intentional = nadaraya_smooth(intentional_series, smooth_length, bw_param)

//────────────────────────────────────────────────────────────────────────────
// 7. Integration of Dimensions
//────────────────────────────────────────────────────────────────────────────
// The integrated signal is composed of the weighted sum of each smoothed dimension.
// This multidimensional approach seeks to capture different aspects of market behavior.
integrated_signal = (w_technical * sm_tech) + (w_emotional * sm_emotional) + (w_extrasensor * sm_extrasens) + (w_intentional * sm_intentional)
// Additional smoothing of the integrated signal to obtain a reference line.
sma_integrated = ta.sma(integrated_signal, 10)

//────────────────────────────────────────────────────────────────────────────
// 8. Additional Filters to Improve Accuracy and Win Rate
//────────────────────────────────────────────────────────────────────────────
// Trend filter: only trade in the direction of the overall trend, determined by a 200-period SMA.
trendMA = ta.sma(close, trend_length)
// Momentum filter: RSI is used to confirm the strength of the movement (RSI > 50 for long and RSI < 50 for short).
rsi_val = ta.rsi(close, 14)

longFilter  = (close > trendMA) and (rsi_val > rsi_filter_level)
shortFilter = (close < trendMA) and (rsi_val < rsi_filter_level)

// Crossover signals of the integrated signal with its SMA reference.
rawLongSignal  = ta.crossover(integrated_signal, sma_integrated)
rawShortSignal = ta.crossunder(integrated_signal, sma_integrated)
// Incorporate trend and momentum filters to filter false signals.
longSignal  = rawLongSignal and longFilter
shortSignal = rawShortSignal and shortFilter

//────────────────────────────────────────────────────────────────────────────
// 9. Risk Management and Order Generation
//────────────────────────────────────────────────────────────────────────────
// Entries are made based on the filtered integrated signal.
if longSignal
    strategy.entry("Long", strategy.long, comment="Long Entry")
if shortSignal
    strategy.entry("Short", strategy.short, comment="Short Entry")

// Add automatic exits using stop-loss and take-profit to limit losses and secure profits.
// For long positions: stop-loss below entry price and take-profit above.
if strategy.position_size > 0
    strategy.exit("Exit Long", "Long", stop = strategy.position_avg_price * (1 - stopLossPerc), limit = strategy.position_avg_price * (1 + takeProfitPerc))
// For short positions: stop-loss above entry price and take-profit below.
if strategy.position_size < 0
    strategy.exit("Exit Short", "Short", stop = strategy.position_avg_price * (1 + stopLossPerc), limit = strategy.position_avg_price * (1 - takeProfitPerc))

//────────────────────────────────────────────────────────────────────────────
// 10. Visualization on the Chart
//────────────────────────────────────────────────────────────────────────────
plot(integrated_signal, color=color.blue, title="Integrated Signal", linewidth=2)
plot(sma_integrated,      color=color.orange, title="SMA Integrated Signal", linewidth=2)
plot(trendMA,           color=color.purple, title="Trend MA (200)", linewidth=1, style=plot.style_line)
plotshape(longSignal,  title="Long Signal",  location=location.belowbar, color=color.green, style=shape.labelup,   text="LONG")
plotshape(shortSignal, title="Short Signal",  location=location.abovebar, color=color.red,   style=shape.labeldown, text="SHORT")