Strategi Pemulangan Santa Claus Dinamik


Tarikh penciptaan: 2024-01-12 14:00:00 Akhirnya diubah suai: 2024-01-12 14:00:00
Salin: 0 Bilangan klik: 345
1
fokus pada
1176
Pengikut

Strategi Pemulangan Santa Claus Dinamik

Gambaran keseluruhan

Strategi pulangan Santa Claus dinamik adalah strategi perdagangan kuantitatif untuk mengenal pasti titik masuk dan keluar yang berpotensi berdasarkan hubungan pulangan dinamik antara harga dan indeks garis tiang. Strategi ini menggunakan garis purata dinamik parameter yang boleh disesuaikan dengan panjangnya untuk melukis garis trend pulangan harga.

Prinsip Strategi

Strategi ini berpusat pada pengiraan hubungan pengembalian linear antara harga dan indeks barisan. Pertama, pengiraan purata bergerak sederhana dan perbezaan piawai dengan panjang N. Kemudian, berdasarkan faktor berkaitan sampel dan nilai perbezaan piawai, cari kemiringan k dan jarak b untuk garis pengembalian.

y = kx + b

Di antaranya, x ialah indeks tiang dan y ialah harga.

Berdasarkan hubungan saiz garis pengembalian pada masa ini dengan masa lalu, menilai arah trend. Jika garis pengembalian naik dan harga penutupan lebih tinggi daripada harga pembukaan dan harga tertinggi saat sebelumnya, ia menghasilkan isyarat beli; Jika garis pengembalian turun dan harga penutupan lebih rendah daripada harga pembukaan dan harga terendah saat sebelumnya, ia menghasilkan isyarat jual.

Kelebihan Strategik

  1. Tetapan parameter dinamik yang boleh disesuaikan dengan perubahan harga dalam kitaran yang berbeza dengan menyesuaikan nilai N
  2. Hubungan pengembalian mengambil kira kesan faktor masa, lebih mencerminkan kecenderungan harga
  3. Mencipta isyarat dagangan dengan menggunakan pelbagai kriteria untuk mengelakkan penipuan
  4. Menunjukkan semula trend harga secara intuitif, mudah dibaca

Risiko dan Penyelesaian

  1. Nilai N yang tidak betul boleh menyebabkan garis regresi terlalu halus atau sensitif
  • Penyelesaian: Menyesuaikan N-value untuk mencari titik keseimbangan yang optimum
  1. Harga dalam jangka pendek bergoyang, keputusan kemerosotan gagal
  • Penyelesaian: Penapisan titik masuk dengan penunjuk lain
  1. Perbandingan lingkaran hanya mengambil kira satu titik waktu, mungkin terlepas nilai teratas tempatan
  • Penyelesaian: Sediakan Jarak Melepaskan yang Sesuai untuk Mengelakkan Kesesatan

Arah pengoptimuman

  1. Menambah mekanisme keluar dinamik, menyesuaikan titik henti mengikut hubungan regresi
  2. Memperkuat pengesahan isyarat dengan pengukuran seperti jumlah dagangan untuk mengurangkan kesilapan dagangan
  3. Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik untuk menyesuaikan diri dengan persekitaran pasaran yang lebih luas
  4. Menambah paparan grafik untuk menunjukkan kesan strategi dengan lebih mudah

ringkaskan

Strategi pulangan Santa Claus yang dinamik memanfaatkan hubungan pulangan dinamik harga dan masa untuk mewujudkan sistem perdagangan kuantitatif yang fleksibel, intuitif, dan parameter yang boleh disesuaikan. Logik strategi ini jelas, mudah difahami, dan dapat digunakan untuk produk dan kitaran perdagangan yang berbeza melalui pengoptimuman parameter. Inovasi strategi ini adalah dengan memperkenalkan faktor masa untuk membina model dinamik, menjadikan penghakiman lebih cenderung.

Kod sumber strategi
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Creator - TradeAI
strategy('Moving Santa Claus Strategy | TradeAI', overlay=true)

// Set the length of the moving average
length = input(64)

// Calculate the moving averages and standard deviations
x = bar_index
y = close
x_ = ta.sma(x, length)
y_ = ta.sma(y, length)
mx = ta.stdev(x, length)
my = ta.stdev(y, length)
c = ta.correlation(x, y, length)
slope = c * (my / mx)

// Calculate the parameters of the regression line
inter = y_ - slope * x_
reg = x * slope + inter

// Set the line color based on whether EMA is moving up or down
var color lineColor = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColor := color.new(#d8f7ff, 0)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColor := color.new(#ff383b, 0)

// Plot the EMA line with different thicknesses
plot(reg, color=lineColor, title="EMA")

var color lineColorrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrr := color.new(#d8f7ff, 77)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrr := color.new(#ff383b, 77)
plot(reg, color=lineColorrr, title="EMA", linewidth=5)

var color lineColorr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorr := color.new(#d8f7ff, 93)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorr := color.new(#ff383b, 93)
plot(reg, color=lineColorr, title="EMA", linewidth=10)

var color lineColorrrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrrr := color.new(#d8f7ff, 97)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrrr := color.new(#ff383b, 97)
plot(reg, color=lineColorr, title="EMA", linewidth=15)

var color lineColorrrrr = na
if (reg > reg[1] and (close > open and close > high[1]))
    lineColorrrrr := color.new(#d8f7ff, 99)
if (reg < reg[1] and (close < open and close < low[1]))
    lineColorrrrr := color.new(#ff383b, 99)
plot(reg, color=lineColorr, title="EMA", linewidth=20)

// Implement trading strategy based on EMA direction
if reg > reg[1] and (close > open and close > high[1])
    strategy.entry('buy', strategy.long)

if reg < reg[1] and (close < open and close < low[1])
    strategy.close('buy')