Strategi Rata-rata Bergerak Ganda 360°

Penulis:ChaoZhang, Tanggal: 2024-02-02 14:29:59
Tag:

img

Gambaran umum

Strategi Rata-rata Bergerak Ganda 360° adalah strategi perdagangan kuantitatif yang menggabungkan rata-rata bergerak ganda dan penentuan kekuatan tren. Dengan menghitung rata-rata bergerak selama periode yang berbeda, ia menentukan tren harga; sementara itu, dengan mengumpulkan sudut tangen, ia menilai kekuatan tren dan mencapai entri dan keluar yang lebih akurat.

Logika Strategi

Logika inti dari Dual Moving Average Strategy 360° adalah:

  1. Menghitung rata-rata bergerak 1 menit dan Kalman-difilter;
  2. Menghitung sudut tangen berdasarkan perbedaan harga antara dua rata-rata bergerak;
  3. Mengumpulkan sudut tangen untuk menentukan sinyal kekuatan tren;
  4. Mengeluarkan sinyal perdagangan berdasarkan apakah sudut tangen akumulasi melebihi ambang batas yang telah ditetapkan sebelumnya.

Secara khusus, strategi mendefinisikan rata-rata bergerak 1 menit mentah dan rata-rata bergerak yang disaring Kalman. Filter Kalman menghilangkan beberapa kebisingan dari rata-rata bergerak untuk membuatnya lebih halus. Sudut tangen antara dua rata-rata bergerak mencerminkan perubahan tren harga.

Strategi ini memilih 30 menit sebagai periode perhitungan untuk menjumlahkan semua sudut tangen positif dan negatif dalam periode itu. Ketika jumlahnya melebihi 360 derajat, itu menandakan tren yang sangat kuat dan mengeluarkan sinyal panjang; sebaliknya, ketika jumlahnya di bawah -360 derajat, itu menunjukkan pembalikan tren dan mengeluarkan sinyal pendek.

Analisis Keuntungan

Keuntungan utama dari strategi rata-rata bergerak ganda 360 ° adalah:

  1. Rata-rata bergerak menyaring kebisingan pasar jangka pendek untuk keputusan perdagangan yang lebih dapat diandalkan;
  2. Sudut tangen mengukur kekuatan tren, menghindari subjektivitas menilai dengan pola rata-rata bergerak saja;
  3. Menjumlahkan beberapa sudut tangen memiliki efek pengurangan kebisingan yang lebih baik, menghasilkan sinyal perdagangan yang lebih dapat diandalkan;
  4. Dibandingkan dengan strategi rata-rata bergerak tunggal, rata-rata bergerak ganda dikombinasikan dengan penentuan kekuatan tren membuat strategi lebih komprehensif dan kuat.

Analisis Risiko

Strategi Dual Moving Average 360° juga membawa beberapa risiko:

  1. Rata-rata bergerak tertinggal dari perubahan harga dan mungkin melewatkan titik balik tren jangka pendek;
  2. Mengandalkan sinyal kekuatan tren yang terkumpul saja dapat terganggu oleh volatilitas pasar;
  3. Pengaturan parameter yang tidak benar (seperti panjang periode perhitungan) dapat menyebabkan perdagangan hilang atau menghasilkan sinyal yang salah.

Untuk mengurangi risiko di atas, langkah-langkah seperti memperpendek periode rata-rata bergerak, mengoptimalkan kombinasi parameter, menambahkan mekanisme stop-loss dapat diadopsi.

Arahan Optimasi

Strategi Dual Moving Average 360° dapat dioptimalkan lebih lanjut dengan:

  1. Menggabungkan rata-rata bergerak adaptif yang menyesuaikan parameter berdasarkan volatilitas pasar;
  2. Referensi beberapa periode rata-rata bergerak untuk membentuk kombinasi parameter yang dioptimalkan;
  3. Menambahkan modul penentuan tren dinamis berdasarkan volatilitas, volume perdagangan, dll.;
  4. Membantu pengaturan parameter atau keputusan perdagangan dengan model pembelajaran mesin.

Ringkasan

Dual Moving Average Strategy 360° menggunakan penyaringan rata-rata bergerak dan penilaian tren sudut tangen kuantitatif untuk mencapai strategi perdagangan kuantitatif yang relatif kuat. Dibandingkan dengan indikator teknis tunggal, strategi ini merupakan pertimbangan yang lebih komprehensif dan memiliki kepraktisan yang lebih kuat.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-01-30 08:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)

// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")

// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) => 
    kf = 0.0 
    dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
    smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
    velo = 0.0 
    velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
    kf := smooth + velo 
    kf 

// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01) 
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")

// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数

// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数

// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数

// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加

// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360

// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)

// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角


Lebih banyak