
Strategi 360° adalah strategi perdagangan kuantitatif yang menggabungkan strategi dua rata-rata dan kekuatan tren yang ditentukan. Strategi ini menilai tren harga dengan menghitung rata-rata untuk periode yang berbeda; dan menggabungkan penjumlahan sudut sudut untuk menentukan kekuatan tren yang lemah, yang memungkinkan pilihan waktu pembelian dan penjualan yang lebih akurat.
Logika inti dari 360° adalah:
Secara khusus, strategi ini mendefinisikan garis rata-rata awal 1 menit dan garis rata-rata setelah melewati filter Karman. filter Karman dapat menghilangkan sebagian kebisingan dari garis rata-rata, membuatnya lebih halus. Kemudian menghitung sudut garis dua garis rata, yang mencerminkan perubahan tren harga. Misalnya, ketika sudut garis rata adalah positif, berarti harga naik; sebaliknya menunjukkan penurunan.
Strategi memilih 30 menit sebagai siklus perhitungan, real summed semua sudut cutoff positif negatif dalam siklus tersebut. Ketika sudut cutoff dan lebih dari 360 derajat, menunjukkan tren sangat kuat, mengeluarkan banyak sinyal; sebaliknya ketika sudut cutoff dan kurang dari-360 derajat, menunjukkan tren berbalik, mengeluarkan sinyal kosong.
Keuntungan utama dari strategi 360° adalah:
Strategi 360 derajat dua garis sejajar juga memiliki beberapa risiko:
Untuk mengurangi risiko di atas, Anda dapat mempersingkat siklus rata-rata, mengoptimalkan kombinasi parameter, meningkatkan mekanisme stop loss, dll.
Strategi 360° dengan dua garis sejajar memiliki ruang untuk optimasi lebih lanjut:
Strategi linier ganda 360 ° menggunakan filter linier dan sudut sudut untuk menilai tren penilaian kuantitatif. Strategi ini menghasilkan strategi perdagangan kuantitatif yang lebih kuat. Dibandingkan dengan indikator teknis tunggal, strategi ini menghasilkan pertimbangan yang lebih komprehensif dan memiliki kepraktisan yang lebih kuat. Namun, perlu diperhatikan penyesuaian parameter dan kontrol risiko, yang dapat terus dioptimalkan di masa depan, sehingga efektifitas strategi lebih baik.
/*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="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角