Chiến lược động lượng chồng chéo


Ngày tạo: 2023-10-26 17:39:26 sửa đổi lần cuối: 2023-10-26 17:39:26
sao chép: 0 Số nhấp chuột: 662
1
tập trung vào
1617
Người theo dõi

Chiến lược động lượng chồng chéo

Tổng quan

Chiến lược xếp chồng động lượng mùa xuân-mùa thu chủ yếu là bằng cách tính toán ROC thay đổi của các chu kỳ khác nhau, và xếp chồng quyền theo tỷ lệ, tạo thành một chỉ số động lượng tổng hợp để đánh giá hướng xu hướng của thị trường. Chiến lược này xếp chồng các chỉ số động lượng ngắn hạn, trung hạn và dài hạn, có thể cân bằng xu hướng ngắn hạn và dài hạn, tránh tạo ra tín hiệu sai.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính toán các chỉ số ROC cho các chu kỳ khác nhau như 10, 15 và 20 ngày, sau đó xử lý ROC một cách mượt mà và xếp chồng quyền theo tỷ lệ 1 - 4, công thức tính toán như sau:

roc1 = (sma(roc(close,10),10)*1)  
roc2 = (sma(roc(close,15),10)*2)
...
osc = roc1+roc2+roc3+roc4+...

Trong đó, roc1-roc12 đại diện cho tính toán ROC của các chu kỳ khác nhau, tương ứng với chu kỳ 10, 15 đến 530 ngày.

Sau đó, xử lý SMA của osc trong a ngày (bằng mặc định là 10 ngày) để có được oscsmt。

Sau đó so sánh quan hệ kích thước của osc với oscsmt, khi osc trên đi qua oscsmt là tín hiệu đi lên, đi vào chiều đa chiều; khi osc dưới đi qua oscsmt là tín hiệu đi xuống, đi vào chiều trống.

Cuối cùng, bạn có thể chọn cách đảo ngược hướng giao dịch.

Lợi thế chiến lược

  1. Các chỉ số động lực ngắn hạn và dài hạn được xếp chồng lên nhau để có thể nắm bắt cả xu hướng ngắn hạn và dài hạn, tránh phát sinh các tín hiệu sai.

  2. Bằng cách so sánh chênh lệch giá giữa osc và oscsmt, bạn có thể giảm các giao dịch vô nghĩa trong khu vực phẳng.

  3. Các tham số có thể tùy chỉnh, tham số chu kỳ để điều chỉnh tính toán ROC, và tham số làm mượt SMA.

  4. Có thể chọn hướng giao dịch ngược để đáp ứng các phong cách giao dịch khác nhau.

  5. Chỉ số trực quan, đánh giá trực quan điểm mua và bán.

Chiến lược rủi ro và tối ưu hóa

  1. Chỉ số ROC rất nhạy cảm với giá bất thường đột ngột, có thể tạo ra tín hiệu sai. Bạn có thể tăng tham số Smoothing SMA a một cách thích hợp, làm giảm độ nhạy cảm của chỉ số ROC.

  2. Các tham số mặc định có thể không phù hợp với tất cả các giống, cần tối ưu hóa các tham số dựa trên các đặc điểm của các giống khác nhau để tìm ra sự kết hợp tham số tốt nhất.

  3. Chỉ cần so sánh chênh lệch giữa osc và oscsmt để tạo ra tín hiệu giao dịch, có thể kết hợp với các tín hiệu lọc của các chỉ số khác để giảm khả năng giao dịch sai.

  4. Chiến lược này phù hợp hơn với giao dịch đường dài trung bình, giao dịch đường ngắn có thể không hiệu quả. Bạn có thể điều chỉnh chu kỳ tính toán ROC, tối ưu hóa tình huống sử dụng chiến lược này.

Tóm tắt

Chiến lược tăng động lượng mùa xuân và mùa thu bằng cách tính toán các chỉ số ROC trong nhiều chu kỳ và kết hợp các chỉ số động lượng tổng hợp, có thể cân nhắc cả xu hướng ngắn hạn và dài hạn, tránh tạo ra tín hiệu sai. Chiến lược này có thể cải thiện đáng kể chất lượng và độ tin cậy của tín hiệu so với chỉ số ROC đơn lẻ. Tuy nhiên, chiến lược này cũng có một số rủi ro giám sát, cần tối ưu hóa tham số và kết hợp với các chỉ số khác để có hiệu quả tối đa.

Mã nguồn chiến lược
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter 08/08/2017
// Pring's Special K is a cyclical indicator created by Martin Pring. 
// His method combines short-term, intermediate and long-term velocity 
// into one complete series. Useful tool for Long Term Investors
// Modified for any source.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Martin Pring's Special K Backtest", shorttitle="UCS_Pring_sK")
a = input(10, title = "Smooth" )
sources = input(title="Source",  defval=close)
reverse = input(false, title="Trade reverse")
roc1 = (sma(roc(sources,10),10)*1)
roc2 = (sma(roc(sources,15),10)*2)
roc3 = (sma(roc(sources,20),10)*3)
roc4 = (sma(roc(sources,30),15)*4)
roc5 = (sma(roc(sources,40),50)*1)
roc6 = (sma(roc(sources,65),65)*2)
roc7 = (sma(roc(sources,75),75)*3)
roc8 = (sma(roc(sources,100),100)*4)
roc9 = (sma(roc(sources,195),130)*1)
roc10 = (sma(roc(sources,265),130)*2)
roc11 = (sma(roc(sources,390),130)*3)
roc12 = (sma(roc(sources,530),195)*4)
osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12
oscsmt = sma(osc,a)
pos = iff(osc > oscsmt, 1,
	     iff(osc < oscsmt, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(osc, color=blue, title="Martin Pring's Special K")
plot(oscsmt, color = red, title = "Smooth")
hline(0, title="Zero Line")