
Strategi ini adalah sistem perdagangan trend-tracking berdasarkan pendekatan Nadaraya-Watson Core Estimation Method dan moving average crossover. Strategi ini menggunakan fungsi Gaussian Core untuk memperhalusi data harga, menggabungkan isyarat crossover dengan moving averages untuk menangkap trend pasaran, dan mewujudkan perdagangan trend-tracking yang cerdas. Strategi ini menggunakan pengurusan kedudukan peratusan, dengan kepentingan akaun 10% digunakan secara lalai setiap perdagangan.
Pusat strategi adalah kaedah anggaran teras Nadaraya-Watson, yang menggunakan fungsi teras Gaussian untuk melonggarkan data harga tanpa parameter. Implementasi khusus merangkumi langkah-langkah berikut:
Strategi ini secara inovatif menggabungkan anggaran teras Nadaraya-Watson dengan analisis teknikal tradisional untuk membina sistem pengesanan trend yang mantap. Ia menangkap trend pasaran dengan berkesan dengan menyeberangi teras Gaussian dan purata bergerak, sambil mengawal risiko. Strategi ini mempunyai ruang penskalaan dan pengoptimuman yang baik untuk pengembangan dan aplikasi praktikal selanjutnya.
/*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")